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 の対応するトピックを参照してください。

最終更新日 :

関連ページ:

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

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

コンテキストアクション

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

正規表現のアシスタンス

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

ASP.NETMVC 固有の機能

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

言語による ReSharper: MSBuild-ReSharper

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

言語による ReSharper: Google Protocol Buffers(Protobuf)-ReSharper

ReSharper は、Google プロトコルバッファ(Protobuf)バージョン 2.x および 3.0 の.protoファイルで IDE サポートを提供します。.proto ファイルの ReSharper 機能を無効にするには、ReSharper オプション(Alt+R O)の環境 |