Я создал функцию ловушки для активации режима иронии при работе с файлами c. Однако, когда я открываю файл php, эти ловушки также выполняются.
Вот код:
(defun my-company-irony ()
(irony-mode)
(unless (memq 'company-irony company-backends)
(setq-local company-backends (cons 'company-irony company-backends))))
(add-hook 'c-mode-hook #'my-company-irony)
Кто-нибудь знает, как прекратить выполнение этой ловушки на php-файлах?
Похоже на php-mode
наследуется от c-mode
что, я думаю, означает, что он будет работать c-mode-hook
, Если вы посмотрите на cc-mode.el, другие C-подобные режимы наследуются от prog-mode
а не прямо из c-mode
что, вероятно, правильно. Вы, вероятно, должны сообщить об ошибке php-mode
,
Чтобы исправить это, просто оберните ваш код в тест для c-mode
(defun my-company-irony ()
(when (eq major-mode 'c-mode)
(irony-mode)
(unless (memq 'company-irony company-backends)
(setq-local company-backends (cons 'company-irony company-backends)))))
Других решений пока нет …