npp-api 0.1.6-dev
Notepad++ plugin library written in D.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
NPP API
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.
Characteristic
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_test
BetterC compilation test
converter
converter Plugin
plugindemo
plugindemo Plugin
func_test
Function test for this library
hello
hello world plugin sample
mimetools
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
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.
- 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 |
Testing
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.
Donation
The project is soliciting donations to continue development. Please refer to the following site for details.
https://dokutoku.gitlab.io/donation/donation-en.html
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
- 0.1.6-dev released 4 years ago
- dokutoku/npp-api
- gitlab.com/dokutoku/npp-api
- GPL-2.0 or later
- Copyright © 2019, dokutoku
- Authors:
- Dependencies:
- none
- Versions:
-
0.1.6-dev 2020-Aug-05 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 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
43 downloads total
-
- Score:
- 0.7
- Short URL:
- npp-api.dub.pm