ReSharper 2019.2ヘルプ

言語インジェクション

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

ReSharperは、C#、JavaScript、およびTypeScriptの文字列で、次の埋め込み言語をサポートしています。

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

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

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

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

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

  • 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 availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not available

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

最終更新日: 2019年9月17日

関連事項

関連ページ:

コードインスペクションでのコード課題の検索

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

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

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

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

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

正規表現のアシスタンス

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

ASP.NET MVC特有の機能

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

言語によるReSharper: MSビルド

MSBuildは、アプリケーションを構築するために広く使用されているプラットフォームです。特定のXMLタグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharperを使用すると、より速く行うことができます。ReSharperオプション(Alt+R,,O)のページのMSBuildと...