Emacs语义&x2B;C语言的自动完成模式
我一直在努力使自动完成模式与语义很好地工作,但我知道我完全卡住了。我已经成功地通过语义ia complete symbol实现了语义自动完成(尽管出于某种原因,它无法完成malloc(),这很奇怪) 一些.emacs代码片段:Emacs语义&x2B;C语言的自动完成模式,c,emacs,C,Emacs,我一直在努力使自动完成模式与语义很好地工作,但我知道我完全卡住了。我已经成功地通过语义ia complete symbol实现了语义自动完成(尽管出于某种原因,它无法完成malloc(),这很奇怪) 一些.emacs代码片段: (add-to-list 'ac-dictionary-directories "~/emacs-src/auto-complete-1.3.1/") (ac-config-default) (ac-set-trigger-key "TAB") (add-to-list
(add-to-list 'ac-dictionary-directories "~/emacs-src/auto-complete-1.3.1/")
(ac-config-default)
(ac-set-trigger-key "TAB")
(add-to-list 'ac-sources 'ac-source-semantic)
(add-to-list 'ac-sources 'ac-source-gtags)
(add-hook 'c-mode-hook
(defun my-c-mode-hook ()
(auto-complete-mode)
(setq ac-sources '(ac-source-semantic))
(ac-complete-semantic)))
如何使自动完成模式与语义一起工作?尝试通过以下方式调试自动完成失败:
M-x语义分析调试辅助RET
看看上面写着什么。查看\include\stdlib.h
,查看解析器对文件的看法。如果您在那里:
M-x bovinate RET
然后您可以搜索查看是否存在
malloc
。如果没有,则可能存在解析错误,或者一些未正确设置的杂项#define
。使用上面的方法,您通常可以在头文件中找到问题的症结所在。如果我没有弄错的话,Semantic正在发挥作用,而您只是在努力设置auto complete。要做到后者,只需从
(require 'auto-complete-config)
(setq-default ac-sources '(ac-source-semantic-raw))
请注意,您必须使用“setq default”来设置交流电源。然后你就可以做了
M-x auto-complete-mode
在C/C++缓冲区中,自动完成应该查询语义完成。@Johan-Hey我面临的问题与您完全相同。你能告诉我你最终是怎么解决的吗?