打开php文件时会运行Emacs c-mode-hook

时间:2017-03-23 17:20:26

标签: php emacs c-mode

我在使用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文件上执行此挂钩吗?

1 个答案:

答案 0 :(得分:1)

似乎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)))))