1

Emacs 24.1 と Haskell に関する別の質問。インデントが行われ、非常に基本的な強調表示が行われることに気付きました (たとえば、型は緑色で表示されます)。しかし、すぐに使用できる Emacs 24.1 はfoldrmap、 などの一般的に使用される関数を強調表示しません。Emacs と haskell-mode で一般的に使用される関数を強調表示する機能はありますか?

4

1 に答える 1

4

基本的に、標準ライブラリ関数はまさにその関数です。実際、インポートによっては、標準のプレリュードからではなく、ユーザーが提供するものもあります。これは実際には頻繁に発生します。たとえば、使用する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")色をかなり魅力的な青の色合いに設定するだけです。

于 2012-07-07T20:41:02.477 に答える