2016年2月23日火曜日

サクラエディタをHSPエディタに改造する(その3 実行ボタン)

たてつづけにセルディアです。

前々回、前回と続いて、サクラエディタのHSP用設定改造です。

ボタン1つでコンパイルする


たいていの開発環境なら、ソースコードをつらつらと書いた後、F5かF9辺りを押せば一発でデバッグを開始できます。HSPの場合は適当なテキストエディタで書くと、コンパイルする際は若干の手間がかかるのですが、ここをサクラエディタの機能で一発でデバッグできるようにしましょう。

今回は、F5キーで編集中のHSPファイルのデバッグを実行するようにします。
(編集中のファイルは全て上書き保存されます)

(1) コンパイラ実行ファイルをダウンロードする

今回はHongKongさんのコンパイラ実行ファイルを利用します。
https://dev.onionsoft.net/seed/info.ax?id=134

ダウンロードしたら、中にある「hcl_comp.exe」を、HSPのインストールフォルダ(hsed3.exeが置いてあるフォルダ、標準では「C:\hsp34\」)に入れましょう。

(2) コンパイル用マクロを作成する

前回と同様、PPAマクロファイルを作成します。

---------------------------hsp.ppa ---------------------------
S_FileSaveAll();
Exec('C:\hsp34\hcl_comp.exe', S_GetFilename(), 0);
---------------------------ここまで---------------------------
(HSPインストールフォルダが違う場合は、ディレクトリを書き換えてください)

前回設定したマクロ一覧フォルダに保存します(下記)。

「共通設定」マクロタブ


(3) 作成したマクロを登録する

おなじみの手順です。

「共通設定」マクロタブ
① 適当にマクロ番号を選択する(今回は1番を選択)
② 名前に「HSP実行」、Fileに先ほど作成したファイル名(hsp.ppa)を入力する
③ 設定ボタンを押して反映する


(5) キーに割り当てる

これもおなじみの手順です。
今回は「F5」に割り当てます。

① 「キー割り当て」タブに移動する
② 「F5」を選択する


③ 種別から「外部マクロ」を選択する
④ 「タグファイル作成」を選択する
⑤ 「割付」ボタンを押す


以上で手順は完了です。

ちなみに、コンパイル時にエラーが発生したときは、画面に赤文字でエラー内容が表示されます。スペースキーでページ送りもできるので、エラー内容を把握しましょう。


想定より長くかかってしまいましたが、これで予定していた機能は終了です。

目標達成



無事、以下の機能を実装できました。
  • HSPのキーワードに色を付ける
  • 単語をダブルクリックすると同じ単語にハイライトをつける
    (F12で次を検索、Shift + F12で前に戻る)
  • 新規命令・関数、ラベルのリストを表示する
    (記述順に一覧表示、クリックするとジャンプ。コメント機能付き)
  • 新規命令・関数、ラベルの定義場所にジャンプする
    (Ctrl + F12でタグファイル作成、F12でジャンプ。Shift + F12で前に戻る)
    ※ 補完機能のおまけつき Ctrl + Space
  • ボタン1つでコンパイル&実行する
    (F5で実行、オートセーブ)
少しはHSPに特化して便利になったでしょうか。それでは、よいHSPライフを。

2016年2月22日月曜日

サクラエディタをHSPエディタに改造する(その2 ラベルなど一覧+タグジャンプ)

お待たせしました、セルディアです。

前回のサクラエディタHSP改造の続きです。

ラベル・命令・関数一覧を表示する


ソースコード内にあるラベル、命令や関数の一覧を表示できます。
また、そのラベルなどの名前をクリックすると、その行にスクロールしてカーソルを合わせてくれます。

(1) 以下の内容のルールファイルを適当なディレクトリに作成する

--------------------------HSP_temp.DL------------------------
;CommentChar=
#deffunc /// function
#defcfunc /// function
#modfunc /// function
#modcfunc /// function
*/ /// Except
* /// function
;comment /// function
---------------------------ここまで---------------------------

(今回はファイル名を「HSP_temp.DL」、ディレクトリを「C:\Program Files (x86)\sakura\keyword\」に作っています)

(2) 上のツールバーから「設定」→「タイプ別設定一覧」を選ぶ


(3) 前回の手順で作った「HSP」を選択し、「設定変更」を押す


(4) アウトライン解析方法から「ルールファイル」を選択し、(1)で作成したルールファイルを指定する。
  OKを押す


以上で手順は完了です。

ラベルなど一覧は、下の図のところをクリックするか、F11で出せます。


私の場合、こんなふうに右側にラベルなど一覧を出しています。
一覧中のラベルなどをクリックすると、その部分にジャンプできます。


さらに、ラベルなど一覧はファイルに記述されている順に表示されるのですが、一覧をさらにわかりやすくするために、コメント行を表示できるようにしました。
頭に「;comment」と付けた行が、ラベルなど一覧にも表示されます。
(完全に自分用機能なので、いらなければ無視してください…)



複数ファイルでもラベル・命令・関数の行に飛ぶ


プログラムの規模が大きくなってくると、処理に合わせて複数のファイルにプログラムを分けて記述する必要が出てくるかと思います。
その場合、上記のラベルなど一覧表示では、編集中のファイルの一覧しか出せないため、もっと便利にするために、簡単にラベルなどが定義されている場所に飛べるようにしましょう。

今回の手順で、ラベルなどにカーソルを合わせてF12キーを押すと、そのラベルなどが定義されている場所へジャンプできるようになります。同じディレクトリに置かれている他のHSPファイルにもジャンプすることができます。
Shift + F12キーでは、ジャンプする前の位置へ戻ることができます。

ただ、ラベルなどの定義場所にジャンプするためには、タグファイルが必要です。今回はタグファイルの作成キーをCtrl + F12キーに割り当てます。ソースコードを保存後、適宜タグファイルを作成する必要があります。

おまけで、サクラエディタの補完入力も使えるようにします。ラベル名などを入力中に、途中まで入力したところで補完入力キー(Ctrl + スペースキー)を押すと、残りの文字を自動で入力してくれます。複数候補がある場合は、一覧が出て十字キーなどで選択できます。

(1) PPAマクロを動かすためのDLLをダウンロードする

PPAのDLL配布サイト
http://ht-deko.com/junkbox.html#PPA

(サクラエディタのインストール場所に入れます。標準(64bit OS)の場合「C:\Program Files (x86)\sakura」フォルダ内です)

(2) ctagsをダウンロードする

CTAGS日本語対応版
http://hp.vector.co.jp/authors/VA025040/ctags/ctags_j.html

(サクラエディタのインストール場所「C:\Program Files (x86)\sakura」フォルダ内に置いた前提で進めます)

(3) 補完入力用の実行ファイルをダウンロードする

https://sites.google.com/site/seldiacotton/file/hokan.zip

(ctagsと同様、サクラエディタのインストール場所「C:\Program Files (x86)\sakura」フォルダ内に置いた前提で進めます)

(4) 以下の内容のファイルを作成して、サクラエディタのマクロフォルダ内に保存する

--------------------------maketag.ppa------------------------
var
  fileName : String; // 編集中のファイル名
  charPos : Integer; // 探索位置
  lengthOfName : Integer; // ファイル名の長さ
  charInName : String; // 比較用の1文字
  result : Integer; // 比較結果
  appPath : String; // 起動パス
  lengthOfPath : Integer; // 起動パスの長さ
  backSlashPos : Integer; // バックスラッシュの位置
begin
  fileName := S_GetFileName();
  lengthOfName := Length(fileName);
  backSlashPos := 0;
  // 後方から'\\'を探す
  for charPos := lengthOfName downto 0 do
    begin
      charInName := Copy(fileName, charPos, 1);
      result := CompareStr(charInName,'\');
      if result = 0 then
        begin
          // 見つかったら位置を覚えて抜ける
          backSlashPos := charPos;
          Break;
        end;
    end;
  // 起動パスを生成して起動
  lengthOfPath := backSlashPos;
  appPath := Copy(fileName, 0, lengthOfPath);
  Exec('C:\Program Files (x86)\sakura\ctags.exe', '-f "' + appPath + 'tags" --langdef=hspd --langmap=hspd:.hsp --regex-hspd="/^[ \t]*(\#deffunc[ \t]+|\#module[ \t]+|\#define[ \t]+|\#const[ \t]+|\#enum[ \t]+|\#defcfunc[ \t]+|\#modfunc[ \t]+|\#modcfunc[ \t]+|\*[ \t]*|\;[ \t]*tag[ \t]*)(global[ \t]+)?([a-zA-Z0-9_]+)/\3/" --excmd=number ' + appPath + '*.hsp' , True);
  Exec('C:\Program Files (x86)\sakura\hokan.exe', appPath + 'tags' , True);
end;
---------------------------ここまで---------------------------

※注意 サクラエディタのインストール場所が標準と違う場合は、「C:\Program Files (x86)\sakura」と書かれている部分をインストール場所に合わせてください。
 特に32bit OSの場合は「C:\Program Files\sakura」になっているはずなので必須です!

(前回の手順中で、マクロフォルダの設定をしています)


(5) 作成したマクロを登録する

「共通設定」マクロタブ
① 適当にマクロ番号を選択する(今回は3番を選択)
② 名前に「タグファイル作成」、Fileに先ほど作成したファイル名(maketag.ppa)を入力する
③ 設定ボタンを押して反映する


(5) キーに割り当てる

今回は「Ctrl + F12」に割り当てます。

① 「キー割り当て」タブに移動する
② 「Ctrl」チェックを付ける
③ 「Ctrl+12」を選択する


④ 種別から「外部マクロ」を選択する
⑤ 「タグファイル作成」を選択する
⑥ 「割付」ボタンを押す


(6) 補完入力の設定を行う

これが少し厄介で、補完入力用のファイルは編集中のファイルと同じ場所に作成されるのですが、設定では相対ディレクトリで指定することができません。
そのため、プロジェクトごとに補完入力用ファイルを切り替えねばなりません。

「タイプ別設定」支援タブ

単語ファイルに次のように入力する
<編集中のHSPファイルのディレクトリ>\hokan.txt

HSPの場合は「英大文字小文字を同一視」にチェックを付けていいかと思います


以上で設定は完了です。

残りの目標はまた次回へ。

2016年2月17日水曜日

サクラエディタをHSPエディタに改造する(その1 キーワード協調+単語ハイライト)

やはー、セルディアです。

久しぶりに、HSPについてお話しします。

テキストエディタ戦争


HSPにはデフォルトでかなり使いやすいスクリプトエディタがついています。
どのくらい便利かというと、以下の点が非常に便利です。

  • 各標準命令に色がつく
  • 使っている命令のヘルプがボタン一つ(F1)で見られる
  • ボタン一つ(F5)で実行できる

しかし、他のテキストエディタに慣れてしまうと、これだけでは物足りなくなります。特に、Visual StudioでC++、C#に触れてしまうと、高級ソファからパイプ椅子に格下げされたようで贅沢病になります。あれは贅沢です、一度味わったら逃れられない悪魔の誘惑ですよ…とはいえ、あれくらいしないと大規模プロジェクトではやってられないでしょう。

今回は、サクラエディタを使って、少しでもあの便利機能に近づけます。

最終目標



  • HSPのキーワードに色を付ける
  • 単語をダブルクリックすると同じ単語にハイライトをつける
  • 新規命令・関数、ラベルのリストを表示する
  • 新規命令・関数、ラベルの定義場所にジャンプする
  • ボタン1つでコンパイル&実行する
とても若干便利になります。
(画面はHSP3のデモ用サンプルプログラムですよ)

サクラエディタ導入時の注意


サクラエディタを使いたいときは、インストーラ版を素直に実行したほうが手っ取り早いです。


コンポーネントもAllにして、「KeyWordファイル」もチェックを付けましょう。

HSPのキーワードに色を付ける


色がついているだけでも、かなり視認性がよくなります。

(1)「設定」→「タイプ別設定一覧」を選択する

(2)追加を押す


(3)「設定変更」を押す


(4)「スクリーン」タブから設定の名前に「HSP」、ファイル拡張子に「as,hsp」を入力する


(5)「カラー」タブを選択して「共通設定」を押す


(6)「セット追加」を押す


(7)「HSP」と入力して「OK」を押す


(8)「インポート」を押す


(9)サクラエディタのインストールフォルダの「keyword」フォルダ内に「HSP.KWD」があるので開く


(10)協調キーワードが表示されるので、OKを押す


(11)強調キーワード1から「HSP」を選択する
   ついでに以下の項目も入力しておく
   コメントスタイル ブロック型 「/*」 ~ 「*/」
   行型「//」
   行型「;」

   最後に「OK」を押す


これで、HSPファイルを開いたときに、自動的にHSPのキーワードが色付けされるようになります。

単語をダブルクリックすると同じ単語にハイライトを付ける


こちらも非常に便利です。変数をダブルクリックして、どこで使ってるか、処理の中で何を代入してどう参照してるか一瞬でわかったり、など…。

実は追加効果で、ダブルクリックして単語をハイライトした後、F3キーで次の単語にカーソルを合わせることができます(つまり、次の同じ単語を検索しているわけです)。Shift+F3キーで、前の単語に戻れます。

(1)まず、以下の内容のファイル「highlight.mac」を適当なディレクトリに作成する

----------------highlight.mac-----------------
S_SelectWord(0);
S_SearchClearMark(0);
------------------ここまで-------------------

(2)「設定」→「共通設定」を選択する


(3)共通設定
 ① 「マクロ」タブを選ぶ
 ② マクロ一覧に、「highlight.mac」ファイルを置いたディレクトリを入力する
 ③ 適当に空いてるところ(今回は0番)を選択する
 ④ 名前に「ダブルクリックマクロ」、Fileに「highlight.mac」を入力する
 ⑤ 「設定」ボタンを押す


(4)共通設定
 ① 「キー割り当て」タブを選ぶ
 ② 種別から「外部マクロ」を選択する
 ③ キーから「ダブルクリック」を選択する
 ④ 機能から「ダブルクリックマクロ」を選択する
 ⑤ 「割付」を押す


これで設定完了です。

残りの目標は、また今度。