NotePad++
is a very nice and fast text editor for programming that I like to use for many tasks.
I decided to write
some plugins to implement functionality that I desired to have and could not find otherwise. For this reason most of the functions are targeted to my type of use and only few reasonable requests from users have been included because I found them useful to have, they were reasonably easy to implement, and the intrigued me.
AutoSave plugin
LanguageHelp plugin
MenuIcons plugin
OpenSelection plugin
RunMe plugin
TakeNotes plugin
TopMost plugin
PluginUpdate plugin (deprecated... use PluginManager instead)
TrayMenu plugin (no development for the moment)
ZIP file content and installation: Each ZIP file below contains two different DLLs: xxxA.dll is an ASCII version of the plugin to be used with the older ASCII versions of NotePad++, xxxU.dll is an Unicode version of the same plugin to be used with the new Unicode versions of NotePad++. Only one of the two DLL should be copied in the plugin folder and used at a given time depending on the version of NotePad++ you are using. Disclaimer:
If you decide to try or use any of the software provided below please be advise that there is no warranty and no liability provided and therefore you are doing at your own risk.The
author of this software expressly disclaims any warranty for the
software product which is provided "as is" without warranty of any kind,
either express or implied, including, without limitation, the implied
warranties or merchantability, fitness for a particular purpose, or
non-infringement. The entire risk arising out of use or performance of
the software remains with you. In no event shall the author of this
Software be liable for any damages whatsoever (including, without
limitation, damages for loss of business profits, business interruption,
loss of business information, or any other pecuniary loss) arising out
of the use of or inability to use this product, even if the author of
this software has been advised of the possibility of such damages.
Source code: Although the plugins below are free to distribute, install, and use, the source code is not available at the moment. It may become in the future when the plugins become obsolete or abandoned. If you are looking for examples, please check the Sourceforge web site.
AutoSave
allows to automatically save the currently open files based on a timer
schedule (default is 1 min) and/or upon the application losing focus.
The plugin offers several options to save the
current (or all the files), selecting only the named ones, accessible
through an options dialog box.
Is designed for NPP >= v5.7
+ enable new features that allow to save unamed buffers as well as create autorecovery files
+ fixes a problem that disabled previous version under NPP v5.7
Old menu settings has been replaced with a new options dialog box
A new dialog box
to set the interval of the timed autosave as well as the new
NPPM_GETPLUGINSCONFIGDIR available since NotePad++ v4.1.0. This means
that for users using %APPDATA% directory the profiles will be saved in
%APPDATA%\Notepad++\Plugins\Config instead of %APPDATA%\Notepad++.
LanguageHelp allows to load a language specific help file (CHM,
HLP, PDF) and search for the keyword under the cursor. The latest
version allows also to show the help files as menu entries or in the context menu.
Fixed a problem with the context menu not displaying in recent versions of Notepad++. Added date/time variables in path expansion. This version drops ASCII support.
A new extension/file matching algorithm has been implemented that allows to use command line file search patterns. Note that the old format for extension matching should be automatically updated to the new format... but if it does not work, you may need to do so manually. Please note that this version may be incompatible with WinXP system because it requires shlwapi.dll v7... thanks to Diamanti.
Add several options/features that were requested by users:
- the context menu entry can be displayed either at the top or bottom (see new options dialog box)
-
if no Acrobat program is found in the registry the PDF file is shell
executed so that you preferred read is started (note that in this way no
keyword search is possible)
- the "Test" button in the language edit
dialog box has been renamed to a more appropriated "Expand". A new
"Test" button has been added to test the help file in the same way as
calling the "Help" from the menu.
Fix a bug introduced in 1v31 that disabled several previous features.
This version also fixes a mysterious bug were the Help menu entries
would be shown in the file tab popup menu if it was double right clicked
with the mouse.
Add several options:
- a toolbar button for calling the help on the currently selected word (enable in options dialog box)
- the possibility of showing the help command on the context menu
- the possibility of searching for the currently selected word even when using the menu entries
Adds support for ms-help collections (thanks to Wintruder) and removes
the requirement of lowercasing of path that are shell executed (as
requested by Diamanti
Ms-Help collection may be accessed in two
ways by specifying a path that starts with "ms-help://" in the extended
file path control box in the options dialog box. One can just specify
the collection: "ms-help://<collection> " (such as
"ms-help://ms.vscc "), in this case the current work will be
automatically appended to be searched. Alternatively, a complete search
string can be specified using any of the special variable available:
"ms-help://<collection>?word=$word$&filter=<filter>"
(such as "ms-help://ms.vscc?word=$word$&filter=Visual C++").
Adds environment and special variables to the help path as well as the
capability of calling HTML files and do internet searches:
The help file path may point to a local CHM or PDF files for keyword search.
Alternatively, the field may point to a command/file that will be shell executed.
This include HTML file both on the local machine and on the internet.
The help file path edit box may contain special substitution strings:
$fullpath$ = full path of the currently active file
$dir$ = directory of the currently active file
$name$ = file name without extension of the currently active file
$ext$ = extension of the currently active file
$word$ = currently selected word
$nppdir$ = directory of notepad.exe
$pdir$ = plugin directory
$cdir$ = config directory
Additionally enviroment variables are accepted in the form %envvar%.
For example: %programfiles% will be replaced by "c:\program files\"
For example: http://www.google.com/search?q=$word$ will search for the current word on Google
Use the test button to see the expanded path based on current settings.
Fixes two bugs:
- PDF help was not working anymore since the Unicode version was introduced;
- The CHM help window was sending messages to the main window (thanks eRIC & Michael).
Some additional error checking and messages have been added.
This version fixes a bug preventing the plugin to save the correct menu
display choice upon closing Notepad++, when the help file where shown in
the main Notepad++ help menu (thanks Bertrou).
This version fixes a small bug and try to work around the Acrobat
Reader incapability to execute a DDE DocFind command request (thanks to
Mauro for pointing it out). The search is implemented through the
command line argument "/A search=". Unfortunately this solution does not
allow to search for additional words once the PDF file is open... so in
order to search new words one has to close the PDF file first. When I
have time I will look into a OLE implementation that may be able to fix
this issue.
Adds two main functionality to the previous version: PDF help file
search and capability to show the help files as menu entries either in
the plugin menu or in the main Notepad++ help menu. If one specify a PDF
file as an help file in the option dialog box, the plugin automatically
recognize it and call Acrobat to show it (NOTE that this implementation
is based on the Acrobat DDE and therfore require at least the Acrobat
Reader). Check box have been added and enabled in the main Option dialog
box and in the language help edit box to enable showing the help file
as a menu entry.
It is the very first version of the plugin so there is no fancy GUI to
setup the list of language specific help files. At the moment you have
to manually edit the LanguageHelp.ini file that will be created in you
plugin/config directory. Please note that the file path do not need to
be in SNF as in the example below.
[Options]
StayOnTop=0
If
StayOnTop=1, the window will stay on top of Notepad++, otherwise
clicking on Notepad++ main window will put the help in bkgnd. The
default value is 0.
For each language you specfy a short name for the section: [MyLanguage]
Then you define two entries to list the extensions without the "." and separated by space.
They you define the path to the help file to use for that extension.
Error handling is not very advanced at the moment!!!
MenuIcons allows to add icons to both main and context menu. Several options are available to load the icons from a folder. More than provide a full set of icons, it's design to enable people to create their own set of icon themes. Note: the plugin does not work correctly on WinXP.
Alternative icon sets: English by Yaron, Hebrew by Yaron. Just download them and replace the MenuIcon folder or save them somewhere else and set the new folder in the Menu Icons plugin options.
This version fix a bug that did not display the file icons in the Window sub menu in recent versions of NPP. Speed improvement in generating the recent file icons when network files are listed
This version adds icons to the tab popup menu. More icons are included from both open icon library (http://sourceforge.net/projects/openiconlibrary/) and famfamfam.com.
OpenSelection is designed to help people to open files based on the selected text. A typical applications is "include" files of may types of programs. Another applications is to open Matlab functions. The plugin is can be customized for different languages based on the open file extension. Multiple search folders may be specified along with multiple extensions.
RunMe allows to execute the currently open file, based on its shell
association. The plugin allows also to open an explorer or command shell at the file location. Options are available to same the current file (or all the files) before execution. The executed file can be run in foreground,background, or hidden mode. Context menu entries and tool bar icons are available.
Added the possibility of running a different external program to explore a file folder. Fixed a couple of issues that did not allow the plugin to run on WinXP. This is the last version running on WinXP.
New features have been added:
+ now it is possible to have toolbar
icons for the three main functions of the plugin: run/explore/shell
displaying the icons can be enabled/disabled (individually) from the
newly designed options dialog box
+ now it is possible to take some
actions after executing the current file from the newly designed options
dialog box: one can decide to minimize NPP, keep the focus to NPP, or
give the focus to the executed process
This version adds several new features and reorganizes all the options
into a new options dialog box instead of the plugin sub-menu:
+ you
can set the folder where the current file will be executed (requested by
Michael): current process directory, file directory, you can enter it
each time, or you can set one based on replacement variables
+ you can open an explorer window at the file location
+ you can open a shell (of your choice) at the file location
Additionally:
+ more options for saving the script before executing
+ more checks on file and folder existence
+ code clean up and minor bug fixes.
fixes a bug that caused files running in console to be hidden. This
version also adds 3 new options to run the current file hidden,
maximized, or minimized. When no option is checked, the file is run in
normal mode.
TakeNotes is designed to help people who like to use Notepad++ for jotting quick notes. Instead of using unnamed "new ?" files, this plugins allows to quickly create new empty files in a folder of choice. The file names may be custom generated using a mask and may contain details such as the user name, date, and time of creation so that unique files may be generated. Additionally, the plugin allows to load exiting notes in the folder of choice, save existing files as a note, and open the last saved note quickly. Please refer to the Options dialog box for more details. It is strongly recommended to use this plugin in combination with AutoSave to make sure that you never loose a note.
TopMost allows to set the main Notepad++ window as a topmost
window so it can stay on top of other windows even when it is not
active. This plugin sync with Notepad++ own stay on top functionality and allows to remember the setting between restarts as well
as to show a toolbar button.
Is now fully sync with Notepad++'s own "Stay on top" menu item.
Additional options allow to:
- show a toolbar button to toggle the stay on top state
- remember the state between sessions/restarts
PluginUpdate allows to check for new versions of plugin that
provide update information. As the development progresses, new
functionality will be added to download list of new plugins as well
download the plugin itself. This plugin has been deprecated and all development has stopped. Please use PluginManager instead.
Here what you have to do to make you plugin update:
1) the installed plugin "myplugin.dll" (either in the AppData or Program directory) shoudl have a corresponding "myplugin.ini" in the Plugins/Config directory with an entry like (note: it's a good idea that you plug in writes that data the first time is run bu Notepad++):
[Update]
URL=http://<mywebpath>/mypluginupdate.ini
2) you should make available the "mypluginupdate.ini" file online at the location specified by the previous URL. "mypluginupdate.ini" should contain entry in the form:
[myplugin.dll]
CurrentVersion=<new version string>
DownloadURL=<internet path where to find the new plugin>
3) it's a good idea to have the file to download at the specified DownloadURL
Additional entries will be added later to add for new functionalities. Note also that the same "mypluginupdate.ini" file can handle as many plugin as needed because it's just enough to add new entries to it. Note also that the DLL extension is need.
This version fixes some issues in searching the config file when plugin do not place it in the right directory. The following search pattern is implemented (note that in non local apps the INI file should always be in %appdata%\Notepad++\Plugins\Config, while for local apps it should always be in %programfiles%\Notepad++\Plugins\Config, this independently from where your DLL is):
if not exist doLocalConf.xlm then
%appdata%\Notepad++\Plugins\Config
%appdata%\Notepad++\Plugins
%appdata%\Notepad++
end
%programfiles%\Notepad++\Plugins\Config
%programfiles%\Notepad++\Plugins
%programfiles%\Notepad++
Also this version runs the check on a separate thread so that Notepad++ is free to used while checking.
This version is very basic and implements only a manual check by the user (future versions will implement automatic check on program starting, exiting and periodically). Options are not available yet. This version will also automatically take care up the updates on my other plugins even though they don't have the URL entry yet.
TrayMenu allows to add features to the Notepad++ tray icon. There is currently no development effort on this plugin.