Я - пользователь Emacs, у которого нет навыков настройки редактора. После того, как я обновил с haskell-mode 2.4 до 2.7, я заметил два изменения:
- Отступы отличаются как-то, в некотором смысле, мне не совсем нравится. Я не могу понять, что это такое.
- Что еще более важно: если у меня включен режим cua и выделен блок текста, 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
)