環境
JetBrains Rider 2018.1
Windows 10
LiveTemplateについて
RiderにはLiveTemplateと呼ばれるテキストの自動補完機能があります。
例えば、sfieldと入力したら[SerializeField]と入力させるといった自動補完をユーザーが自分で作成することができます。
他にも、変数と関数をまとめて入力するなどといったことができます。 (便利!
今回はこのLiveTemplateの作り方を解説していきたいと思います。
1. LiveTemplateの編集画面を開く
左側のリストの Editor > LiveTemplateを選択してLiveTemplate編集画面を開きます。
2. グループの作成
右側にあるプラスアイコンをクリックしてグループを作成します。
3. Live Templateの作成
右側にあるプラスアイコンをクリックしてLive Templateを選択します。
4. LiveTemplateを編集してみる
設定すべき項目
LiveTemplateで指定する項目は主に以下の3つとなります。
- Abbreviation(どのようなキーボード入力で補完を行うか)
- Template Text(自動入力させる文字列)
- Context(どんなファイルで補完を行うか)
編集例: [SerializeField]
例えばAbbreviationへsfield、TemplateTextへ[SerializeField]を設定すると
コードエディタでsfieldと入力するだけで[SerializeField]が入力されます。
Contextにはどのようなファイルで補完を行うかを設定しておきます。
デフォルトではContextが未設定になっており、
Contextが未設定の場合は自動補完が利かないので注意が必要です。
AbbreviationとTemplateTextとContextの3つを設定すれば、LiveTemplateは動くようになります。
# おまけ: Template Textで変数を使う **$**を使うことで、変数を作ることもできます。
カーソルのジャンプ移動はTabキーで行います。
変数エディット
定義した変数はウィンドウ右側にある"Edit Variables"から編集することができます。
変数のデフォルト値・命名規則などが設定できるようです
##例: SubjectとGet○○AsObservable()をまとめて入力できるようにしてみる
UniRxを使っていて以下のようなコードを書くことがよくありますが、LiveTemplateを使ってまとめて入力できるようにしてみます。
private Subject<Unit> _hogeSubject = new Subject<Unit>();
public IObservable<Unit> GetHogeAsObservable()
{
return _hogeSubject;
}
private Subject<$Type$> _$Name$Subject = new Subject<$Type$>();
public IObservable<$Type$> Get$Name2$AsObservable()
{
return _$Name$Subject;
}
やっていることとしては、
・変数Typeのデフォルト値を"Unit"に
・変数Nameのデフォルト値を"name"に
・変数Name2には変数Nameの入力内容をcapitalize(最初の一文字を大文字にする)したものを反映
・変数Name2の入力はスキップする
というルールを定義しています。
Expressionで使用できる関数の一覧は下記URLにまとまっています。 https://www.jetbrains.com/help/rider/2018.1/Edit_Template_Variables_Dialog.html#predefined_functions
便利なショートカット(Windows)
Ctrl + E, L
LiveTemplateの候補一覧を表示
Ctrl + Alt + S
設定画面を開く
#参考URL
Live Templateを使おう!
https://qiita.com/Vexus2/items/cc35757f98ef95871c5f
Live Templates
https://www.jetbrains.com/help/rider/Settings_Live_Templates.html
Creating Source Code Using Live Templates
https://www.jetbrains.com/help/rider/Templates__Applying_Templates__Creating_Source_Code_Using_Live_Templates.html