关于Emacs 24.1和Haskell的另一个问题。我注意到它为我做了缩进,它为我做了非常基本的高亮显示(例如,类型是绿色的)。但是Emacs24.1不会突出显示常用的功能,如foldr、map等。Emacs和haskell-mode是否有能力突出显示常用的功能?
发布于 2012-07-08 04:41:02
从根本上说,标准库函数就是函数。事实上,根据您的导入,它们中的任何一个都可以是用户提供的,而不是来自标准的前奏!这种情况实际上经常发生--例如,如果您想使用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\)\>。通过在表达式中添加新的case,可以轻松地添加其他函数名。
(:foreground "#3366FF")只是将文本的颜色设置为相当吸引人的蓝色阴影。
https://stackoverflow.com/questions/11378420
复制相似问题