2023/09/23(土) [n年前の日記]
#1 [hsp][editor][notepadpp] Notepad++でHSPファイルを扱えるように設定
HSP関連の情報をググっていたら、Notepad++ でHSPファイルを扱えるようにする記事と遭遇。
_Notepad++でHSPスクリプトを編集・実行できるようにする - ウチツクシ
せっかくだから手元の環境でも設定しておくことにした。環境は、Windows10 x64 22H2 + Notepad++ 8.5.7 32bit Portable。
前述のページを参考にして作業していけばOKだけど、一応念のために手元でも手順をメモ。
_Notepad++でHSPスクリプトを編集・実行できるようにする - ウチツクシ
せっかくだから手元の環境でも設定しておくことにした。環境は、Windows10 x64 22H2 + Notepad++ 8.5.7 32bit Portable。
前述のページを参考にして作業していけばOKだけど、一応念のために手元でも手順をメモ。
◎ 色分け表示設定 :
.hspファイルを開いたら色分け表示されるようにしたい。Notepad++ 用の設定ファイルが公開されてるので利用させてもらう。ありがたや。
_Notepad++用 HSP(3.6 beta2) 自動補完キーワードとシンタックスハイライト - GitHub
上記のページで「Download ZIP」をクリックして .zip を取得。解凍すると、以下の2つのファイルが入っている。
Notepad++ を起動。言語 → ユーザー定義 → 言語を定義、を選択。
インポートをクリック。NppHspLang.xml を選んでインポートする。
Notepad++ を再起動。言語 → HSP があることを確認。
.hsp ファイルを読み込んで、色付けされることを確認。もしかすると、言語 → HSP、を選ぶ必要があるかもしれない。
公開されているソレはダークモードに合わせた配色になっているようで、背景色が黒になっていた。白系に変更したい。
.hspファイルを開いた状態で上記の作業をすれば、即座に反映されて見た目の色が変わっていく。設定ダイアログ上の色んな所に「スタイル設定」ボタンをがあるので、片っ端からクリックして再設定していった。
_Notepad++用 HSP(3.6 beta2) 自動補完キーワードとシンタックスハイライト - GitHub
上記のページで「Download ZIP」をクリックして .zip を取得。解凍すると、以下の2つのファイルが入っている。
- hsp.xml : 入力補完用設定ファイル
- NppHspLang.xml : 色分け表示(シンタックスハイライト)用設定ファイル
Notepad++ を起動。言語 → ユーザー定義 → 言語を定義、を選択。
インポートをクリック。NppHspLang.xml を選んでインポートする。
Notepad++ を再起動。言語 → HSP があることを確認。
.hsp ファイルを読み込んで、色付けされることを確認。もしかすると、言語 → HSP、を選ぶ必要があるかもしれない。
公開されているソレはダークモードに合わせた配色になっているようで、背景色が黒になっていた。白系に変更したい。
- 言語 → ユーザー定義 → 言語を定義、を選ぶ。
- 言語名で「HSP」を選ぶ。
- 「スタイル設定」というボタンをクリックすれば色その他を再設定できる。
.hspファイルを開いた状態で上記の作業をすれば、即座に反映されて見た目の色が変わっていく。設定ダイアログ上の色んな所に「スタイル設定」ボタンをがあるので、片っ端からクリックして再設定していった。
◎ 入力補完設定 :
Notepad++インストールフォルダ\plugins\APIs\ 以下に、hsp.xml をコピーする。
◎ HSPファイルをコンパイルして実行 :
開いた .hsp を実行したい。cmptage.exe を入手する。
_GitHub - skymonsters-Ks/Cmptage: HSPスクリプトコンパイル補助ツール
_Releases - skymonsters-Ks/Cmptage - GitHub
cmptage_0.8.0.0.zip を入手して解凍。cmptage.exe を、HSPインストールフォルダにコピーする。ちなみに今回は、C:\Prog\hsp36\ 以下にコピーした。
Notepad++ を起動して、実行 → ファイル名を指定して実行。
以下を入力。
最後の「/d」はデバッグウインドウ付きで実行することを指定している。デバッグウインドウが無くてもいいなら、「/d」は要らない。
「実行」をクリックすれば、.hspファイルのコンパイルと実行ができる。ちなみに「登録」をクリックすれば、実行メニューの下に項目として並べたり、ショートカットキーを割り当てたりできる。
_GitHub - skymonsters-Ks/Cmptage: HSPスクリプトコンパイル補助ツール
_Releases - skymonsters-Ks/Cmptage - GitHub
cmptage_0.8.0.0.zip を入手して解凍。cmptage.exe を、HSPインストールフォルダにコピーする。ちなみに今回は、C:\Prog\hsp36\ 以下にコピーした。
Notepad++ を起動して、実行 → ファイル名を指定して実行。
以下を入力。
"HSPインストールフォルダ\cmptage.exe" "$(FULL_CURRENT_PATH)" /d手元の環境では以下を入力。
"C:\Prog\hsp36\cmptage.exe" "$(FULL_CURRENT_PATH)" /d
最後の「/d」はデバッグウインドウ付きで実行することを指定している。デバッグウインドウが無くてもいいなら、「/d」は要らない。
「実行」をクリックすれば、.hspファイルのコンパイルと実行ができる。ちなみに「登録」をクリックすれば、実行メニューの下に項目として並べたり、ショートカットキーを割り当てたりできる。
◎ 関数リスト関連設定 :
.hspファイル内のラベル等を一覧表示したい。Notepad++ の場合、「関数リスト」機能を使えばそういったことができるらしい。
前述の解説ページでは、functionList.xml に色々追記することになっているけれど、Notepad++ 8.5.7 32bit Portable の時点では、設定ファイルを置く場所が違う模様。
_Notepad++ でアウトライン(目次みたいなもの)を表示させたい - Qiita
_can i use function list in Notepad++ 7.9.5? | Notepad++ Community
前提条件として、HSPの色分け表示ができている状態、つまりはユーザ定義のHSP用言語ファイルが既に存在する状態じゃないと関数リストは使えない。今回、色分け表示は前述の作業で実現できているので、条件は満たしている。
Notepad++インストールフォルダ\functionList\ 以下に、hsp.xml というファイルを作成。内容は以下。
記述内容については以下が参考になるらしいけど、英語だから何がなんだか…。
_Function List | Notepad++ User Manual
更に、Notepad++インストールフォルダ\functionList\ の中に overrideMap.xml というファイルがあるので(あったので)修正。このファイルで、どの言語設定ファイルが使われる時に、どの関数リスト設定ファイルを利用するかを指定するらしい。
自分は Notepad++ Portable版を使ってるので、overrideMap.xml が件の場所にあったけど、一般的なインストールをした場合は、%APPDATA$\Notepad++\ の中にありそうな気もする…。Win + R を叩いて、「ファイル名を指定して実行」で、「%APPDATA$\Notepad++\」を打ち込んで開いてみて確認したほうがいいのかもしれない。
overrideMap.xml の、<associationMap> 〜 </associationMap> の間のどこかに、以下を追加。
Notepad++ を再起動。.hsp ファイルを開いてから、表示 → 関数リスト、を選ぶと、ラベル一覧っぽいものが表示された。
前述の解説ページでは、functionList.xml に色々追記することになっているけれど、Notepad++ 8.5.7 32bit Portable の時点では、設定ファイルを置く場所が違う模様。
_Notepad++ でアウトライン(目次みたいなもの)を表示させたい - Qiita
_can i use function list in Notepad++ 7.9.5? | Notepad++ Community
前提条件として、HSPの色分け表示ができている状態、つまりはユーザ定義のHSP用言語ファイルが既に存在する状態じゃないと関数リストは使えない。今回、色分け表示は前述の作業で実現できているので、条件は満たしている。
Notepad++インストールフォルダ\functionList\ 以下に、hsp.xml というファイルを作成。内容は以下。
<?xml version="1.0" encoding="UTF-8" ?> <!-- To learn how to make your own language parser, please check the following https://npp-user-manual.org/docs/function-list/ --> <NotepadPlus> <functionList> <parser displayName="HSP" id="hsp_function" commentExpr="(/\*.*?\*)/" > <function mainExpr="^\s*(#(mod(ule|init|term)|(def|mod)c?func|global)|\*[@\w]).*?$" displayMode="$functionName$" > <functionName> <nameExpr expr="(#|\*).*?$"/> </functionName> </function> </parser> </functionList> </NotepadPlus>
記述内容については以下が参考になるらしいけど、英語だから何がなんだか…。
_Function List | Notepad++ User Manual
更に、Notepad++インストールフォルダ\functionList\ の中に overrideMap.xml というファイルがあるので(あったので)修正。このファイルで、どの言語設定ファイルが使われる時に、どの関数リスト設定ファイルを利用するかを指定するらしい。
自分は Notepad++ Portable版を使ってるので、overrideMap.xml が件の場所にあったけど、一般的なインストールをした場合は、%APPDATA$\Notepad++\ の中にありそうな気もする…。Win + R を叩いて、「ファイル名を指定して実行」で、「%APPDATA$\Notepad++\」を打ち込んで開いてみて確認したほうがいいのかもしれない。
overrideMap.xml の、<associationMap> 〜 </associationMap> の間のどこかに、以下を追加。
<association id= "hsp.xml" userDefinedLangName="HSP"/>ユーザ定義の言語設定として、"HSP" が利用された時、hsp.xml を参照しろ、という指定だろうか。要するに、overrideMap.xml の最後のあたりは、以下のような見た目になる。
... <!-- ==================== User Defined Languages ============================ --> <association id= "krl.xml" userDefinedLangName="KRL"/> <association id= "nppexec.xml" userDefinedLangName="NppExec"/> <association id= "sinumerik.xml" userDefinedLangName="Sinumerik"/> <association id= "universe_basic.xml" userDefinedLangName="UniVerse BASIC"/> <association id= "hsp.xml" userDefinedLangName="HSP"/> <!-- ======================================================================== --> </associationMap> ...
Notepad++ を再起動。.hsp ファイルを開いてから、表示 → 関数リスト、を選ぶと、ラベル一覧っぽいものが表示された。
[ ツッコむ ]
以上、1 日分です。