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")
色をかなり魅力的な青の色合いに設定するだけです。