Как заставить Emacs sql-mode распознавать комментарии в стиле MySQL #? - PullRequest
3 голосов
/ 27 января 2009

Я читаю кучу файлов MySQL, которые используют # (для конца строки) комментариев, но мой sql-режим их не поддерживает. Я нашел часть таблицы синтаксиса sql.el, которая определяет / ** / и - комментарии, но согласно this таблицы синтаксиса Emacs поддерживают только 2 стиля комментариев.

Есть ли способ легко добавить поддержку # комментариев в sql.el?

Ответы [ 3 ]

2 голосов
/ 04 апреля 2010

Ответ Рольфа, похоже, не сработал для меня. AFAIK, класс символов для начальных комментариев, альтернативного стиля комментария должен быть " (add-hook 'sql-mode-hook 'my-sql-mode-hook) (defun my-sql-mode-hook () ;; Make # start a new line comment in SQL. This is MySQL-specific ;; syntax. (modify-syntax-entry ?# "< b" sql-mode-syntax-table))

2 голосов
/ 20 ноября 2014

Emacs-24 sql.el имеет эту встроенную! Просто запустите M-x sql-set-product MySQL RET и таблица синтаксиса будет настроена автоматически, как и ключевые слова font-lock для всех дополнительных зарезервированных слов и типов, интерактивного режима и т. Д. И т. Д.

Если вы посмотрите под SQL в строке меню, вы можете использовать подменю Product, чтобы выбрать MySQL.

Вы также можете M-x customize-variable sql-product RET установить продукт по умолчанию отдельно от ANSI.

1 голос
/ 28 января 2009

Вы можете определить? # Для запуска стиля комментария b, что означает, что есть два способа запуска альтернативного стиля комментария (или - или #):

(setq sql-mode-syntax-table
  (let ((table (make-syntax-table)))
    ;; C-style comments /**/ (see elisp manual "Syntax Flags"))
    (modify-syntax-entry ?/ ". 14" table)
    (modify-syntax-entry ?* ". 23" table)
    ;; double-dash starts comments
    (modify-syntax-entry ?- ". 12b" table)
    (modify-syntax-entry ?# " b" table)
    (modify-syntax-entry ?\f "> b" table)
    ;; single quotes (') delimit strings
    (modify-syntax-entry ?' "\"" table)
    ;; double quotes (") don't delimit strings
    (modify-syntax-entry ?\" "." table)
    ;; backslash is no escape character
    (modify-syntax-entry ?\\ "." table)
    table))

(это было скопировано с sql.el и изменено, что означает, что это GPL)

...