Emacs 24.1 と Haskell に関する別の質問。インデントが行われ、非常に基本的な強調表示が行われることに気付きました (たとえば、型は緑色で表示されます)。しかし、すぐに使用できる Emacs 24.1 はfoldr、map、 などの一般的に使用される関数を強調表示しません。Emacs と haskell-mode で一般的に使用される関数を強調表示する機能はありますか?
1 に答える
基本的に、標準ライブラリ関数はまさにその関数です。実際、インポートによっては、標準のプレリュードからではなく、ユーザーが提供するものもあります。これは実際には頻繁に発生します。たとえば、使用するControl.Category場合は通常、非表示idにして多態的なバージョンに置き換えます。
つまり、標準機能を強調する本当の理由はありません。したがって、この機能が標準のHaskellモードに存在するかどうかは本当に疑わしいです。
そうは言っても、これはEmacsです。好きなものを簡単に追加できます。強調したいすべての関数名のリストがある場合、それをHaskellモードに追加するのは難しくありません。
.emacsファイル内の次のようなコードを使用して、haskellモードの強調表示に新しい関数を追加できます。
(font-lock-add-keywords 'haskell-mode
'(("\\<\\(map\\|foldr\\|foldl\\)\\>" 1
'(:foreground "#3366FF") t)))
奇妙に見える文字列は、Emacsスタイルの正規表現です。\<と\>のようなもの\bで\(、グループ内での交代用です\|。\)正規表現リテラルがないため、すべて\を文字列内でエスケープする必要があります。正規表現は、として読みやすくなります\<\(map\|foldr\|foldl\)\>。式に新しいケースを追加することで、他の関数名を簡単に追加できます。
は、テキストの(:foreground "#3366FF")色をかなり魅力的な青の色合いに設定するだけです。