テンプレートの保管
ReSharper のコードテンプレートに関する興味深い点の 1 つは、分散ストレージです。コードテンプレートは、社内組織の詳細を十分に理解していなくても、使用して管理するのに優秀に動作します。ただし、テンプレートの編集や共有に問題が発生したり、複雑な使用シナリオが発生した場合は、これらの詳細を調べる必要があります。
定義済みのテンプレート
すべての事前定義テンプレートは ReSharper インストールに保管されています。事前定義されたテンプレートの削除を含むすべての必要な変更は設定レイヤーに保存されます。
どのように動作するかをよりよく理解します。次の図に示すように、定義済みのテンプレートをボディ、説明、スコープの 3 つのフィールドに単純化しましょう。そして、レイヤー 1 でテンプレートのスコープを編集した後、レイヤー 2 でテンプレートの説明を、次にレイヤー 3 でテンプレートのスコープを編集したとします。

3 つのレイヤーがすべて適用されたときに得られる変更されたテンプレートは、元の定義済みテンプレートのボディ、レイヤー 2 の説明、レイヤー 3 のスコープを基礎レイヤー 1 よりも優先させます。
コードテンプレートは GUID によって内部的に識別され、すべてのフィールドを編集可能にします。事前定義されたテンプレートは、すべての ReSharper インストールで同じ GUID を持ちます。あらかじめ定義されたテンプレートの変更をエクスポートすると、他の ReSharper ユーザーはそれをインポートする際に問題ありません。
定義済みのテンプレートに対するすべての変更が設定レイヤーに保存されるため、変更が含まれているレイヤーをクリアすることで、これらのテンプレートのデフォルト状態にいつでも戻ることができます。あらかじめ定義されたテンプレートを削除しても、ReSharper はそれを対応する設定レイヤーで削除済みとしてマークします。このレイヤーをクリアすると、削除されたテンプレートが復元されます。
設定レイヤーをクリアするには、メインメニューで リセットを選択し、PatternsAndTemplates 項目にチェックを入れてリセットをクリックします。
を選択し、レイヤーを右クリックしてユーザー定義テンプレート
定義済みテンプレートとは異なり、各ユーザー定義テンプレートはいくつかの設定レイヤーに保存されます。テンプレートが定義されているレイヤーでそのようなテンプレートを編集すると、編集されたフィールドが変更されます。ただし、別のレイヤーでユーザー定義のテンプレートを編集する場合、変更は事前定義されたテンプレートの場合と同じようにこのレイヤーに保存されます。
次のユーザー定義テンプレートの単純化モデルでは、レイヤー 2 で作成されたテンプレートが表示され、そのレイヤーの記述が同じレイヤーで変更され、最後にそのスコープがレイヤー 3 で編集されます。

ユーザーインターフェース
テンプレートエクスプローラーウィンドウでは、テンプレートの格納を制御できます。層セレクタを使用して設定レイヤーを選択し、このレイヤーに保存されるユーザ定義テンプレートを確認し、必要に応じて変更します。層セレクタに表示されるレイヤーの順序は、レイヤーが互いにオーバーライドする順序に対応します(上記の図を参照)。

選択したレイヤーに他のテンプレートの変更のみが含まれている場合、そのレイヤーは表示されません。ただし、このレイヤーにあらかじめ定義されたテンプレートが変更されている場合は、これらの変更がどのように適用されるかを確認することができます。これを行うには、フィルターテンプレート をクリックし、定義済みのテンプレートを表示するを選択します。
特定のレイヤーに新しいテンプレートを作成するには、層セレクターでこのレイヤーを選択し、新規テンプレート をクリックします。
スマートレイヤーは次のように動作します。
新しいテンプレートを作成すると、「このコンピューター」のレイヤーに保存されます。
「このコンピューター」レイヤーに保存されているテンプレートを変更すると、このレイヤーに変更内容が保存されます。
他のレイヤーに保存されたテンプレートを変更すると、その変更は 'Solution personal' レイヤーに保存されます。
事前定義されたテンプレートを変更すると、変更は「このコンピューター」レイヤーに保存されます。
テンプレートストレージのメカニズムは、最初はトリッキーに思えるかもしれませんが、ソリューションごとに適切なテンプレートセットを用意し、チームとテンプレートを共有し、テンプレートをインポートおよびエクスポートすることができます。これがどのように役立つかを説明するための例をいくつか示します。
いくつかのカスタムファイルタイプに適用できるように、定義済みテンプレートの範囲を変更しました。その後、ReSharper の新しいバージョンでは、テンプレート本体が更新されました。この新しいバージョンをインストールした後、更新されたボディを手に入れると同時に修正されたスコープを保持します。
チームリーダーはカスタムライブテンプレートを作成し、それをチームと共有しました。テンプレートが好きでそれを使用しますが、それのための他の近道を持っていることを好みます。問題ない。テンプレートのショートカットを編集してパーソナルソリューション設定レイヤーに変更を保存すると、ソリューションチーム共有レイヤーが上書きされます。あなたの個人的な近道を持つことになり、チームは何の変化も見ないでしょう。そしてもちろん、もしテンプレートの本体やスコープが更新されれば、すべての更新を受けるでしょう。
関連ページ:

ソーステンプレート
従来、テンプレートまたはスニペットは、ソースコードの外部で保存および管理されていました。通常、テンプレートは汎用定型コードをすばやく作成するのに役立つため、これは理にかなっています。これらの目的のために、ReSharper は多くの事前定義されたライブテンプレート、サラウンドテンプレート、およびファイルテンプレートを提供します。これらのタイプの独自のテンプレートを作成することもできます。ただし、現在のプロジェクトまたはソリューションにのみ関連する繰り返し可能なコードを生成したい場合があります。R...

定義済みテンプレートのリスト
このセクションでは、事前定義済みのすべてのコードテンプレートを一覧表示します。事前定義済みのテンプレートは、C#、VB.NET、ASP.NET、XML、HTML、Razor、CSS、JavaScript、TypeScript、Resx コードの最も一般的なケースを網羅しています。以下のセクションでは、定義済みのテンプレートの説明はタイプと言語によってソートされています。Predefined live templates、Predefined surround templates、Predefin...

ReSharper 設定の管理と共有
ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...

テンプレートエクスプローラーウィンドウ
テンプレートエクスプローラーウィンドウには、すべてのコードテンプレートが一覧表示され、作成、編集およびコードテンプレートの管理に必要なコントロールが提供されます。このウィンドウには、3 種類の ReSharper テンプレートを管理するための 3 つのタブがあります。ライブテンプレート:このタブはライブテンプレートを管理するために使用されます。さまざまな言語で利用可能なテンプレートを参照できます。左側にはテンプレートスコープとユーザーカテゴリがあり、右側には選択したスコープとカテゴリでフィルター...

ライブ / 囲みテンプレートを作成する
ライブ / 囲みテンプレートは、既存のファイルにコードを生成したり、(テンプレート本体にパラメーターがある場合)ステートメントなどのテンプレートコードでコードフラグメントを囲むために使用できます。各ライブテンプレートは、ショートカット(などの短い文字列)によって識別されます。この文字列をエディターに直接入力して、テンプレートを呼び出すことができます。ライブ / 囲みテンプレートは、単体テスト用のクラス、DTO、スケルトンの作成など、さまざまな用途に使用できます。ライブ / 囲みテンプレートの本体...

テンプレートを共有する
コードテンプレートを共有する簡単な方法は、ファイルにエクスポートしてから、それらのファイルを他の開発者と共有することです。他の開発者は、テンプレートをインポートして使用することができます。チームメンバーとテンプレートを共有するもう 1 つの方法は、ReSharper がコードテンプレートを格納するために使用する設定レイヤーのメカニズムを使用することです。同じ共有ソリューションに取り組む他の開発者がテンプレートを利用できるようにするには、チーム共有設定レイヤーで新しいコードテンプレートを作成するか...