Sublime Text: как исправить синтаксис SQL Server - PullRequest
1 голос
/ 23 октября 2019

Я новичок в Sublime Text (версия 3) и испытываю трудности с правильным выделением синтаксиса SQL.

Всякий раз, когда я смотрю на запросы SQL, ST рассматривает "#" как комментарий. Например, здесь все, кроме #, становится серым:

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

Я хотел бы исправить это, поэтому я искал ответы в течение нескольких недель , но ни один из них не работает ...

Я начал с поиска в 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

Поэтому я попыталсячтобы отредактировать его:

  • Удаление текстового блока приводит к ошибке Sublime Text:

Ошибка загрузки файла синтаксиса "Packages / SQL / SQL.sublime-syntax": Невозможно прочитать пакеты / SQL / SQL.sublime-синтаксис

  • Изменение знака # другим способом (например," - "): без эффекта

Есть ли у вас решение для правильной подсветки синтаксиса SQL в Sublime Text 3?

Большое спасибо

1 Ответ

3 голосов
/ 23 октября 2019

Вы на правильном пути;То, что вы пытались, должно работать на вас. Если вы получаете сообщение об ошибке, указывающее, что Sublime не может загрузить синтаксис, наиболее вероятной причиной является то, что вы удалили слишком много или изменили файл каким-либо другим неуловимым способом. sublime-syntax файлы - это YAML, и поэтому они чувствительны к таким вещам, как отступы.

Обратите внимание, что выполнение каких-либо действий в папке «Пакеты» напрямую является плохой идеей;изменение файла sublime-package работает в краткосрочной перспективе, но его обновляют, удаляя и заменяя. Поэтому, если вы не создали файл в первую очередь, изменение содержимого напрямую является рецептом для того, чтобы ваши изменения были бесцеремонно удалены в будущем, когда вы меньше всего этого ожидаете.

Внесение следующих измененийработал на меня. Для внесения изменений используется пакет OverrideAudit (отказ от ответственности: я являюсь автором пакета). Это позволит вам легко внести изменения безопасным способом, а также даст вам знать, будет ли когда-либо обновлен базовый пакет.

  1. Установка OverrideAudit
  2. В палитре команд выберите OverrideAudit: Create Override
  3. Выберите пакет SQL, затем SQL.sublime-syntaxfile
  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
Удалить просто правило соответствия, которое соответствует стилю комментария, который вам не нужен;убедитесь, что вы не изменяете никакие другие строки до или после или изменяете отступ. Результат должен выглядеть следующим образом:
  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
Сохраните файл синтаксиса.

Как только вы сохраните файл, изменения вступят в силу немедленно. Если вы проверяете консоль Sublime с помощью View > Show Console, вы должны увидеть строку, которая говорит generating syntax summary, которая указывает, что Sublime увидел и перезагрузил синтаксис. Если во время этого процесса возникнет ошибка, она будет отображена здесь.

После выполнения этих шагов ваш пример текста будет выглядеть следующим образом (с использованием темы Adaptive и цветовой схемы Monokai:

Sample Image

Если вы ранее изменили фактический файл sublime-package, это может не сработать. В таком случае вам может потребоваться переустановить Sublime, чтобы получитьвернуть исходный файл; это не удалит ваши настройки. В качестве альтернативы вы можете загрузить переносную версию Windows с веб-сайта Sublime (даже если вы не используете windows) и получить оттуда первозданный пакет, который заменит тот, который вы изменили.

...