关于 Emacs 24.1 和 Haskell 的另一个问题。我注意到它确实为我缩进并且它为我做了非常基本的突出显示(例如,类型为绿色)。但是开箱即用的 Emacs 24.1 没有突出显示常用功能,如foldr
,map
等。Emacs 和 haskell-mode 是否有能力突出常用功能?
问问题
572 次
1 回答
4
从根本上说,标准库函数就是函数。事实上,根据您的进口,其中任何一个都可能是用户提供的,而不是标准前奏!这实际上经常发生——例如,如果你想使用Control.Category
你通常隐藏id
并用多态版本替换它。
所以简而言之,没有真正的理由突出标准功能。所以我真的怀疑这个功能是否存在于标准的 Haskell 模式中。
也就是说,这是 Emacs。您可以轻松添加任何您想要的内容。如果您有要突出显示的所有函数名称的列表,那么将其添加到 Haskell 模式中应该不难。
您可以在文件中使用类似这样的代码将新函数添加到 haskell 模式突出显示.emacs
:
(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 回答