C# 可以语法突出显示内嵌SQL吗?

C# 可以语法突出显示内嵌SQL吗?,c#,visual-studio-2010,tsql,syntax-highlighting,C#,Visual Studio 2010,Tsql,Syntax Highlighting,我经常这样编写一些SQL: string sql = @" -- Multi-line SQL "; string sql = System.IO.File.ReadAllText("your path to sql file"); 在不讨论这种方法是好是坏的情况下,有人能告诉我在VisualStudio中突出显示SQL的最佳方法是什么吗 我可以想到的一种方法是创建单独的.sql文件,然后在此处将其作为字符串使用,以便在编辑原始sql时,Visual Studio识别出这是一个sql文

我经常这样编写一些SQL:

string sql = @"
   -- Multi-line SQL
";
string sql = System.IO.File.ReadAllText("your path to sql file");
在不讨论这种方法是好是坏的情况下,有人能告诉我在VisualStudio中突出显示SQL的最佳方法是什么吗

我可以想到的一种方法是创建单独的
.sql
文件,然后在此处将其作为字符串使用,以便在编辑原始sql时,Visual Studio识别出这是一个sql文件,并使用语法突出显示它


这似乎是一个解决简单问题的乏味方法。有更简单的解决方案吗?

它不会像其他人告诉你的那样起作用。VS如何知道哪些字符串是sql,哪些不是。如果您不想使用sql文件,您可以创建自己的文件扩展名,如“.sqlx”或其他扩展名,然后在VS属性中为此扩展名分配sql编辑器,以便VS知道对其应用正确的颜色编码

然后你可以这样做:

string sql = @"
   -- Multi-line SQL
";
string sql = System.IO.File.ReadAllText("your path to sql file");

它甚至可能更好,因为至少您可以将SQL代码分开。但是,我强烈建议您查看Entity Framework或Linq to SQL,因为它有一个Visual Studio扩展(针对VS 2010和2012)。它确实存在您想象中的问题,例如在不包含SQL的字符串中突出显示SQ:关键字。根据您所做的工作类型,您可能仍然希望在SQL中不使用高亮显示


我可以建议将VisualStudio中的SQL关键字颜色更改为普通字符串颜色的变体。这样,如果正确,突出显示会很有帮助,但是,在突出显示不包含SQL的字符串中的单词时,它不会分散注意力。

JetBrains刚刚发布了ReSharper 2016.2,它支持内联语法突出显示和intellisense,用于正则表达式和带有代码注释的html,如
/*language=html*/

我发现这是一个惊人的特性,我相信它可以很容易地扩展到支持SQL和几乎任何其他语言

我在这里添加了一个功能请求:


<>这不回答你的问题,但是我希望他们会考虑添加这样一个特性,因为内联SQL在代码中是很常见的(例如,用dpor工作)。您需要向解析器传授将随机字符串识别为SQL的技巧。