首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Emacs中使用Haskell模式的haskell自动完成

Emacs中使用Haskell模式的haskell自动完成
EN

Stack Overflow用户
提问于 2010-08-06 22:24:07
回答 6查看 8.1K关注 0票数 20

我在emacs中安装了haskel-mode。然后我在我的.emacs中写道:

代码语言:javascript
运行
复制
(load "~/.emacs.d/haskell-mode/haskell-site-file")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(add-hook 'haskell-mode-hook 'haskell-font-lock-symbols t)
(put 'downcase-region 'disabled nil)

我必须在conf文件中添加什么才能让emacs自动完成Haskell?还是Haskell模式没有这样的可能性?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-07 04:49:08

当没有特定语言的支持时,您可以使用标记。这是一个通用的完成机制。

  1. 会生成一个TAGS文件,其中包含标识符及其定义位置的列表。Emacs附带了etags程序,可以在许多语言中实现这一点,但不是Haskell;ghc附带的是hasktags。使用M-x visit-tags-table.

加载

  • TAGS文件

标签不依赖于上下文,因此它们会不加区别地建议类型、值、构造函数等。它们也不会提供高级功能,比如轻松显示值的类型。最重要的标记命令有:

  • M-TAB (complete-symbol)根据加载的tags.
  • M-.列表完成标识符(find-tag)转到定义点的标识符的位置,如果
    • M-TAB(complete-symbol)返回到M-..
    • M-x tags-apropos之前的位置,则打开包含文件。find-tag显示与正则表达式匹配的标识符列表。

有关更多信息,请查看Emacs手册中的“标记”部分。

对于更原始但完全自动的机制,有动态缩写功能。C-M-/ (dabbrev-completion)在大多数打开的缓冲区中查找补全;这是完全独立于语言的,因此它甚至可以在字符串、注释中查找单词。M-/ (dabbrev-expand)类似,但直接完成到点之前最近的匹配。

票数 18
EN

Stack Overflow用户

发布于 2010-08-08 06:06:42

ghc-mod在Emacs中为Haskell提供了一些补全功能,以及使用hlint和ghc进行检查。结合M-/,它对我来说已经足够好了。

票数 11
EN

Stack Overflow用户

发布于 2010-08-07 03:00:10

haskell-mode目前没有提供这样的可能性。在CEDET的haskell解析器的实现上有一些工作-在这种情况下,用户将自动获得自动完成功能。但这项工作并不是很久以前就开始了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3424697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档