Я - пользователь Emacs, не имеющий навыков в отношении настройки редактора. После того, как я обновился с haskell-mode от 2.4 до 2.7, я заметил два изменения:
- Отступы как-то разные, в некотором роде мне не очень нравится. Я не могу сказать, что это такое.
- Что еще более важно: если у меня включен режим cua-mode и выделяется блок текста, backspace/delete не удаляет весь блок, а только предыдущий/следующий символ из моего маркера.
Я вижу, что режим haskell-mode 2.7 по умолчанию использует режим haskell-indentation-mode второстепенного режима, в то время как поведение 2.4 сохранено в форме haskell-indent-mode. Если я сначала отключу первый, а затем последний, то поведение, которое я хочу, восстанавливается (например, отступы чувствуют себя как раньше, а backspace/delete удаляет выделенные блоки).
Я не могу, однако, получить это автоматически, когда я открываю файл с суффиксом .hs. Я пробовал разные вещи, похожие на
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent-mode)
и тому подобное, но я либо закончил со стандартным режимом, либо с обычным режимом haskell без отступа и документа.
Любые идеи?
Решение (спасибо nominolo):
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(remove-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'my-haskell-mode-hook)
(defun my-haskell-mode-hook ()
(haskell-indentation-mode -1) ;; turn off, just to be sure
(haskell-indent-mode 1) ;; turn on indent-mode
)