NppExec Changelog

What's new in NppExec 0.7

Jul 29, 2021
  • added: now NppExec supports the "Dark Mode" of Notepad++ v8 (Thanks to Peter Jones for the updated icons!) NppExec is still compatible with previous versions of Notepad++.
  • changed: now NppExec supports quoted strings in the form of "abc", 'abc' and `abc`. This allows to pass quote characters within a quoted string: `"`, '"', '"abc" `def`' and so on. Now, if you want to pass a text that includes ' or ` character, you need
  • to enquote this text in a different pair of quotes. For example:`'t was brillig...`, "Can't stop", "Press `Esc`", etc.
  • changed: now NppExec's Console and the Toolbar button explicitly mention "NppExec" in their names
  • added: new menu item "Change Execute Script Font..."
  • added: now MESSAGEBOX and INPUTBOX can accept 4th parameter 'time_ms'
  • changed: now the InputBox can be closed by pressing Esc. When it happens, the value of $(INPUT) will be empty.
  • added: now con_colour, con_filter, env_set, npe_console, npe_noemptyvars, npe_sendmsgbuflen and npp_console support a new keyword "local". This new keyword means: the changes are applied locally to the current NppExec's script and are reverted back when the current script ends. Thus, the "local" keyword does not make sense in a single command executed directly in NppExec's Console because the previous state is restored right after the execution of this single "local" command, so you will not see any effect of it.
  • added: if~ <condition> - first calculates, then checks the condition
  • added: set <var> ~ strescape <s>, set <var> ~ strunescape <s>
  • added: file names "npes_temp.txt" and "npes_saved.txt" can be customized (see "NppExec_TechInfo.txt" for details)
  • fixed: indirect variable reference in e.g. "echo #$(i) = $(#$(i))"
  • new advanced option "CustomMsgReady" (see "NppExec_TechInfo.txt")
  • NppExec Manual updated

New in NppExec 0.6.2 (Apr 1, 2021)

  • Changed: now NppExec uses CreateFile+FILE_FLAG_WRITE_THROUGH while writing files to avoid filling with zero bytes on system shutdown.
  • Changed: now NppExec changes the current directory to %TEMP% when an unnamed file (such as "new 1") is activated and "Follow URRENT_DIRECTORY)" is on. To revert to the old behavior (the current directory is not changed when an unnamed file is activated), set the manual option "Cd_UnnamedFile" to 0.
  • Added: $(NPP_FULL_FILE_PATH), $(CLOUD_LOCATION_PATH)
  • Added: indirect variable reference, e.g. $($(name))
  • Changed: now the variables $(ARGC), $(ARGV), $(ARGV[1]) and so on support the indirect variable reference (see above)
  • Added: Ctrl+Break in the Console aborts the currently running script
  • Added: now NppExec supports "cloud location path" in Notepad++'s settings. With cloud location path specified in Notepad++'s settings, NppExec does the following:
  • On start, NppExec tries to read its configuration files from the cloud location path. If these files do not exist or are filled with NULs, NppExec reads its configuration from $(PLUGINS_CONFIG_DIR).
  • When NppExec saves its configuration files, first they are saved to $(PLUGINS_CONFIG_DIR) and then copied to the cloud location path. Thus, NppExec always has copies of its current configuration files within the $(PLUGINS_CONFIG_DIR) folder.
  • NppExec's saved scripts - the "npes_saved.txt" file - are monitored in the cloud location path. So, if you manually edit the "npes_saved.txt" within the cloud location, NppExec detects it. If, however, you manually edit the "npes_saved.txt" within the $(PLUGINS_CONFIG_DIR) folder, it is ignored. When the cloud location path is _not_ specified in Notepad++'s settings, NppExec reads and stores its configuration within $(PLUGINS_CONFIG_DIR). And the "npes_saved.txt" is monitored in that folder.

New in NppExec 0.6 RC4 (Aug 12, 2020)

  • Added: $(CON_HWND), $(FOCUSED_HWND)
  • Added: the message "==== READY ====" is optional now (can be on/off)
  • Now WarningAnalyzer tries to find a file in the current view first
  • Fixed: variable names can contain brackets - e.g. $(a(b(c)))
  • Fixed: end of an embedded npp_exec-ed script may also be the end of its parent script
  • Internal improvements

New in NppExec 0.6 Beta 1 (Feb 21, 2018)

  • Changed: now the Execute dialog's auto-completion pop-up uses the same upper/lower case
  • as the first character of a word being typed (e.g. Npp -> NPP...; npp -> npp...);
  • also: now the auto-completion pop-up's height is limited by the number of its items
  • new commands: SCI_FIND, SCI_REPLACE
  • new commands: TEXT_SAVETO, TEXT_LOADFROM
  • Function Parser has been updated to support the bitwise operators: ~, |, &, << and >>
  • (thanks to Juha Nieminen and Joel Yliluoma for their advice)
  • $(LAST_CMD_RESULT) - result of the last NppExec's command (1 - succeeded, 0 failed, -1 - invalid arg)
  • fixed: parameters of sci_sendmsg/npp_sendmsg were truncated to 32-bit in 64-bit NppExec
  • fixed: now pasting to the Console via Shift+Insert is equal to Ctrl+V

New in NppExec 0.6 Alpha (Sep 12, 2017)

  • NppExec can be build with Orwell Dev-C++ (NppExec_DevCpp.dev)
  • project file for Visual Studio 2013 Express (NppExec_VC12.sln)
  • fparser updated to 4.5.2
  • Notepad++ and Scintilla header files updated to Notepad++ 6.8.6
  • Warning Analyser: more accurate detection of %LINE% and %CHAR%
  • new command: NPP_SAVEAS
  • new command: PROC_SIGNAL
  • set <var> ~ strfromhex <hex string>
  • set <var> ~ strtohex <string>
  • now commands can be executed from macro-vars (e.g. "set a = npp_run calc" and then "$(a)" to execute)
  • now a child console process is tried to be killed first, and only then terminated
  • added: "@EXIT_CMD" macro var to specify child process'es exit command
  • added: "nppexec:" prefix to execute NppExec's commands from a child console process
  • NppExec's Console: Tab-completion improved; also works after "help " and "nppexec:"
  • NppExec's Console: "Tab = t" allows to type Tab character in the Console
  • NppExec's Console: "set local" creates Console's local vars (not shared with NppExec's script)
  • now SEL_LOADFROM and CON_LOADFROM detect UTF-8 without BOM
  • now SEL_SAVETO can save as UTF-8 without BOM
  • fixed: font of NppExec's Console could be set incorrectly
  • fixed: crash while calculating very big numbers (e.g. 10^72)
  • fixed: the "exit command" dialog did not use the "Key_Enter" value
  • fixed: now paste (Ctrl+V) to the Console clears the text formatting
  • fixed: now the Console Filters masks' length is not limited by the edit controls' width
  • internal improvements
  • more internal improvements
  • better error reporting
  • 64-bit ready
  • enhanced NppExec's Plugin Interface
  • NppExecPluginMsgTester updated
  • NppExec Manual updated !!!incomplete: to be updated!!!
  • new flow: IF...ELSE...ENDIF !!!incomplete: not documented!!! in case of errors the script is stopped
  • now each command returns either CMDRESULT_SUCCEEDED or CMDRESULT_FAILED !!!incomplete: just partially implemented, not documented!!!

New in NppExec 0.5.3 (Mar 5, 2015)

  • new menu items "Go to next error" and "Go to previous error" (based on the HighLight masks)
  • now %FILE% is treated as both �SFILE% and %FILE%, so there's no need to duplicate the masks with �SFILE% and %FILE%
  • maximum number of user menu items increased to 100 (was 40)
  • when npes_saved.txt is saved, its previous version is kept as .bak
  • TAB navigation works in Filter/Replace/HighLight dialog
  • now the INPUTBOX command can accept 3 parameters
  • NppExec Manual updated
  • other small improvements

New in NppExec 0.5.2.2 (Mar 5, 2015)

  • now the IF-GOTO statement supports floating-point comparison as well (e.g. IF 2.5 < 10.1 GOTO Label2)
  • new advanced option "Console_NulChar" (enhancing v0.5.2.1)

New in NppExec 0.5.2.1 (Mar 5, 2015)

  • Now NppExec is able to deal with NUL ('\0') character when external application outputs it to the Console:
  • (Unicode) 0x0000 "NUL" is replaced with 0x25E6 "White Bullet";
  • (ANSI) 0x00 "NUL" is replaced with 0x17 "End of Text Block".
  • NppExec Manual updated a little bit.
  • The "Donate..." button has been removed. Since I did not receive any donation - either due to ukrainian politics/restrictions as for PayPal or due to lack of donations itself - and since this situation is unlikely to change, the button has been removed. You can always donate to Notepad++ itself.

New in NppExec 0.5.2 (Mar 5, 2015)

  • set local =
  • NppExec's options are now automatically saved on NPPN_SHUTDOWN
  • Ctrl+Z sends ^Z (end-of-file) to current child process
  • new advanced option "Key_Enter", by default its value is "\n"
  • new advanced option "LogsDir" to create NppExec's log files
  • NPE_CONSOLE k0..3 to enable/disable NppExec's shortcut keys in the Console
  • NppExec Manual updated
  • different internal improvements & refactoring
  • fparser updated to v4.5.1

New in NppExec 0.5 (Apr 18, 2013)

  • Scripting abilities enhanced:
  • new commands: IF, GOTO
  • set ~ strupper/strlower/substr
  • set ~ strfind/strrfind
  • set ~ strreplace
  • Highlighting abilities enhanced:
  • now all the Console Filters support run-time $(vars)
  • new commands: CON_COLOUR, CON_FILTER
  • New/enhanced commands:
  • new command: NPP_MENUCOMMAND
  • now sel_settext+ supports '\r'
  • Fixed:
  • fixed: could not get/modify Notepad++'s main menu when it was hidden
  • Other:
  • new Console's commands: MANUAL, ABOUT
  • different internal improvements

New in NppExec 0.4.3.2 (Nov 10, 2012)

  • fixed: partial file name matching in npp_exec, npp_close, npp_save and npp_switch (CNppExec::nppConvertToFullPathName, nppSwitchToDocument)
  • HELP ALL to show all available help (all the commands in detail) @[] in CScriptEngine::doSendMsg

New in NppExec 0.4.3.1 (Nov 10, 2012)

  • fixed: "Follow $(CURRENT_DIRECTORY)" did not work on file save
  • NPE_CONSOLE f+/f- r+/r- to enable/disable the console output filters

New in NppExec 0.4.3 (Nov 10, 2012)

  • now NppExec's Console keeps its shown/hidden state after Notepad++ restarts
  • NPP_CONSOLE +/- to enable/disable output to the Console
  • some refactoring of NppExec's Console functions

New in NppExec 0.4.2 (Nov 29, 2011)

  • fixed: $("var") was processed incorrectly
  • now npe_cmdalias uses run-time $(vars)
  • set ~ strlen
  • set ~ strlenutf8
  • (EXITCODE)
  • npp_sendmsgex, [] in CScriptEngine::doSendMsg
  • %CHAR% in WarningAnalyzer, thanks to Carlos
  • fparser updated to v4.4.3
  • NppExec Manual updated

New in NppExec 0.4.1 (Aug 12, 2011)

  • fix for NPP_SENDMSG/SCI_SENDMSG with parameters containing dbl-quote(s)
  • fparser updated to v4.2
  • NppExec Manual updated

New in NppExec 0.4 (Aug 12, 2011)

  • new commands: NPP_SENDMSG, SCI_SENDMSG
  • SET command extension: set ~
  • several small improvements

New in NppExec 0.3.3.1 (Aug 12, 2011)

  • fixed: "WS_VSCROLL" was omitted for combo-boxes in IDD_ADVANCEDOPTIONS

New in NppExec 0.3.3 (Aug 12, 2011)

  • fix1: now "\r\n" (Enter key emulation) is sent to the pipe separately
  • fix2: n++'es unsubclassing on exit removed (might be dangerous)
  • fix3: now the Console should keep its font always (IMF_AUTOFONT turned off)
  • Help/Manual updated (sections 4.6.3 and 4.6.4 added)

New in NppExec 0.3.2 (Aug 12, 2011)

  • new feature: TAB autocompletes file paths (in the Console)
  • new feature: Shift+Tab (in the Console, the same as TAB but backwards)
  • fixed: 'cd \path', 'dir \path' did not jump to the root of current drive
  • fixed: on-exit script was not executed
  • new command: NPE_CMDALIAS
  • new menu item: Disable command aliases
  • new option in NPE_CONSOLE: q+/q-

New in NppExec 0.3.1 (Aug 12, 2011)

  • new command: SEL_LOADFROM
  • new command: SEL_SETTEXT, SEL_SETTEXT+
  • new variable: $(OUTPUT), $(OUTPUTL), $(OUTPUT1), see NPE_CONSOLE V+
  • several small improvements

New in NppExec 0.3 (Aug 12, 2011)

  • several small fixes
  • new command: NPE_CONSOLE

New in NppExec 0.3 RC1 (Aug 12, 2011)

  • John LaCasse for useful suggestions
  • new environment variable: $(CWD)
  • new commands: ENV_SET/ENV_UNSET
  • new menu item: Toggle Console Dialog (Ctrl+~)
  • now NPE_DEBUGLOG reports on Console double-clicked line's Highlight Filter
  • NppExecPluginMsgTester has been re-designed and updated
  • both Unicode and ANSI builds are supported
  • now the "Execute..." dialog is resizable
  • now NppExec supports remapped shortcut keys (requires Notepad++ >= 5.1.4)
  • other improvements
  • now NppExec has the manual

New in NppExec 0.3 Beta 1 (Aug 12, 2011)

  • full Unicode compatibility (for Unicode version of Notepad++)
  • additional functionality
  • improvements in the script engine (architecture re-design)
  • improvements in the warning analyzer (spaces/tabs can be omitted)
  • other improvements and fixes
  • now NppExec gets its configuration directory from Notepad++
  • now you can exit a console process or interrupt current script at any time
  • now both Console Output and Input can be ANSI, OEM or UTF-8
  • now each copy of NppExec.dll has its own Console History
  • new option: Follow $(CURRENT_DIRECTORY)
  • new command: NPP_CONSOLE
  • new environment variable: $(PLUGINS_CONFIG_DIR)

New in NppExec 0.2.5 Release 2 (Aug 12, 2011)

  • fixed: (potential) bug in CNppExec::DoExecScript()
  • fixed: several (potential) bugs,