我经常写一些这样的SQL:
string sql = @"
-- Multi-line SQL
";
在不讨论这种方法是好是坏的情况下,有人可以告诉我在 Visual Studio 中突出显示此 SQL 的最佳方法是什么?
我能想到的一种方法是创建单独的.sql
文件,然后在此处将其作为字符串使用,以便在编辑原始 SQL 时,Visual Studio 识别出这是一个 SQL 文件并对其进行语法高亮显示。
这似乎是解决一个简单问题的乏味方法。有没有更简单的解决方案?
我经常写一些这样的SQL:
string sql = @"
-- Multi-line SQL
";
在不讨论这种方法是好是坏的情况下,有人可以告诉我在 Visual Studio 中突出显示此 SQL 的最佳方法是什么?
我能想到的一种方法是创建单独的.sql
文件,然后在此处将其作为字符串使用,以便在编辑原始 SQL 时,Visual Studio 识别出这是一个 SQL 文件并对其进行语法高亮显示。
这似乎是解决一个简单问题的乏味方法。有没有更简单的解决方案?
JetBrains 刚刚发布了 ReSharper 2016.2,它支持内联语法高亮和智能感知,用于正则表达式和 html,代码注释如/*language=html*/
.
我发现这是一个了不起的功能,(我相信)可以很容易地扩展它以支持 SQL 和几乎任何其他语言。
我在这里添加了一个功能请求:https ://youtrack.jetbrains.com/issue/RSRP-460656
这不能回答您的问题,但我希望他们会考虑添加这样的功能,因为内联 SQL 在代码中很常见(即使用 Dapper)。
为此有一个 Visual Studio 扩展(适用于 VS 2010 和 2012)。它确实有您想象的问题,例如突出显示 SQ:不包含 SQL 的字符串中的关键字。根据您所做的工作类型,您可能仍然更喜欢在 SQL 中不使用高亮显示。
http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b
我可以推荐的一件事是将 Visual Studio 中的 SQL 关键字颜色更改为正常字符串颜色的变体。这样,突出显示在正确时很有帮助,但在突出显示实际上不包含 SQL 的字符串中的单词的情况下不会分散注意力。
它不会像其他人告诉你的那样起作用。VS 如何知道哪些字符串是 sql,哪些不是。如果您不想使用 sql 文件,您可以创建自己的文件扩展名,如“.sqlx”或其他东西,然后在 VS 属性中为此扩展名分配 SQL 编辑器,以便 VS 知道对其应用正确的颜色编码。
然后你可以做这样的事情:
string sql = System.IO.File.ReadAllText("your path to sql file");
它甚至可能会更好,因为至少您可以将 SQL 代码分开。但是,我强烈建议您查看 Entity Framework 或 Linq-to-SQL