npp-api ~master

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:

pipeline status

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.

After downloading the JSON file, add your plugin information.

ItemDescription
folder-nameName 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-nameName of the plugin
versionplugin version
idSHA-256 hash of the zip file
repositoryDownload URI corresponding to plugin version
descriptionplugin overview
authorplugin author
homepagePlugin 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.

NameWhere to placeOperation
notepad++.exeNotepad++ folderReplace notepad++.exe with notepad++.exe for debugging.
GUP.exeupdater folderReplace GUP.exe with GUP.exe for debugging.
nppPluginList.jsonplugins/config folderRename 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

Authors:
  • dokutoku
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
Show all 7 versions
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