ReSharper 2020.2ヘルプ

言語インジェクション

文字列リテラル(およびXMLのような言語のタグまたは属性)に正規表現やHTMLなどの他の形式言語が含まれている場合、ReSharperはコードインスペクションクイックフィックスコード補完コンテキスト・アクション、およびこの抜粋の中に、この言語に固有のその他の多くの機能があります。

ReSharperは、C#、JavaScript、およびTypeScript文字列リテラル内の次の言語をサポートしています。

ReSharperは、自動と手動の2種類の言語インジェクションを処理できます。

たとえば、<script></script> タグ内のJavaScriptやHTMLの style 属性のCSSなど、別の言語ファイルの言語抜粋を明確に検出できる場合があります。これらの場合、ReSharperは埋め込み言語を自動的に検出します。

必要に応じて、ReSharperオプションのコード編集 | 言語インジェクションページで、特定の場合に自動言語インジェクションを無効にすることができます。

文字列リテラル内の正式な言語が自動的に検出されない場合、次のいずれかの方法でリテラルに特定の言語を含むものとして手動でマークすることができます。

  • コンテキストアクションを使用します。実際にはReSharperに文字列に対応するシンボル範囲をマークし、この範囲を内部データベースに保存し、格納ファイルの変更に合わせて追跡します。この方法は非常に迅速かつ簡単ですが、VCSマージなどの外部ファイルの変更後に範囲が失われる可能性があり、このようにマークされたインジェクションはローカルでのみ追跡されます。

    ReSharper: Analyzing CSS code inside a C# string literal

  • JetBrains.Annotations[RegexPatternAttribute] を使用して、正規表現を受け入れるメソッドパラメータ、プロパティ、およびフィールドをマークします。これは正規表現に推奨される方法です。

  • 文字列リテラルの前にコメント /*language=javascript|html|regexp|jsregexp|json|css|xml*/ を置きます。確かに、これらのコメントには入力が必要であり、コードを汚染していると考えることもできます。ただし、コードを読み取るすべての人にインテンションが明確になり、コードが失われることはなく、ReSharperでコードを開いたユーザーはマークされた文字列で同じ機能を利用できます。
    ちなみに、コメントの形式はJetBrains RiderおよびIntelliJプラットフォームベースのIDE(英語)と互換性があります。

    Language injections in C# strings with comments
    コメントに prefix=postfix= パラメータを使用することもできます。例:文字列にCSSプロパティのリストのみが含まれている場合、その前に //language=css prefix=body{ postfix=}というコメントを追加できます。これによりReSharperは文字列を有効なCSSとして解決します。

この機能は、次の言語とテクノロジーでサポートされています。

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is not available in Visual Basic .NETFeature is not available in C++Feature is not available in HTMLFeature is not available in ASP.NETFeature is not available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON

C#の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語によるReSharperの対応するトピックを参照してください。

最終更新日: 2020年8月21日

関連ページ:

コードインスペクションでコードの課題を見つける

ReSharperの静的コード解析はコード・インスペクションと呼ばれ、サポートされているすべての言語で2300を超える個別コードインスペクションをコードに適用することによって実行されます。コードの課題はいくつかの方法で見つけることができます:ReSharperは、エディターで開かれたすべてのファイル...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する:クイックフィックスは、ハイライトされた...

コンテキスト・アクション

コンテキストアクションのいくつかの例をReSharperWebサイトでチェックすることができます。コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変...

正規表現のアシスタンス

ReSharperは、.NETの正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。ReSharperは、新しい式を入力する際に、自動補完と検証を支援します。文字列リテラルの正規表現:デフォルトでは、ReSharperは、正規表現クラスのメ...

ASP.NET MVC特有の機能

ReSharperには、一般的なASP.NET機能に加えて、ASP.NET MVCでの作業をより簡単にサポートする特殊機能があります。構文の強調表示:ASP.NET MVCメソッド呼び出しとパラメーターの特別な構文の強調表示:コード補完:文字列リテラルでアクションとコントローラーを参照するための専用...

言語によるReSharper: MSビルド

MSBuildは、アプリケーションを構築するために広く使用されているプラットフォームです。特定のXMLタグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharperを使用すると、より速く行うことができます。ビルドスクリプトファイルでReSharper機能を無効にするには、ReSh...