小ワザ/便利TOOL?|ソフト開発
JmEditor? for HSP3.0 †
JmEditor?用のHSP設定ファイルを作ってます。
既に誰か作っているものがあったら・・・その時はページ削除します;
なるべくhsp3.0のスクリプトエディタと同じような動作(強調)にしていきたいです。
完了(とりあえず完了も含む)は取り消し線で潰していきます。(くにさんの真似)
囲み文字に「/*」と「*/」でコメント色(設定事項に有り)
囲み文字に「{"」と「"}」で文字列色(設定事項に有り)
- hspedはマルチライン文字列(正式名?)内にコメントを書くとコメント強調されますが文字列として表示されます。
JmEditor?の場合でこのように指定した場合はしっかりと文字列強調されるのでこちらの動作の方が正しいということでこっちに。
文字列の引用符は「"」(設定事項に有り)
コメントの文字列は「;」(設定事項に有り)
予約語(予約キーワード一覧中のプリプロセッサ命令(pre|func)以外)
プリプロセッサはそれぞれを正規表現で・・・
- #(addition|c(func|md|omfunc|onst)|def(cfunc|func|ine)|e(lse|ndif|num|pack)|func|global|i(f|fdef|fndef|nclude)|mod(func|init|term|ule)|pac(k|kopt)|r(egcmd|untime)|u(ndef|secom|selib))
「//」コメントは正規表現で。
ラベル強調も正規表現(2005-12-13変更)
- ^\s*\*[@|a-zA-Z_]\w{0,59}$
- hspedとちょっと動作が違いますが誤入力防止を兼ねています。
- マニュアルではラベルの名前は半角59文字が限度とありますが60文字までOKのようです。
正規表現ですが「*」のみではラベルと認められない、「*1」などは認められない、「*a 5」などは認められない、「*LB@」などは認められない。
逆に「 *_label」は認められ、「*@」も認められるというルールからラベルとして認識可能なものだけを強調するようにしてみました。
ただし制限オーバーした際には有効な名前部分だけを強調したいところですが認識不可となってます。
ソースブラウザにラベルを列挙(2005-12-13変更)
- ^\s*\*([@|a-zA-Z_]\w{0,59})$
- 見出し抽出$1
- 一応設定ファイルをUPしますが、ユーザー設定は1ファイルにまとめられてしまってPHPとか入っていたりするので、設定ファイルを上書きするよりは手動で設定したほうが良さそうです。
上書きすると以前の設定が消えます。また、常に最新とは限りません。(おい)
- User2.ini
↑多分HSPのみのファイル、リネームして使って下さい。(User.iniに)
- 正規表現をまだ良く分かっていないのでおかしいところは指摘していただければと思います。 -- kz3
- hspの強調動作と完全に一致していません。比較検討するのが結構大変で・・・。
hspedではラベル列挙ダイアログはモーダルなので編集しながら使えませんし。
ソースブラウザにラベルを列挙するのはかなり強力だと思います。 -- kz3
- この他にJmEditor?からコンパイルを行えたりするとなお良し。 -- kz3
- コマンドラインで思い出したのが以前頂いたcHspComp?というコマンドラインからスクリプトのコンパイルを行うツール! -- kz3
- \s*\*(@|\w{1,59}$)のほうが簡単かも。
あと、JmEditor?ですが、強調の優先順位があるようで
- 1.予約語
- 2.コメント文字
- 3.正規表現の0番からn番の順番
の順位があるようです。これを利用して\s+\*(@|\w{1,59}$)を後の方に書けば
gosubなどの後のラベルも強調できるようになりました。でも普通のラベルの前にスペースを入れると副作用がでるのでやんないほうがいいかな? -- Charlotte
- 字数制限オーバーした際に有効部分だけを強調したいときはワザと認識しないのでしょうか
\s*\*(@|\w{1,59})で認識した方が何かと便利な気がする。今までのだとスペースを最後に入れると解除されるので
ラベルの後にコメントが入れれません。 -- Charlotte
- で、できた#(addition|c(func|md|omfunc|onst)|def(cfunc|func|ine)|e(lse|ndif|num|pack)|func|global|i(f|fdef|fndef|nclude)|mod(func|init|term|ule)|pac(k|kopt)|r(egcmd|untime)|u(ndef|secom|selib)) -- Charlotte