NPP APIはD言語製のNotepad++のプラグイン開発ライブラリです。
このライブラリはプログラミング初心者が製作した開発版です。 破壊的変更が次々に加えられる可能性があることに注意してください。
この文章の原文は日本語で書かれています。
このライブラリは以下の項目の処理を自動的に生成することができます。
- Notepad++のプラグインに必要な関数群
- メインメニュー
- サブメニュー
- 設定ファイルの生成
- 設定ファイルの読み取り
- 設定ファイルの書き込み
- メインメニュのチェック
あなたはプラグインの定義を書いて、mixinするだけです。
BetterCに対応できることは非常に重要です。 BetterCを利用することでC言語と同等の実行速度を実現することができます。
Notepad++やScintillaにメッセージを渡す関数を導入しました。これは以下のような点で有利です。
- SendMessageAかSendMessageWかを気にしなくてもよくなる
- SendMessageに渡すパラメータの場所について考えなくてよくなる
BetterCのコンパイルテスト
converterプラグイン
plugindemoプラグイン
このライブラリの関数テスト
hello worldプラグインサンプル
mimetoolsプラグイン
Notepad++のプラグインを公開するには、nppPluginListに登録する必要があります。 nppPluginListプラグインはNotepad++本体に付属されているプラグインマネージャーです。 これに登録することで、あなたは利用者にプラグインをダウンロードさせることができます。
まずはプラグインのDLLに著作権情報を付与しなければなりません。
プラグインの著作権情報を付与するには、著作権情報を記述した.rcファイルを用意します。 rcファイルの文字エンコーディングはUTF-16にすることを推奨します。
.rcファイルをコンパイルして、できた.resファイルをビルド時に指定します。 rcファイルをコンパイルするコマンドは以下のようになります。
rc /n test.rc
プラグインをDUBでビルドします。 32bit版と64bit版を作成します。
dub build --arch=x86 --build=release
dub build --arch=x86_64 --build=release
生成されたプラグインファイルをフォルダに入れないで直接zipファイルに圧縮します。 zipファイルは32bitと64bitを別々にする必要があります。
圧縮したらzipファイル名をプラグインのdllの名前と同じ名前にします。
作成したそれぞれのzipファイルのSHA-256ファイルハッシュを作成します。
プラグインの情報を記述したJSONファイルを作成します。 nppPluginListのレポジトリからJSONファイルをダウンロードします。 JSONファイルの役割は以下のようになっています。
- pl.x86.json(32bit)
- pl.x64.json(64bit)
JSONファイルをダウンロードしたらあなたのプラグインの情報を追記します。
項目 | 説明 |
---|---|
folder-name | Notepad++のpluginフォルダ以下に作成するフォルダの名前。プラグインのdllの名前と同じである必要があります。他のプラグインのfolder-nameと重複してもいけません。 |
display-name | プラグインの名前 |
version | プラグインのバージョン |
id | zipファイルのSHA-256ハッシュ |
repository | プラグインのバージョンに対応したダウンロードURI |
description | プラグインの概要 |
author | プラグイン作成者 |
homepage | プラグインのホームページ |
JSONファイルを作成したらデバッグ用のNotepad++でテストします。 デバッグ用のファイルをダウンロードします。
ダウンロードしたファイルと生成したJSONファイルをNotepad++のフォルダに配置します。
名前 | 配置する場所 | 操作 |
---|---|---|
notepad++.exe | Notepad++をインストールしたフォルダ | notepad++.exeをデバッグ用のnotepad++.exeに置き換える。 |
GUP.exe | updaterフォルダ | GUP.exeをデバッグ用のGUP.exeに置き換える。 |
nppPluginList.json | plugins/configフォルダ | pl.x64.jsonかpl.x86.jsonをnppPluginList.jsonへとリネームする。 |
配置したらNotepad++を起動してJSONファイルが正しいかどうかをチェックします。 「プラグイン」→「プラグイン管理」からあなたのプラグインが追加されているかどうかを見てみましょう。
JSONファイルに問題がないことが確認できたら、nppPluginListにプルリクエストを送ります。 リクエストが承認されるのを待ちましょう。
このプロジェクトでは開発継続のための寄付を募っています。 詳細は以下のサイトを参考にしてください。
https://dokutoku.gitlab.io/donation/donation-ja.html
私は非常に多くの時間をNPP APIとRDMD for Notepadd++の開発に費やしました。そして自分が欲しかった機能を実装することができました。
なので寄付がなければこのまま開発を停止する予定です。