【问题标题】:Is it possible to syntax-highlight in-line SQL?是否可以语法突出显示内联 SQL?
【发布时间】:2012-06-13 21:53:55
【问题描述】:

我经常这样写一些 SQL:

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

在不讨论这种方法是好是坏的情况下,谁能告诉我在 Visual Studio 中突出显示此 SQL 的最佳方法是什么?

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

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

【问题讨论】:

  • 我无法想象会有一个。您需要教解析器将随机字符串识别为 SQL 的技巧。

标签: c# visual-studio-2010 tsql syntax-highlighting


【解决方案1】:

JetBrains 刚刚发布了 ReSharper 2016.2,它支持内联语法高亮和智能感知,用于正则表达式和 html,代码 cmets 像 /*language=html*/

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

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

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

【讨论】:

    【解决方案2】:

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

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

    我可以推荐的一件事是将 Visual Studio 中的 SQL 关键字颜色更改为正常字符串颜色的变体。这样,高亮显示在正确时很有帮助,但在高亮显示字符串中实际上不包含 SQL 的单词时不会分散注意力。

    【讨论】:

      【解决方案3】:

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

      然后你可以这样做:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多