Принудительное haskell-indent-mode вместо haskell-indentation-mode в haskell-mode 2.7?

Я пользователь 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
   )

11
задан gspr 4 February 2011 в 10:30
поделиться