Sublime Text:如何更正 SQL 服务器语法

Sublime Text: how to correct SQL Server syntax

我是 Sublime Text(第 3 版)的新手,在获得正确的 SQL 语法高亮显示方面遇到困难。

每当我查看 SQL 查询时,ST 都会将“#”视为注释。 例如,此处 # 以外的所有内容都会变灰:

INSERT INTO #TEST (A,B,C,D)
VALUES ('a','b','c','d')

我想更正这个问题,所以我四处寻找答案 几周 但其中 none 有效...

我首先在 C:\Program Files\Sublime Text 3\Packages 中查找文件 SQL.sublime-package.

我在评论区找到这段文字:

- match: "#"
  scope: punctuation.definition.comment.sql
  push:
   - meta_scope: comment.line.number-sign.sql
    - match: \n
      pop: true

所以我试着编辑它:

Error loading syntax file "Packages/SQL/SQL.sublime-syntax": Unable to read Packages/SQL/SQL.sublime-syntax

您是否有在 Sublime Text 3 中获得正确 SQL 语法突出显示的解决方案?

非常感谢

你走在正确的轨道上;你试过的应该对你有用。如果你得到一个错误提示 Sublime 无法加载语法,最可能的原因是你删除了太多或者以其他一些微妙的方式改变了文件。 sublime-syntax 文件是 YAML,因此它们对缩进等内容很敏感。

另请注意,直接在 Packages 文件夹中执行任何操作都是一个坏主意;修改 sublime-package 文件在短期内有效,但通过删除和替换它们来升级它们。因此,除非您是第一个创建该文件的人,否则直接修改内容是您的更改会在您最不期望的某个时间点被毫不客气地删除的秘诀。

进行以下更改对我有用。这使用 OverrideAudit 包进行更改(免责声明:我是包作者)。这将使您可以轻松地以安全的方式进行更改,并让您知道底层包是否已升级。

  1. 安装OverrideAudit
  2. 从命令面板,select OverrideAudit: Create Override
  3. Select SQL 包,然后 SQL.sublime-syntax 文件
  4. 使用查找面板搜索 comments: 以查看包含表示评论的所有匹配模式的上下文。这应该在第 128 行左右,具体取决于您使用的 Sublime 版本
  comments:
    - match: "--"
      scope: punctuation.definition.comment.sql
      push:
        - meta_scope: comment.line.double-dash.sql
        - match: \n
          pop: true
    - match: "#"
      scope: punctuation.definition.comment.sql
      push:
        - meta_scope: comment.line.number-sign.sql
        - match: \n
          pop: true
    - match: /\*
      scope: punctuation.definition.comment.sql
      push:
        - meta_scope: comment.block.c
        - match: \*/
          pop: true
  1. 删除只是匹配你不想要的评论风格的匹配规则;确保您没有修改之前或之后的任何其他行或更改缩进。完成后结果应如下所示:
  comments:
    - match: "--"
      scope: punctuation.definition.comment.sql
      push:
        - meta_scope: comment.line.double-dash.sql
        - match: \n
          pop: true
    - match: /\*
      scope: punctuation.definition.comment.sql
      push:
        - meta_scope: comment.block.c
        - match: \*/
          pop: true
  1. 保存语法文件。

保存文件后,更改会立即生效。如果你用 View > Show Console 检查 Sublime 控制台,你应该看到一行 generating syntax summary,这表明 Sublime 已经看到并重新加载了语法。如果在此过程中出现错误,将在此处显示。

执行这些步骤后,您的示例文本呈现如下(使用 Adaptive 主题和 Monokai 配色方案:

如果您之前修改过实际的 sublime-package 文件,这可能不起作用。在这种情况下,您可能需要重新安装 Sublime 才能取回原始文件;这样做不会删除您的设置。或者,您可以从 Sublime 网站下载 Windows 便携式版本(即使您没有使用 windows)并从那里获取原始包以替换您修改的包。

最佳解决方案:

不删除: - 匹配:“#”(对于 tmp table) ...

但只插入 space: - 匹配:“#”(用于注释 MySQL,...)