【问题标题】:Emacs semantic+auto-complete-mode for CC 的 Emacs 语义+自动完成模式
【发布时间】:2013-01-26 05:20:30
【问题描述】:

我一直致力于使自动完成模式与 Semantic 很好地配合使用,但我知道我完全被卡住了。我已经通过semantic-ia-complete-symbol 成功地完成了语义自动完成(尽管由于某种原因它无法完成malloc(),这很奇怪)。

一些.emacs sn-ps:

(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)))

如何使自动完成模式与 Semantic 一起使用?

【问题讨论】:

    标签: c emacs


    【解决方案1】:

    如果我的理解正确,Semantic 可以正常工作,而您只是在努力设置自动完成功能。对于后者,只需从

    开始
    (require 'auto-complete-config)
    (setq-default ac-sources '(ac-source-semantic-raw))
    

    请注意,您必须使用“setq-default”来设置 ac-sources。然后你应该可以做

    M-x auto-complete-mode
    

    在 C/C++ 缓冲区中,自动完成应该查询 Semantic 的完成。

    【讨论】:

    • @Johan 嘿,我面临的问题与您完全相同。你能告诉我你最后是怎么解决的吗?
    【解决方案2】:

    尝试通过以下方式调试自动完成失败:

    M-x semantic-analyze-debug-assist RET

    看看它说了什么。查看\include\stdlib.h 以了解解析器对文件的看法。如果你在那里:

    M-x bovinate RET

    然后您可以搜索以查看是否有malloc。如果没有,则可能存在解析错误,或者一些未正确设置的杂项#define。使用上述方法,您通常可以在头文件中找到问题开始的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2012-04-18
      • 2015-02-13
      • 2023-03-12
      • 2014-08-08
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多