Как заставить Emacs sql-mode распознавать комментарии в стиле MySQL #?
Я читаю кучу файлов MySQL, которые используют # (для конца строки) комментариев, но мой sql-режим их не поддерживает. Я нашел часть таблицы синтаксиса в sql.el, которая определяет /**/ и - comments, но в соответствии с этим таблицы синтаксиса Emacs поддерживают только 2 стиля комментариев.
Есть ли способ легко добавить поддержку # комментариев в sql.el?
3 ответа
Emacs-24 sql.el имеет эту встроенную! Просто беги M-x sql-set-product MySQL RET
и таблица синтаксиса устанавливается автоматически, как и ключевые слова font-lock для всех дополнительных зарезервированных слов и типов, интерактивного режима и т. д., и т. д. Brilliant!!
Если вы посмотрите под SQL
в меню вы можете использовать Product
Подменю для выбора MySQL
,
Вы также можете M-x customize-variable sql-product RET
установить продукт по умолчанию от ANSI.
Ответ Рольфа, похоже, не сработал для меня. 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))
Вы можете определить?# Для запуска стиля комментария b, что означает, что есть два способа запуска альтернативного стиля комментария (или - или #):
(setq sql-mode-syntax-table (пусть ((таблица (make-синтаксис-таблица)));; Комментарии в стиле C /**/ (см. Руководство elisp "Синтаксические флаги")) (изменить запись синтаксиса?/ ". 14" таблица) (изменить запись синтаксиса?* ". 23" таблица);; двойной тире начинается комментарии (изменить запись синтаксиса? - таблица ". 12b") (изменить запись синтаксиса?# " b" таблица) (изменить запись синтаксиса?\f "> b" таблица);; одинарные кавычки (') строки-разделители (изменить запись синтаксиса?' "\""таблица);; двойные кавычки (") не разделяют строки (изменить запись синтаксиса?\" "."таблица);; обратная косая черта не является escape-символом (изменить запись синтаксиса?\\ "." таблица) Таблица))
(Это было скопировано из sql.el и изменено, что означает, что это GPL)