Как отключить c-electric-flag и c-syntactic-indentation только при редактировании файлов.html.php в Emacs?

Мне нужно сбросить флаги c-electric-flag и c-syntactic-indentation в Emacs23.4, когда я открываю файлы php, имя которых заканчивается на .html.php, и только для этого "name-pattern", потому что я использую php- mode внутри html-mode, и эти флаги делают неправильный отступ в коде php.

Однако я хотел бы сохранить эти флаги при редактировании чистых файлов.php (контроллеры php, которые содержат только исходный текст php).

Как я могу это сделать?

1 ответ

Решение

Вы можете заархивировать это, проверив имя файла в php-mode-hook и отключив их, если имя файла соответствует .html.php как следующий код.

(defun my-php-mode-hook ()
  (when (and (buffer-file-name)
         (string-match-p "\\.html\\.php\\'" (buffer-file-name)))
    (c-toggle-electric-state -1)
    (setq c-syntactic-indentation nil)))
(add-hook 'php-mode-hook 'my-php-mode-hook)
Другие вопросы по тегам