こんにちはブレイブマン
本日、メモ帳++のプラグインを共有することにしました。これにより、JavaScriptを使用してテキストを使用したいくつかのアクションを自動化できます。
だけでなく。
アイデアの誕生
Notepad ++を発見してから、かなりの時間が経過しました。 自宅でも職場でも使用しています。 ファイルを定期的に処理する必要がある場合があり、ほとんどの場合、正規表現で十分です。 しかし、もう少しロジックを一気に置き換えたり、何かを計算したりしたい場合があります。 完全な幸福のために、VBAは十分ではありません:-)。
しばらく検索したところ、「シンプルスクリプト」というプラグインが見つかりました。 特定の関数セットを使用して、テキストを順番に処理できます。 一般に、このスクリプトは単純すぎて、当時の私の小さなニーズを原則的に満たすことができませんでした。 「シンプルなスクリプト」との友情
起こらなかった。
勤務中、Microsoft Windows Scriptに出会い、XMLファイルの生成と処理を自動化しました。 ドキュメントを読んだ後、アプリケーションにねじ込むことができることがわかりました。 インターネットを検索して、アプリケーションに実装する詳細情報と経験を探した後、RSDN.ruで完全な例を見つけました。
Notepad ++で完全なJavaScriptが必要であり、これが可能であることは明らかでした。
実装
ビジネスを始めようとする多くの試みは失敗しました。 自宅のコンピューターにATLがないこと、およびこのライブラリーを扱うための欲求と時間がないことにより、開始のための比較的大きなしきい値が作成されました。 しかし、次の襲撃に備えて、2つの重要な記事に出くわしました
。ATLのないCOMと
スクリプトの使用です。 これら2つの記事を使用して、ATLを使用せずにRSDN.ruの例を修正しました。 最初のプロトタイプが機能し始めたとき、私の喜びは際限がありませんでした。
すぐに、私は最初のアイデアに気付きました-選択された、またはクリップボードにコピーされたJavaScriptコードの実行。 次に、このコードをメニュー項目に掛けたいと思いました。 少し考えて、ウィンドウの機能を変更したので、Nppのメインメニューになんとか入り込みました。 メニューを操作する機能により、新しいプラグインの範囲が拡張されました(以下を参照)。 メニューの登場により、コンテキスト依存にしたかったのです。 たとえば、ファイルからファイルに切り替えるときに[de]特定のメニュー項目をアクティブにします。 そのため、イベントハンドラーをハングアップする機会がありました。
プラグインの使用例を準備することで、設定の読み取りと保存の基礎を築きました。
使用する
ああ、おそらく私の話であなたにうんざりしています! 練習に移りましょう。
JavaScriptのグローバルスコープでは、Editorオブジェクトが使用可能です。 プロパティとメソッドへのアクセスも、名前を指定せずに可能です。
firstView;
テキストエディターで作業するために、エディターは[firs | current | second]ビューのプロパティを提供します。
text; file;
メインメニューに追加するには、Editor.addMenu( "Your Sub menu")を呼び出す必要があります。 メインメニューに要素を直接追加することはできません
提供されます。
text; checked; disabled; addMenu( text);
シードについては、小さな例(749バイトのみ)を指定することにしました。
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); if (xmlHttp){
この例は、ActiveXを使用してXMLとシェルを操作するだけでなく、プラグインの機能も示しています。
www.softwarecanoe.de/pic/nppscripting.habr.pngその他のオプションについては、includesフォルダーに含まれるスクリプトを参照してください。
- run.js-JavaScriptを実行するメニューを追加し、
- clearcase.js-ClearCaseで作業するためのメニューを追加し、
- decode.js-テキストをデコードするためのメニューを追加します(非ロシア語Windowsで実用的)、
- gTranslate.js-Google翻訳を使用してテキストを翻訳するためのメニューを追加し、
- test.menu.js-例とテストを含むメニューを追加し、
- dialog.js-Internet Explorerを使用してダイアログボックスを作成できます。
- Zen Coding.js-chikuyonokによるZen Coding。
いくつかのリンク:
Google Codeのプロジェクトページ、
Microsoft Windowsスクリプトハッピースクリプト!
UPD :
chikuyonokの努力のおかげで
エラーが発見され、Zen CodingはNotepad ++に適合しました!!!
エラーはすでに修正されています。
UPD 2 :
t0Hの努力の
おかげで 、別の
間違いが発見されました。 非表示のメインメニューに新しいサブメニューは追加されませんでした。
エラーはすでに修正されています。
UPD 3 :
新しいバージョンとそれに対応する
API 。 プラグインはLUAでのプログラミング用に同じ名前で既に存在していたため、プラグインの名前を変更する必要がありました。 したがって、プラグインの以前のバージョン(NppScripting.dllおよびNppScriptingフォルダー)をアンインストールすることを忘れないでください。