Plugin Manager


Features   Changes   Download   Installation   XML File documentation   Plugin Developers   Submitting changes   Credits   Contact  


Plugin Manager is a plugin for Notepad++ that allows you to install, update and remove plugins from Notepad++. A centrally hosted XML file holds the list of plugins, that the plugin manager downloads and processes against the list of installed plugins.

Important note for Vista / Windows 7: In order to update the plugin manager to 1.0.8 , you need to run Notepad++ as administrator, update plugin manager, then everything will run properly under a normal user. Future updates to Plugin Manager will automatically run as administrator.
Click here for help for update to Plugin Manager 1.0.8

Features



Changes

1.4.3
1.4.2
1.4.1
1.3.5

1.3.4

1.3.3

1.3.2

1.3.1

1.3.0

1.2.0

1.0.8

1.0.7

1.0.5

1.0.4

1.0.3

1.0.2

0.9.3.1

0.9.3

0.9.2.1
0.9.2
0.9


So, I hope you find this plugin useful, and it gives a bit more exposure to plugins, and makes it easier to install some of the bigger plugins.

If you don't see your plugin in the list, let me know (see contact at the end) and I'll make sure it goes in.

Installation

To install the plugin manager, simply download (links below) the .zip, and place the PluginManager.dll file in the Notepad++ plugins directory, and the gpup.exe in the updater directory under your Notepad++ program directory. (e.g. "C:\Program Files\Notepad++\updater")

In fact, if you prefer, you can just add the PluginManager.dll to the plugins directory, then do a reinstall of Plugin Manager from the plugin itself, which will place the file in the right place! Of course, if you're already using an earlier version of the plugin manager, you'll be able to just update from the update tab (or when you get the notification that the update has happened).

Download links

Official home: https://github.com/bruderstein/nppPluginManager/releases
Source code is on github: https://github.com/bruderstein/nppPluginManager
MD5 Sums:
b88c99ec9b8413600cdd9edac348666b PluginManager_1.4.3_UNI.zip
bed7b9b3c9cd4ae7eacb19f6f64eb55e PluginManager_1.3.5_UNI.zip
824573cdf9d08c1a8de369a9a92bce41 PluginManager_1.3.4_UNI.zip
931e1d021dc6fc0a80890df75da4a583 PluginManager_1.3.3_UNI.zip
5367b29d2be4e40632859bbb4bfb7d57 PluginManager_1.0.8_UNI.zip
ad273cfb1b0137a8e79b4df83a1e4d3e PluginManager_1.0.8_ANSI.zip
96f96623bc66713c6b7d13522f282f95 PluginManager_1.0.2_ANSI.zip
b646aae090998a1901bb04f816ee1372 PluginManager_1.0.2_UNI.zip

Older versions Older versions can be obtained from http://sourceforge.net/projects/npppluginmgr/files/

XML File Structure and Features

The XML structure is documented here for completeness. To edit the XML please use the administration system

The XML file consists of <plugin> elements, each with a name attribute, containing the information about each plugin. The name attribute must match (include case) the name provided by the plugins getName() function, i.e. that which appears in the Plugins menu in Notepad++.

From 0.9 onwards, a pluginNames element can be used, containing pluginName elements, to specify a plugin's name, if it reports it dynamically. The MD5sum is given of the file to identify it.
e.g.
<pluginNames>
    <pluginName md5="48ae59abb0224ecc252d35e953ce0496" name="NppExport" comment="ansi 0.2.8"/>
    <pluginName md5="ad32f0f59e70823de864387f65debcea" name="NppExport" comment="unicode 0.2.8"/>
</pluginNames>

The following elements can be contained within the plugin element(all are optional)

Here's an example plugin definition, using f0dder's switcher plugin to switch between related files, such s .h and .cpp :
<plugin name="switcher">
		<unicodeVersion>1.0</unicodeVersion>
		<ansiVersion>1.0</ansiVersion>
		<homepage>http://f0dder.dcmembers.com/npp_plugins/</homepage>
		<description>Switcher: a plugin to switch between 'associated' files. Currently it handles switching between asm&lt;&gt;inc, cpp&lt;&gt;h, cc&lt;&gt;h and c&lt;&gt;h. Useful when assigned to a hotkey.</description>
		<author>f0dder</author>
		<versions>
			<version number="1.0" md5="301c72341ba758b3cdfc8a56d576c7f0" comment="ansi"/>
			<version number="1.0" md5="5a19bd60aa18e4454f1c4a6432ae5a72" comment="unicode"/>
		</versions>
		<aliases>
			<alias name="Extension Switcher" />
		</aliases>
		<install>
			<download>http://f0dder.dcmembers.com/npp_plugins/npp_plugins.zip</download>
			<ansi>
				<copy from="ansi\switcher.dll" to="$PLUGINDIR$" validate="true"/>
			</ansi>
			<unicode>
				<copy from="unicode\switcher.dll" to="$PLUGINDIR$" validate="true"/>
			</unicode>
			<copy from="readme.txt" to="$PLUGINDIR$\doc\switcher"/>
		</install>
</plugin>


Note that you can have as many steps as you like within the <ansi> and <unicode> elements, and you can have as many of these as you like also. So:
<install>
			<unicode>
				<download>http://downloads.sourceforge.net/sourceforge/npp-plugins/SpeechPlugin_0_2_1_dll.zip</download>
				<copy from="SpeechPlugin_0_2_1_dll\SpeechPlugin.dll" to="$PLUGINDIR$" validate="true"/>
			</unicode>
			<ansi>
				<download>http://downloads.sourceforge.net/sourceforge/npp-plugins/SpeechPlugin_0_2_dll.zip</download>
				<copy from="SpeechPlugin_0_2_dll\SpeechPlugin.dll" to="$PLUGINDIR$" validate="true"/>
			</ansi>
</install>

is just as valid as, and does the same job as
<install>
			<unicode>
				<download>http://downloads.sourceforge.net/sourceforge/npp-plugins/SpeechPlugin_0_2_1_dll.zip</download>
			</unicode>
			<ansi>
				<download>http://downloads.sourceforge.net/sourceforge/npp-plugins/SpeechPlugin_0_2_dll.zip</download>
			</ansi>
			
			<unicode>
				<copy from="SpeechPlugin_0_2_1_dll\SpeechPlugin.dll" to="$PLUGINDIR$" validate="true"/>
			</unicode>
			<ansi>
				<copy from="SpeechPlugin_0_2_dll\SpeechPlugin.dll" to="$PLUGINDIR$" validate="true"/>
			</ansi>
</install>

The second is obviously just longer, and the first would probably be preferred.

Plugin developers

There's a web based system for adding or updating your plugin - please use this to update your plugin. See below for how to register.

How to get your plugin listed

Make an announcement on the Plugin Development forum of the Notepad++ project. Then enter your plugin (or update to your plugin) on the administration system. Your update will go out with the next batch of updates, which is every two weeks on Monday at 20:00UTC. This eases the burden on testing, and also means that the XML isn't downloaded by 1-2 million users TOO often (that's nearly 200GB download every time we update).

Submitting changes to the XML Plugin List

As of October 2011, there's a new web based system for plugin developers and maintainers to update and add their plugins.
This system was kindly developed and donated by Pedro Sland, and I'm very grateful for his work on it.

Plugin developers and maintainers and welcome to register for an account at https://npppm.bruderste.in/

IMPORTANT: Testing.
Once your new plugin or update is listed in the admin system, go to your Notepad++, open Plugin Manager, click settings, and click the option to use the development plugin list. This list is 2-3 minutes behind the admin system, so you can test that your updates install pretty much immediately. It also means "early adopters" can try your version out almost straight away. If there are any issues installing, fix them in the admin system, wait 2 minutes, and restart Notepad++ to redownload the list.

The list is automatically promoted every two weeks on Monday at 20:00UTC. (Specifically, odd number weeks, under unix "date +%W")

The old git based XML modification system has been discontinued, and we are now exclusively using the web based system
Enjoy, and please let me know what you think, any feedback is gratefully received! You can either post a comment to the Plugin Development forum, or an issue or pull request on the github project.

Credits

I must say a big thank you to Joce, who helped a lot in the development of this plugin.
A big thanks to Pedro Sland, for developing the administration system. This has massively reduced the workload for updating the list, and enabled all plugin developers to
The good people on #notepad++ (especially joce and Thell) who've helped out with ideas and code reviews
Don Ho and all the contributors, for bringing us this great editor, and providing such a neat plugin architecture that developers can easily add stuff

Contact

Dave Brotherstone
Email is github.com/bruderstein