2012-06-13 14 views
8

はしばしば、私はこのようないくつかのSQL書き込み:誰かが何がこのSQLは、Visual内で強調表示されるように取得するための最良の方法である私に言うことができ、この方法が良いか悪いかという議論に入ることがなければインラインSQLの構文強調表示は可能ですか?

string sql = @" 
    -- Multi-line SQL 
"; 

をスタジオ?

別のファイルを作成して元のSQLを編集するときに、これがSQLファイルと構文であることをVisual Studioが認識するように、それをストリングとして使用することが考えられます。

これは、単純な問題を解決するための面倒なアプローチだと思われます。よりシンプルなソリューションはありますか?

+3

私はそこにいるとは思いません。パーサにランダムな文字列をSQLとして識別するトリックを教える必要があります。 – Oded

答えて

1

他の人があなたに伝えているようにはうまくいかないでしょう。 VSはどのような文字列がSQLであり、どの文字列ではないかをどのように知っていますか? sqlファイルを使用したくない場合は、 ".sqlx"などの独自のファイル拡張子を作成し、VSプロパティでこの拡張子のSQLエディタを割り当てることで、VSは正しいカラーコードを適用することができます。少なくともあなたが別のSQLコードを維持しますので、それも良いかもしれ

string sql = System.IO.File.ReadAllText("your path to sql file"); 

次に、あなたがこのような何かを行うことができます。しかし、Entity FrameworkやLinq-to-SQLを見ることを強くお勧めします。

5

これにはVisual Studio拡張機能があります(VS 2010および2012用)。 SQLを含まない文字列のSQ:キーワードを強調表示するなど、想像するような問題があります。作業の種類によっては、SQLで強調表示しない方が良いかもしれません。私がお勧めすることができます

http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b

ことの一つは、通常の文字列の色のバリエーションであることをVisual StudioでSQLキーワードの色を変えています。こうすることで、強調表示は正しいときに役立ちますが、実際にはSQLを含まない文字列内の単語を強調表示している場合は気を散らすことはありません。

3

JetBrainsは、正規表現の場合はインラインシンタックスハイライトとインテリセンス、/*language=html*/のコードコメントの場合はHTMLをサポートするReSharper 2016.2をリリースしました。

私は、SQLと他のほとんどの言語をサポートするために非常に簡単に拡張できるという素晴らしい機能があることがわかりました。

私はここで機能要求を追加しました:https://youtrack.jetbrains.com/issue/RSRP-460656

これは、あなたの質問に答えていませんが、私は、インラインSQLコードではかなり一般的であるように、彼らは、そのような機能を追加することを検討します願っています(つまり、 Dapperと協力して)。

関連する問題