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.
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.
Being able to support BetterC is very important. By using BetterC, you can achieve the same execution speed as C language.
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
BetterC compilation test
converter Plugin
plugindemo Plugin
Function test for this library
hello world plugin sample
mimetools 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.
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
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 of each created zip 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.
- pl.x86.json(32bit)
- pl.x64.json(64bit)
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".
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.
https://dokutoku.gitlab.io/donation/donation-en.html
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.