I never quite understood why makensis does not report the line where a warning occurs as it the case with errors. Apart from making many people's life easier, this could be useful so third-party tools can parse that (e.g. for linters)
While at it, I'd also like to suggest to streamline the output for both.
Example warning:
1 warning:
Variable "test" not referenced or never set, wasting memory!
Example error:
Error: command Function not valid in Section
Error in script "C:\path\to\script.nsi" on line 19 -- aborting creation process
Proposal:
1 warning found in "C:\path\to\script.nsi":
[L15] Variable "test" not referenced or never set, wasting memory!Error in script "C:\path\to\script.nsi":
[L19] command Function not valid in Section
It will report the line number for some warnings, try
It does not report the file:line for things like unused variables because those are only known at the end and makensis would have to remember the locations of all these possible warnings.