ReShaperでLiveTemplateを設定


前説

LivetTemplateのプロジェクトを編集していて、素のVisualStudioでは展開されるsnippetがReSharperを入れた環境でうまく動かないので、なんとかしたかった。

前提環境は、
- VisualStudio2019
- ReShaper2020.2
- Livet 3.2.3

ReShaper用のSnippet(LiveTemplate)を設定する

ReShaper側で新たに設定する。
まずメニューから、 拡張機能ReShaperToolsTemplatesExplorerを開く。

上部の殻ツールボタンから NewTemplateをクリック。

編集画面が後ろに表示されるので、元のテンプレートなどを見つつ適当に設定する。

Shortcut: lprop
Description: Create a Livet property
など

左側にsnippetのテンプレートを入力するタブが開いているはずなので、同様に入力。
おおむね互換(らしい)

private $type$ _$name$;

public $type$ $name$
{
get
{ return _$name$; }
set
{ $END$
if(_$name$ == value)
return; 
_$name$ = value; 
RaisePropertyChanged();
}
}

1つだけはまったのが、\$end\$
Microsoftのドキュメントによるとテンプレート展開後にカーソルを持ってくる場所らしい。

JetBrains IDEのテンプレートだと、大文字で \$END\$ なので、ここだけ修正する。

テンプレートを入力すると、$マークのついたパラメータの処遇を右側で聞かれるようになる。
今回型をあらわす \$type\$ がいるので、Choose Macroから↓を選択してみた。

とりあえず、上記設定などで lsprop[tab] の操作で、スニペット展開されるようになった。

雑に設定しているので、なにか足りないかもしれない。詳しくは公式ドキュメントをちゃんと読む。