Skip to content
⌘ NSIS Forum Archive

HM Nis Edit - hover mouse gone

8 posts

papaimark#

HM Nis Edit - hover mouse gone

Hi.
Using Nsis Editor, with makensis.exe ~v2.5, (~485Kb) hovering the mouse over the script, it shows the hint and it is of a great help.
BUT with v3, the file is only about 4kb and the editor shows no hint. Just an error message.
Is there a way to bring back these hints? (attached)
Have you tried to replace the v3 file with the old one?

Also, Nsis editor has a terrible bug that sows something like "¸UB@ after compiling, seaching some string and F3 a few times.

Or is there a better editor?
JasonFriday13#
There are updated syntax files somewhere for HM NIS Edit, I can't remember off the top of my head. Great little program, though it has not been updated in a very long time. I moved on to Notepad++ on windows and gedit on ubuntu (whatever the default editor is these days).
papaimark#
Thank you, JasonFriday13.
The file is NISEdit\Config\Syntax.ini but it only changes the syntax colors.
I will try to find a way to compile the script directly from Notepad++ (menu run)
But still don't have a clue on how to get the path of the opened/saved script,
like "HM NIS Edit" does.
Perhaps always saving the script with the same name and path, just a primary idea.
JasonFriday13#
Notepad++ is not a nsis IDE, it's a general purpose text editor. I work on both nsis scripts and the source code of nsis, so I have a separate window open to do the compiling (usually a terminal). This means I can use the same process on both windows and linux.

HM NIS Edit is still one of the best for syntax highlighting, it's just unfortunate that it isn't developed anymore, particularly with unicode support now used by default in NSIS and NIS Edit only supporting ansi characters. There was a work around done for old ansi editors though, but it still isn't perfect.
papaimark#
I made this to Notepad++ as a primary idea.
I doubt it will really be useful, but it works.
Must create a subfolder Notepad++/NSI, compile and let the executable there.
Because I don't understand things like ...(i 1) t .r0', I set to unicode=false.

In notepad++, Menu "Run" > Run... , set {Notepad++path}\NSI\Cmpl_Exec_LogOpen.exe and save it.
Before testing some script, shell click its tab and "Full File Path to Clipboard" and then, menu > Run > the name you saved for the executabe.

Curious that I googled the clipboard string and found a post of mine from 2003, here...

A new tab (always the same) will open in Notepad++ showing the verbosity of output.
_________________________________________________________________________
OutFile "Cmpl_Exec_LogOpen.exe"
Name "Compilar script do Notepad++"
!include ${NSISDIR}\Include\WinMessages.nsh
!include "FileFunc.nsh" # needed for ${GetParent}
!insertmacro GetParameters
SilentInstall Silent
AutoCloseWindow True
Unicode false # para v3.08. Remover para v2
# This executabe must be compiled and executed in Notepad++Folder\NSI. (You must create a "NSI" subfolder)

Section
SetShellVarContext all
# Ler clipboard:
System::Free $0
System::Call 'user32::OpenClipboard(i 0)'
System::Call 'user32::GetClipboardData(i 1) t .r0'
System::Call "user32::CloseClipboard()"
Pop $0 # Dados do clipboard estão aqui

StrCpy $2 "$0" "" -4
StrCmp $2 .nsi NSIencontrado
MessageBox MB_OK|MB_topmost|MB_Iconexclamation "Nada no clipboard.$\rCopie o passo do .nsi para o \
clipboard$\re tente novamente.$\rAbortando."
GoTo Fim

NSIencontrado:
IfFileExists $0 FileExists
MessageBox MB_OK|MB_topmost|MB_IconStop "O script $0 $\rnão foi encontrado no disco ou $\ro passo está incompleto. $\rAbortando."
GoTo Fim

FileExists:
MessageBox MB_yesno|MB_topmost|MB_Iconquestion "Compilar$\r$0 ?" IdNo Fim
Delete "$ExeDir\log.txt" # just for testing purposes
GetFullPathName $3 "$exedir\..\notepad++.exe" # it could be StrCpy $3 "$exedir\..\notepad++.exe"
${GetParent} "$3" $4 # the reason for this is that the /O (below) was unstable in other ways
ExecWait 'C:\Programas\Sistema\NSIS\makensis.exe /v2 /LAUNCH "/O$4\NSI\log.txt" "$0"' # full path because I use portable "nsisdir"

${GetTime} "" "L" $5 $5 $5 $5 $5 $6 $7
WriteIniStr "$ExeDir\log.txt" Compilação Hora "$5h $6m $7s" # so I dont read old log because of some error and to realize I must sleep.
Exec '"$3" "$ExeDir\log.txt"'

Fim:
Sectionend
papaimark#
Originally Posted by Anders View Post
So easy, when you know how-to.
Thank you, Anders.
The tips are back.