【问题标题】:Emacs and company autocompletion. Add a header directory globallyEmacs 和公司自动完成。全局添加头目录
【发布时间】:2023-03-15 12:50:01
【问题描述】:

我正在尝试将头文件路径添加到公司模式,但我做不到。我用flycheck做的如下:

(defun include-paths ()
   (setq flycheck-clang-include-path (list (expand-file-name "../include"))))

(add-hook 'c++-mode-hook 'include-paths)

公司模式有没有类似的方法?

【问题讨论】:

    标签: emacs completion


    【解决方案1】:

    我假设您使用的是company-c-headers

    几乎从他们的 README 文件中逐字逐句,您可以使用M-x customize-groupscompany-c-headers 来修改搜索目录。

    或者,您可以将 company-c-headers-path-system 和 company-c-headers-path-user 变量绑定到返回相应路径的函数。例如,如果您使用的是 EDE,则可以使用以下内容:

    (defun ede-object-system-include-path ()
      "Return the system include path for the current buffer."
      (when ede-object
        (ede-system-include-path ede-object)))
    
    (setq company-c-headers-path-system 'ede-object-system-include-path)
    

    Source

    【讨论】:

    • 是否需要company-c-headers?我认为这是一个自动完成 c 标头的包。不使用这个包就不能设置这个路径吗?
    • 我建议您详细了解公司模式的工作原理。它实际上是一个编写自动完成后端的框架。虽然它确实提供了一些非常好的开箱即用的功能,但添加额外的后端可以改进功能。我认为默认情况下它使用 clang 作为 C 和 C++ 的后端,但是对于包含文件完成 company-c-headers 是必需的。欲了解更多信息:company-mode.github.io
    • Emacs 相当强大,但我发现它很有趣!祝你好运,黑客愉快:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 2011-06-09
    • 2021-08-28
    • 2016-09-30
    • 1970-01-01
    • 2019-10-16
    • 2011-05-04
    相关资源
    最近更新 更多