2011-02-03 11 views
11

私はEmacsのユーザで、エディタの設定に関するスキルはありません。haskell-indentation-mode over haskell-indentation-modeを強制的にhaskell-mode 2.7で強制しますか?

  • インデントは、私は非常に好きではない方法で、何とか異なるです:私はhaskell-mode 2.4から2.7にアップグレードした後、私は2つの変更を気づきました。私はそれが何であるかに私の指を置くことはできません。
  • さらに重要なことに、キューモードを有効にしてテキストブロックを強調表示している場合、ではなく、ブロック全体を削除して、マーカーの前/次の文字だけを削除します。

私は、haskell-mode 2.7はマイナーモードのhaskell-indentation-modeをデフォルトで使用していますが、2.4の動作はhaskell-indent-modeの形で保存されています。最初に前者をオフにして後者にすると、必要な動作が復元されます(インデントが以前と同じように感じられ、後退/削除によってハイライトされたブロックが削除されます)。

ただし、拡張子が.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 
    ) 

答えて

14

ようなものを設定するための最良の方法は、カスタムフックを書くことである:

(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 

    ;; further customisations go here. For example: 
    (setq locale-coding-system 'utf-8) 
    (flyspell-prog-mode) ;; spell-checking in comments and strings 
    ;; etc.  

    ) 

また、そこに匿名関数をスティック可能性がいくつかの設定を試したい場合は、名前付き関数を持つ方が簡単です。関数を再定義するだけで(そしてHaskellファイルを再オープンする)、新しい動作が得られます。

+0

偉大な答えです。これは私が以前持っていたランダムな 'add-hook'のパターンよりはるかに優れています。ありがとう! – acfoltzer

+0

悲しいことに、これは私にとっては役に立たない。あなたが私の.emacsに与えたコードを追加しますが、.hs haskell-indentation-modeを開いても、まだオンです。 'M-x haskell-indentation-mode'を実行すると、期待通りにオフになります。 – gspr

+0

@gspr:別のフックを実行している可能性があります。アクティブなフックを見るには 'C-h v haskell-mode-hook'を使います。また、実際には3つのインデントモードがあるようですので、別のモードをオフにする必要がありますか? – nominolo

関連する問題