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.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: http://sourceforge.net/projects/npppluginmgr/files/v1.0.2
Unicode: http://www.brotherstone.co.uk/npp/pm/PluginManager_0.9.3.1_UNI.zip
ANSI: http://www.brotherstone.co.uk/npp/pm/PluginManager_0.9.3.1_ANSI.zip
Source code is on github: http://github.com/davegb3/nppPluginManager
MD5 Sums:
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

If you're a plugin developer or maintainer, and you don't want your plugin in the list, or you want to wait a while until it's stable, then just let me know. I won't be releasing any updated plugins as soon as they are released, only after a few days when any bug reports have had chance to come in - unless there's a very good reason.

There's a web based system for adding or updating your plugin - please use this to update your plugin

How to get your plugin listed

Make an announcement on the Plugin Development forum of the Notepad++ project. I monitor this forum closely, and take the updates from there.
IMPORTANT: If you haven't announced your plugin (or new version) on the Plugin development forum, it doesn't go in Plugin Manager. Period. This is a safety feature, so we don't distribute a random binary through Plugin Manager, without first giving people the opportunity to download it themselves, virus check it, and, most importantly check it doesn't do anything harmful.

Due to pressure of time, updates tend to be bunched up over a few weeks (shorter if there have been a lot of updates). 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 http://www.brotherstone.co.uk/npp/pm/admin



It's obviously important to test that your modifications work, so for that we have a testing version of the Plugin Manager.
  1. Download the testing version of Plugin Manager (1.0.8) here: Unicode / ANSI
  2. Add the following lines to your PluginManager.ini (under plugins\Config, or %APPDATA%\notepad++\plugins\config)
    xmlurl=http://www.brotherstone.co.uk/npp/pm/admin/plugins/generate_xml
    md5url=http://www.brotherstone.co.uk/npp/pm/admin/dummy.md5.txt
    


This version downloads the XML directly from the admin site, and validates the MD5s against the hashes that have been added on the admin site. Please test your changes.

This is also a "debug" build, so if something goes wrong, you can step through it. The PDBs are also included in the zip file.

The current XML file is located here, if you want to check it out.

The old git based XML modification system has been discontinued, and we are now exclusively using the web based system
Next steps after 1.0.2, who knows: 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 sometimes find me in #notepad++ on freenode.

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
Find me on IRC in #notepad++ on Freenode, davegb3.