0% found this document useful (0 votes)
646 views

NPP Exec

This document summarizes the features and abilities of the NppExec plugin version 0.5.3 for Notepad++. Key points include: 1) It allows running multiple commands from the Execute dialog or standalone commands from the console. 2) It provides additional commands like clearing the screen, changing directories, listing files, setting variables, and more. 3) It supports Notepad++ environment variables and has additional variables for paths, arguments, and process results.

Uploaded by

Janki Desai
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
646 views

NPP Exec

This document summarizes the features and abilities of the NppExec plugin version 0.5.3 for Notepad++. Key points include: 1) It allows running multiple commands from the Execute dialog or standalone commands from the console. 2) It provides additional commands like clearing the screen, changing directories, listing files, setting variables, and more. 3) It supports Notepad++ environment variables and has additional variables for paths, arguments, and process results.

Uploaded by

Janki Desai
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

****************************************************************************

* NppExec plugin ver. 0.5.3 for Notepad++ 5.1 and above


* by DV <dvv81 @ ukr.net>, December 2006 - February 2015
* Powered by Function Parser (C) Juha Nieminen, Joel Yliluoma
****************************************************************************
*
* Abilities:
* 1) Run multiple commands from the "Execute..." dialog
* 2) Run stand-alone command from the Console Dlg
* 3) Separate console for each NppExec.dll (e.g. NppExec1.dll, NppExec2.dll)
* 4) Additional commands:
* cls - clear Console screen
* cd - shows current path
* cd <path> - changes current directory (absolute or relative)
* cd <drive:\path> - changes current drive and directory
* dir - lists subdirs and files
* dir <mask> - lists subdirs and files matched the mask
* dir <path\mask> - lists subdirs and files matched the mask
* echo <text> - prints a text in the Console
* if <condition> goto <label> - jumps to the label if the condition is t
rue
* goto <label> - jumps to the label
* set - shows all user's variables
* set <var> - shows the value of user's variable <var>
* set <var> = <value> - sets the value of user's variable <var>
* set <var> ~ <math expression> - calculates the math expression
* set <var> ~ strlen <string> - calculates the string length
* set <var> ~ strlenutf8 <string> - calculates the UTF-8 string length
* set <var> ~ strupper <string> - returns the string in upper case
* set <var> ~ strlower <string> - returns the string in lower case
* set <var> ~ substr <pos> <len> <string> - returns the substring
* set <var> ~ strfind <s> <t> - returns the first position of <t> in <s>
* set <var> ~ strrfind <s> <t> - returns the last position of <t> in <s>
* set <var> ~ strreplace <s> <t0> <t1> - replaces all <t0> with <t1>
* set local - shows all user's local variables
* set local <var> - shows the value of user's local variable <var>
* set local <var> = ... - sets the value of user's local variable <var>
* set local <var> ~ ... - calculates the value of user's local variable
* unset <var> - removes user's variable <var>
* unset local <var> - removes user's local variable <var>
* env_set <var> - shows the value of environment variable <var>
* env_set <var> = <value> - sets the value of environment variable <var>
* env_unset <var> - removes/restores the environment variable <var>
* inputbox "message" - shows InputBox, sets $(INPUT)
* inputbox "message" : initial_value - InputBox, sets $(INPUT)
* inputbox "message" : "value_name" : initial_value - InputBox customiza
tion
* con_colour <colours> - sets the Console's colours
* con_filter <filters> - enables/disables the Console's output filters
* con_loadfrom <file> - loads a file's content to the Console
* con_load <file> - see "con_loadfrom"
* con_saveto <file> - saves the Console's content to a file
* con_save - see "con_saveto"
* sel_loadfrom <file> - replace current selection with a file's content
* sel_load <file> - see "sel_loadfrom"
* sel_saveto <file> - save the selected text to a file
* sel_saveto <file> : <encoding> - save the selected text to a file
* sel_save <file> : <encoding> - see "sel_saveto"
* sel_settext <text> - replace current selection with the text specified
* sel_settext+ <text> - replace current selection with the text specifie
d
* npp_exec <script> - execute commands from specified script
* npp_exec <file> - execute commands from specified file (*)
* npp_close - close current file in Notepad++
* npp_close <file> - close specified file opened in Notepad++ (*)
* npp_console <on/off/keep> - show/hide the Console window
* npp_console <enable/disable> - enable/disable output to the Console
* npp_console <1/0/?> - show/hide the Console window
* npp_console <+/-> - enable/disable output to the Console
* npp_menucommand <menu\item\name> - executes (invokes) a menu item
* npp_open <file> - open a file in Notepad++
* npp_open <mask> - open files matched the mask
* npp_open <path\mask> - open files matched the mask
* npp_run <command> - run external process/command
* npp_save - save current file in Notepad++
* npp_save <file> - save a file in Notepad++ (if it's opened) (*)
* npp_saveall - save all modified files
* npp_switch <file> - switch to specified opened file (*)
* npp_sendmsg <msg> - send a message (msg) to Notepad++
* npp_sendmsg <msg> <wparam> - message with parameter (wparam)
* npp_sendmsg <msg> <wparam> <lparam> - msg to Notepad++
* npp_sendmsgex <hwnd> <msg> <wparam> <lparam> - msg to hwnd
* sci_sendmsg <msg> - send a message (msg) to current Scintilla
* sci_sendmsg <msg> <wparam> - message with parameter (wparam)
* sci_sendmsg <msg> <wparam> <lparam> - msg to Scintilla
* npe_cmdalias - show all command aliases
* npe_cmdalias <alias> - shows the value of command alias
* npe_cmdalias <alias> = - removes the command alias
* npe_cmdalias <alias> = <command> - sets the command alias
* npe_console <options> - set/modify Console options/mode
* npe_debuglog <on/off> - enable/disable Debug Log
* npe_noemptyvars <1/0> - enable/disable replacement of empty vars
* (*) these commands work with a partial file path/name also
* i.e. npp_save c:\dir\f.txt is the same as npp_save f.txt
* 5) Additional console commands (Console Dlg only):
* help - show available commands
* ver - show plugin's version
* manual - show NppExec User Guide
* about - show NppExec Help/About
* CTRL+C - terminate current child process
* CTRL+BREAK - terminate current child process
* CTRL+Z - send ^Z to current child process
* 6) All Notepad++ environment variables are supported:
* $(FULL_CURRENT_PATH) : E:\my Web\main\welcome.html
* $(CURRENT_DIRECTORY) : E:\my Web\main
* $(FILE_NAME) : welcome.html
* $(NAME_PART) : welcome
* $(EXT_PART) : .html
* $(NPP_DIRECTORY) : the full path of notepad++'s directory
* $(CURRENT_WORD) : word(s) you selected in Notepad++
* $(CURRENT_LINE) : current line number
* $(CURRENT_COLUMN) : current column number
* 7) Additional environment variables:
* $(#0) : C:\Program Files\Notepad++\notepad++.exe
* $(#N), N=1,2,3... : full path of the Nth opened document
* $(LEFT_VIEW_FILE) : current file path-name in primary (left) view
* $(RIGHT_VIEW_FILE) : current file path-name in second (right) view
* $(PLUGINS_CONFIG_DIR) : full path of the plugins configuration directo
ry
* $(CWD) : current working directory of NppExec (use "cd"
to change it)
* $(ARGC) : number of arguments passed to the NPP_EXEC com
mand
* $(ARGV) : all arguments passed to the NPP_EXEC command a
fter the script name
* $(ARGV[0]) : script name - first parameter of the NPP_EXEC
command
* $(ARGV[N]) : Nth argument (N=1,2,3...)
* $(RARGV) : all arguments in reverse order (except the scr
ipt name)
* $(RARGV[N]) : Nth argument in reverse order (N=1,2,3...)
* $(INPUT) : this value is set by the 'inputbox' command
* $(INPUT[N]) : Nth field of the $(INPUT) value (N=1,2,3...)
* $(OUTPUT) : this value can be set by the child process, se
e npe_console v+
* $(OUTPUT1) : first line in $(OUTPUT)
* $(OUTPUTL) : last line in $(OUTPUT)
* $(EXITCODE) : exit code of the last executed child process
* $(MSG_RESULT) : result of 'npp_sendmsg[ex]' or 'sci_sendmsg'
* $(MSG_WPARAM) : wParam (output) of 'npp_sendmsg[ex]' or 'sci_s
endmsg'
* $(MSG_LPARAM) : lParam (output) of 'npp_sendmsg[ex]' or 'sci_s
endmsg'
* $(SYS.<var>) : system's environment variable, e.g. $(SYS.PATH
)
*
****************************************************************************

*************
* HISTORY *
*************

v0.5.3 - February 2015


----------------------
+ new menu items "Go to next error" and "Go to previous error" (based on
the HighLight masks), thanks to mrmixer
+ now %FILE% is treated as both %ABSFILE% and %FILE%, so there's no need
to duplicate the masks with %ABSFILE% 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

v0.5.2.2 - December 2014


------------------------
+ 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)
* 8 years since NppExec was born! :)

v0.5.2.1 - November 2014


------------------------
+ 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.

v0.5.2 - January 2014


---------------------
+ set local <var> = <value>
+ 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
* 7th anniversary of NppExec :)

v0.5 - April 2013


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

v0.4.3.2 - November 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

v0.4.3.1 - September 2012


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

v0.4.3 - May 2012


-----------------
+ now NppExec's Console keeps its shown/hidden state after Notepad++ restarts
(* thanks to ufo-pu55y for help)
+ NPP_CONSOLE +/- to enable/disable output to the Console
+ some refactoring of NppExec's Console functions

v0.4.2.1 - March 2012


---------------------
- fixed: incorrect check of Notepad++ version

v0.4.2 - November 2011


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

v0.4.1 - July 2010


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

v0.4 - April 2010


-----------------
+ new commands: NPP_SENDMSG, SCI_SENDMSG
+ SET command extension: set <var> ~ <math expression>
(using Function Parser by Juha Nieminen, Joel Yliluoma)
+ several small improvements

v0.3.3.1 - February 2010


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

v0.3.3 - January 2010


---------------------
- 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)

v0.3.2 - September 2009


-----------------------
+ new feature: TAB autocompletes file paths (in the Console)
(* thanks to ILme for initial implementation)
+ 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-

v0.3.1 - June 2009


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

v0.3 final - April 2009


-----------------------
* thanks to Greg Webb for the .chm help file (manual)
+ several small fixes
+ new command: NPE_CONSOLE

v0.3 RC1 - January 2009


-----------------------
* thanks to 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 (yes!)

v0.3 beta1 - November 2008


--------------------------
+ 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)

v0.2.5 release 2 - September 2008


---------------------------------
- fixed: (potential) bug in CNppExec::DoExecScript()
- fixed: several (potential) bugs, thanks to Patrick Corwin

v0.2.5 - August 2008


--------------------
+ added: word wrap in the Console dialog (Ctrl+W)
* changed: Advanced Options dialog - SaveCmdHistory added,
RichEdit_MaxTextLength removed
- fixed: script with spaces in its name was not started using
associated menu item
+ some improvements
+ new command: NPP_CLOSE
+ new command: INPUTBOX
* now NppExec uses Rich Edit 2.0 (instead of 1.0) in its Console window
+ added Notepad++'s variables: $(CURRENT_LINE), $(CURRENT_COLUMN)
+ external plugin interface messages:
NPEM_GETVERDWORD [returns version as DWORD]
NPEM_GETVERSTR [returns version as string]
NPEM_GETSTATE [returns state: ready/busy]
NPEM_PRINT [prints text which can be highlighted by the Highlight Filters]
NPEM_EXECUTE [executes given commands]
NPEM_NPPEXEC [executes script/file]
NPEN_RESULT [as a result of NPEM_EXECUTE or NPEM_NPPEXEC]

v0.2.4 - June 2008


------------------
+ added: "Replace" tab in the Console Filters dialog
* improved: the code of the DlgConsoleOutputFilter has been rewritten
+ added: Console text and background colours can be changed
+ new command: SEL_SAVETO - saves the selected text to a file
- fixed: CON_SAVETO did not work under Windows 9x
+ added: ability to execute specified script when Notepad++ starts/exits
+ added: ability to assign a menu item to specified script
(then you can assign a shortcut key to this menu item in Notepad++)
+ added: Advanced Options dialog
+ other improvements

v0.2 RC3.2 - February 2008


--------------------------
- fixed: NPP_RUN (ShellExecute) did not work with several arguments

v0.2 RC3.1 - February 2008


--------------------------
- fixed: buffer overflow in the Warning Analyzer
* changed: now NPP_RUN calls ShellExecute() instead of WinExec()

v0.2 RC3 - January 2008


-----------------------
+ search in the Console
+ history in the Console Filters dialog
+ several issues fixed
+ several cosmetic improvements

v0.2 RC2 - December 2007


------------------------
+ speeding up the console output
+ watching for changes in "npes_saved.txt"
+ TAB-key in the console auto-completes current command
+ several cosmetic improvements
v0.2 RC1 - December 2007
------------------------
1. A lot of internal changes/improvements.
In particular, now all plugin's options are stored, read and written by the
Options Manager component.
The Warning Analyzer component, developed by Nicolas Babled, allows to filter
and recognize different compiler/interpretter error and warning messages - and
extract useful information from these messages (such as file name and line
number).
The Simple Logger component stores detailed information about last executed
command (can be usefull for "debugging").
* The console redirecting engine has been improved.
* Now the plugin identifies itself by its dll-file name. Each copy of the
plugin (each dll-file) stores its options in corresponding ini-file.
* Now plugin's environment variables (e.g. "$(FILE_NAME)") are available for
child console process. For example, start "cmd.exe" and type "echo $(#1)".
* Now system's environment variables are available in a form of "$(SYS.<var>)"
e.g. "$(SYS.WINDIR)", "$(SYS.TEMP)" etc.
* Now the NPP_EXEC command can pass arguments to the script. These arguments
can be accessed in the script through the following macro-variables:
$(ARGC), $(ARGV), $(ARGV[n]).
Example: npp_exec "script name" param_1 "param 2".
This example sets the following values for the script:
$(ARGC) = 3; $(ARGV) = param_1 "param 2"; $(ARGV[0]) = script name;
$(ARGV[1]) = param_1; $(ARGV[2]) = param 2.
* Each command now have detailed help information. Type "help" or "help help"
in the NppExec's Console.
* Now the console commands history is restored when you restart Notepad++.
2. New menu items:
(Thanks to Nicolas Babled & Geert Vancompernolle)
Direct Execute Previous - directly executes previous script.
No internal messages - do not show such messages as "Process started >>>", etc.
Save all files on execute - saves all files before executing a script.
Also NppExec's toolbar icon has been added.
3. New dialog: Console Output Filter -> Highlight.
(Thanks to Nicolas Babled & Geert Vancompernolle)
This dialog allows you to specify a string mask for compiler/interpretter error
and warning messages with such keywords as %FILE%, %ABSFILE% and %LINE%.
These messages can be highlighted with different colours and allow you to go
to certain line in certain file when double-clicked in the Console window.
4. New messages:
NPP_SAVEALL - saves all modified files.
CON_LOADFROM - loads a file's content to the Console.
CON_SAVETO - saves the Console's content to a file.
ECHO - prints a text in the Console (supports internal env. variables)
SET - sets the value of user's variable
UNSET - removes user's variable

v0.2 beta4 - July 2007


----------------------
- fixed: buffer size was not checked before calling OemToChar()
- fixed/added: '\b' and '\r' handling
+ a lot of changes in plugin's internals (basic cpp-classes and NppExecEngine)
+ new command: cd, cd <path>, cd <drive:\path>
+ new command: dir, dir <mask>, dir <path\mask>
+ new feature: npp_open <mask>, npp_open <path\mask>
+ new environment variables: $(LEFT_VIEW_FILE) and $(RIGHT_VIEW_FILE)
* thanks to all who wait for this version

v0.2 beta3 - April 2007


-----------------------
- fixed: Delete button (Script name dialog) was not enabled sometimes
+ Menu: Show Console Dialog
+ Console Output Filter: Exclude all empty lines
+ Comment delimiter can be user-defined, // in :// is no more comment

v0.2 beta2 - March 2007


-----------------------
+ Menu: Console Commands History.
When enabled, previous commands can be scrolled by pressing
arrow keys Up and Down.
+ Menu: Console Output Filter.
When enabled, output messages from running console process
can be filtered (i.e. particular lines can be excluded)
- ConsoleDlg: Ctrl+A is unlocked
- ConsoleDlg: Quotes "" are no more added automatically for paths
with spaces (because of a bug with executables w/o extension
such as "cmd /c calc.exe")
- Several internal fixes
- Several additional internal fixes :-)
* Thanks to Jim Granville for his suggestions

v0.1 - March 2007


-----------------
* initial version

You might also like