ReSharper 2019.3ヘルプ

テンプレートの保存

ReSharperのコードテンプレートに関する興味深い点の1つは、分散ストレージです。コードテンプレートは、社内組織の詳細を十分に理解していなくても、使用して管理するのに優秀に動作します。ただし、テンプレートの編集や共有に問題が発生したり、複雑な使用シナリオが発生した場合は、これらの詳細を調べる必要があります。

定義済みのテンプレート

すべての事前定義テンプレートはReSharperインストールに保管されています。事前定義されたテンプレートの削除を含むすべての必要な変更は設定レイヤーに保存されます。

どのように動作するかをよりよく理解します。次の図に示すように、定義済みのテンプレートをボディ、説明、およびスコープの3つのフィールドに単純化しましょう。そして、レイヤー1でテンプレートのスコープを編集した後、レイヤー2でテンプレートの説明を、次にレイヤー3でテンプレートのスコープを編集したとします。

Simplified view of a predefined template

3つのレイヤーがすべて適用されたときに得られる変更されたテンプレートは、元の定義済みテンプレートのボディ、レイヤー2の説明、およびレイヤー3のスコープを基礎レイヤー1よりも優先させます。

コードテンプレートはGUIDによって内部的に識別され、すべてのフィールドを編集可能にします。事前定義されたテンプレートは、すべてのReSharperインストールで同じGUIDを持ちます。あらかじめ定義されたテンプレートの変更をエクスポートすると、他のReSharperユーザーはそれをインポートする際に問題ありません。

定義済みのテンプレートに対するすべての変更が設定レイヤーに保存されるため、変更が含まれているレイヤーをクリアすることで、これらのテンプレートのデフォルト状態にいつでも戻ることができます。あらかじめ定義されたテンプレートを削除しても、ReSharperはそれを対応する設定レイヤーで削除済みとしてマークします。このレイヤーをクリアすると、削除されたテンプレートが復元されます。

設定レイヤーをクリアするには、メインメニューでReSharper | オプションの管理を選択し、レイヤーを右クリックしてリセットを選択し、PatternsAndTemplates項目にチェックマークを付けてリセットをクリックします。

ユーザー定義テンプレート

事前定義テンプレートとは異なり、各ユーザー定義テンプレートは設定レイヤーに保存されます。テンプレートが定義されているレイヤーでそのようなテンプレートを編集すると、編集されたフィールドが変更されます。ただし、別のレイヤーでユーザー定義のテンプレートを編集した場合、その変更は定義済みのテンプレートと同じようにこのレイヤーに保存されます。

次のユーザー定義テンプレートの単純化モデルでは、レイヤー2で作成されたテンプレートが表示され、そのレイヤーの記述が同じレイヤーで変更され、最後にそのスコープがレイヤー3で編集されます。

Simplified view of a user-defined template

ユーザー・インターフェース

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

Selecting settings layer in Template Explorer

選択したレイヤーに他のテンプレートの変更のみが含まれている場合、そのレイヤーは表示されません。ただし、このレイヤーにあらかじめ定義されたテンプレートが変更されている場合は、これらの変更がどのように適用されるかを確認することができます。これを行うには、フィルタテンプレート ThemedIcon Filter Screen Gray をクリックし、定義済みのテンプレートを表示するを選択します。

特定のレイヤーに新しいテンプレートを作成するには、セレクターでこのレイヤーを選択して新規テンプレート ThemedIcon AddLiveTemplate Screen Gray をクリックします。

スマートレイヤーは次のように動作します。

  • 新しいテンプレートを作成すると、「このコンピューター」のレイヤーに保存されます。

  • 「このコンピューター」レイヤーに保存されているテンプレートを変更すると、このレイヤーに変更内容が保存されます。

  • 他のレイヤーに保存されたテンプレートを変更すると、その変更は 'Solution personal'レイヤーに保存されます。

  • 定義済みのテンプレートを変更すると、変更内容は「このコンピューター」のレイヤーに保存されます。

テンプレート保存のメカニズムは、最初はややこしいかもしれませんが、各ソリューションに適したテンプレートのセットを作成したり、チームとテンプレートを共有したり、テンプレートインポートおよびエクスポートしたりするのに非常に手間がかかりません。これがどのように役立つかを説明するための例です。

  • いくつかのカスタムファイルタイプに適用できるように、定義済みテンプレートの範囲を変更しました。その後、ReSharperの新しいバージョンでは、テンプレート本体が更新されました。この新しいバージョンをインストールした後、更新されたボディを手に入れると同時に修正されたスコープを保持します。

  • チームリーダーはカスタムライブテンプレートを作成し、それをチームと共有しました。テンプレートが好きでそれを使用しますが、それのための他の近道を持っていることを好みます。問題ない。テンプレートのショートカットを編集してパーソナルソリューション設定レイヤーに変更を保存すると、ソリューションチーム共有レイヤーが上書きされます。あなたの個人的な近道を持つことになり、チームは何の変化も見ないでしょう。そしてもちろん、もしテンプレートの本体やスコープが更新されれば、すべての更新を受けるでしょう。

最終更新日: 2019年12月12日

関連ページ:

ソース・テンプレート

伝統的に、テンプレートやスニペットはあなたのソースコードの外で保存され管理されています。通常テンプレートを使用すると、普遍的な定型コードをすばやく作成できるため、これは理にかなっています。これらの目的のために、ReSharperは多くの定義済みライブテンプレート、サラウンドテンプレート、ファイルテン...

定義済みのテンプレート

このセクションでは、事前定義済みのすべてのコードテンプレートを一覧表示します。事前定義済みのテンプレートは、C#、VB.NET、ASP.NET、XML、HTML、Razor、CSS、JavaScript、TypeScript、およびResxコードの最も一般的なケースを網羅しています。以下のセクション...

ReSharper設定の管理と共有

ReSharperは、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例:記号のアイ...

テンプレートエクスプローラーウィンドウ

テンプレートエクスプローラーウィンドウにはすべてのコード・テンプレートが一覧表示され、作成、編集およびコードテンプレートの管理に必要なコントロールが提供されます。このページでは、テンプレートエクスプローラーウィンドウのユーザーコントロールについてのみ説明しています。定義済みのコードテンプレートの詳細...

ライブ/サラウンドテンプレートを作成する

ライブ/サラウンドテンプレートは、既存のファイルにコードを生成するために使用できます(テンプレート本文にパラメーターがある場合)。ステートメントなど、テンプレートコードでコードフラグメントを囲むために使用できます。各ライブテンプレートは、ショートカット(foreachなどの短い文字列)で識別され、エ...

テンプレートを共有する

コードテンプレートを共有する簡単な方法は、ファイルにエクスポートしてから、それらのファイルを他の開発者と共有することです。他の開発者は、テンプレートをインポートして使用することができます。チームメンバーとテンプレートを共有するもう1つの方法は、ReSharperがコードテンプレートを格納するために使...