****************************************************************************
* 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 true
* 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 customization
* 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 specified
* 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 directory
* $(CWD) : current working directory of NppExec (use "cd" to change it)
* $(ARGC) : number of arguments passed to the NPP_EXEC command
* $(ARGV) : all arguments passed to the NPP_EXEC command after 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 script name)
* $(RARGV[N]) : Nth argument in reverse order (N=1,2,3...)
*