npp-api 0.1.5-dev

Notepad++ plugin library written in D.


pipeline status


NPP API is a D language Notepad++ plugin development library.

This library is a development version created by a novice programming. Note that destructive changes can be added in sequence.

The original text of this document is written in Japanese.


Automatic definition generation

This library can automatically generate processing for the following items:

  • Functions required for Notepad++ plugin
  • Main menu
  • Sub menu
  • Generate configuration file
  • Read configuration file
  • Write configuration file
  • Check main menu

You just write the plugin definition and mixin it.

BetterC support

Being able to support BetterC is very important. By using BetterC, you can achieve the same execution speed as C language.

Message wrapper function

Introduced functions to pass messages to Notepad++ and Scintilla. This is advantageous in the following points.

  • Don't worry about SendMessageA or SendMessageW
  • No need to think about the location of parameters passed to SendMessage

Contents of sample folder


BetterC compilation test


converter Plugin


plugindemo Plugin


Function test for this library


hello world plugin sample


mimetools Plugin

How to publish Notepad++ plugin

To publish Notepad++ plugins, you need to register in nppPluginList. nppPluginList plugin is a plugin manager that comes with Notepad++. By registering with this, you can let the user download the plugin.

Create res file

First, copyright information must be assigned to the plugin DLL.

To assign copyright information for the plugin, prepare an .rc file that describes the copyright information. It is recommended that the character encoding of the rc file be UTF-16.

Compile the .rc file and specify the resulting .res file at build time. The command to compile the rc file is as follows.

rc / n test.rc


Build the plugin with DUB. Create 32-bit and 64-bit versions.

dub build --arch = x86 --build = release
dub build --arch = x86_64 --build = release

Create a zip file

Compress the generated plugin file directly into a zip file without putting it in the directory. The zip file must be 32bit and 64bit separately.

After compression, change the zip file name to the same name as the plugin dll.

Create a SHA-256 file hash

Create a SHA-256 file hash of each created zip file.

Create a JSON file

Create a JSON file that describes the plugin information. Download the JSON file from the nppPluginList repository. The role of the JSON file is as follows.

After downloading the JSON file, add your plugin information.

| Item | Description | | --- | --- | | folder-name | Name of the folder to be created under the Notepad++ plugin folder. Must be the same as the plugin dll name.Do not duplicate the folder-name of other plugins. | | display-name | Name of the plugin | | version | plugin version | | id | SHA-256 hash of the zip file | | repository | Download URI corresponding to plugin version | | description | plugin overview | | author | plugin author | | homepage | Plugin homepage |


After creating the JSON file, test it with Notepad++ for debugging. Download the debug file.

Place the downloaded file and the generated JSON file in the Notepad++ folder.

| Name | Where to place | Operation | | --- | --- | --- | | notepad++.exe | Notepad++ folder | Replace notepad++.exe with notepad++.exe for debugging. | | GUP.exe | updater folder | Replace GUP.exe with GUP.exe for debugging. | nppPluginList.json | plugins/config folder | Rename pl.x64.json or pl.x86.json to nppPluginList.json. |

Once placed, launch Notepad++ and check if the JSON file is correct. Let's see if your plugin has been added from "Plugins" → "Plugin Admin".

Send a pull request

After confirming that there is no problem with the JSON file, send a pull request to nppPluginList. Wait for the request to be approved.


The project is soliciting donations to continue development. Please refer to the following site for details.

Project status

I spend a lot of time NPP API and RDMD for Notepadd++ Spent on development. And I was able to implement the functions I wanted.

So if there is no donation, we will stop development.

Sites that may be helpful for plugin production

  • dokutoku
0.1.5-dev 2020-Apr-05
0.1.4-dev 2019-Oct-09
0.1.3-dev 2019-Oct-09
0.1.2-dev 2019-Oct-09
0.1.1-dev 2019-Oct-07
Show all 6 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 26 downloads total

Short URL: