是否可以语法突出显示内联SQL?

Leg*_*end 8 c# t-sql syntax-highlighting visual-studio-2010

我经常写一些像这样的SQL:

string sql = @"
   -- Multi-line SQL
";
Run Code Online (Sandbox Code Playgroud)

如果没有讨论这种方法是好还是坏,有人可以告诉我在Visual Studio中突出显示这个SQL的最佳方法是什么?

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

这似乎是解决一个简单问题的繁琐方法.有更简单的解决方案吗?

Sie*_*ers 8

JetBrains刚刚发布了ReSharper 2016.2,它支持用于正则表达式的内联语法高亮和智能感知以及带有代码注释的html /*language=html*/.

我发现这是一个了不起的功能,我相信它可以很容易地扩展到支持SQL和几乎任何其他语言.

我在这里添加了一个功能请求:https://youtrack.jetbrains.com/issue/RSRP-460656

这不能回答你的问题,但我希望他们会考虑添加这样的功能,因为内联SQL在代码中很常见(即使用Dapper).


Ada*_*ton 6

有一个Visual Studio扩展(适用于VS 2010和2012).它确实存在您可能想到的问题,例如在不包含SQL的字符串中突出显示SQ:关键字.根据您所做的工作类型,您可能仍然希望这不会在SQL中突出显示.

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

我可以推荐的一件事是将Visual Studio中的SQL关键字颜色更改为普通字符串颜色的变体.这样,突出显示在正确时是有用的,但是在突出显示实际上不包含SQL的字符串中的单词的情况下不会分散注意力.


fen*_*222 0

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

然后你可以做这样的事情:

string sql = System.IO.File.ReadAllText("your path to sql file");
Run Code Online (Sandbox Code Playgroud)

它甚至可能更好,因为至少您可以将 SQL 代码分开。但是,我强烈建议您查看 Entity Framework 或 Linq-to-SQL