2013年2月11日月曜日

[MonoDevelop]Snippetsを使って記述を楽にする方法

Snippetsをご存知だろうか。
端的に言えば、Snippetsとは、何度も同じことを入力する場合、その作業が面倒なので短い単語で呼び出せるようにしちゃおう!ということ。
HashKeyの概念でとらえると分かりやすいかもしれない(というかまんまHashです)。

だが、正直にいうと僕はSnippetsという言葉を知らなかった。
しかし、Snippetsという言葉を知らなくても恩恵に授かっていたことに気づく。
多くのプログラマーなら恩恵を授かったことが有るはず。
最も基本的なもので言えば、if文やfor文、while文やclass構文などでも使用されており、恩恵を授かったことの無いプログラマーなどは居ないはずだ。

と、どうでもいい言い訳がましいことはさておいて、早速使ってみた。

今回はUnityScript上での例で、タッチイベントの処理が毎度毎度記述するのが面倒なのでCode Snippets化した。

UnityScript上でタッチイベントを取得する際、下記のように記述するだろう。


foreach (Touch item in Input.touches) {
 switch( item.phase ) {
 case TouchPhase.Began:
  break;
 case TouchPhase.Canceled:
  break;
 case TouchPhase.Ended:
  break;
 case TouchPhase.Moved:
  break;
 case TouchPhase.Stationary:
  break;
 }
}


このようなコードを毎回記述するのは面倒だろう。
そこで、Snippetsの出番。
まずは「MonoDevelopEditor」上の[Preference]を開く。




◆[TextEditor] -> [Code Templates]を開くと、各言語毎に設定されているテンプレートコードがあるのが分かる。
今回は「Unity C#」なので、「C#」にSnippetsを追加する。




◆[Add]ボタンを押すと、テンプレート作成画面になる。



[Shoutcut] : TemplateTextを呼び出す際に記述するコード
[Group] : どのテンプレートグループなのかを判別
[Description] : snippetsの説明文
[Mime] : どの言語で使用されるものかを判別

[Shoutcut]に「TouchTemp」と記述し、[Group]は「C#」、
[Description]には「template for touch event」、[Mime]に「text/x-csharp」を入力し、大きい空欄の[Template Text]にコードを記述する。
今回はタッチイベント用のコードを記述しておく。

すると、コード上で「TouchTemp」と記述した後に「tab」キーを押すと、先ほど[Template Text]に記述しておいたコードが呼ばれるようになる。

※Descriptionの説明が記述もきちんとある



確かにこれは……いいものだ!


0 件のコメント:

コメントを投稿