关于Emacs 24.1和Haskell的另一个问题。我注意到它确实为我缩进,它为我做了非常基本的突出显示(例如,类型为绿色)。但开箱即用的Emacs 24.1并没有强调常用的功能,如foldr
,map
等。是否有能力使用Emacs和haskell模式来突出常用功能?
答案 0 :(得分: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")
只是将文本的颜色设置为相当吸引的蓝色。