ReSharper 2019.1ヘルプ

言語インジェクション

If a string literal (as well as a tag or an attribute in an XML-like language) contains some other formal language, such as regular expression, HTML, etc., ReSharper can provide code inspection, クイックフィックス , code completion, context actions, and many other features specific to this language right inside this excerpt.

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

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

別の言語ファイルの言語抜粋が明白に検出される場合があります。HTMLの style 属性の <script></script> タグまたはCSS内のJavaScript。このような場合、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.NET

Language: C++

Language: HTML

Language: ASP.NET

Language: Razor

Language: JavaScript

Language: TypeScript

Language: CSS

Language: XML

Language: XAML

Language: Resx

Language: Build Scripts

Language: Protobuf

Language: JSON

Feature is available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

Feature is available

Feature is available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

Feature is not available

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

最終更新日: 2019年5月14日

関連事項

関連ページ:

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

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

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

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

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

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

正規表現のアシスタンス

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

ASP.NET MVC特有の機能

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

言語別ReSharper: MSビルド

MSBuildは、アプリケーションを構築するために広く使用されているプラットフォームです。特定のXMLタグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharperを使用すると、より速く行うことができます。必要に応じて、ReSharperオプションの環境 | 製品&特徴ペ...