gpt4 book ai didi

emacs24 语义补全

转载 作者:行者123 更新时间:2023-12-01 05:25:08 25 4
gpt4 key购买 nike

我正在尝试使用 emacs 24 和它附带的 cedet 版本来完成语义完成。补全适用于我在自己的源文件中定义的类,但补全不适用于标准库或 STL 内容这是我的 emacs 配置:

(require 'cedet)
(require 'semantic)
(require 'semantic/ia)
(require 'semantic/bovine/gcc)
(semantic-add-system-include "/usr/include/c++/4.6.3" 'c++-mode)
(setq semantic-default-submodes
'(global-semantic-idle-scheduler-mode
global-semanticdb-minor-mode
global-semantic-idle-summary-mode
global-semantic-idle-completions-mode
global-semantic-highlight-func-mode
global-semantic-decoration-mode
global-semantic-mru-bookmark-mode))
(setq semanticdb-default-save-directory "~/.semanticdb/"
semantic-complete-inline-analyzer-idle-displayor-class 'semantic-displayor-ghost)
(semantic-mode t)

在我的 ~/.semanticdb 目录中,我只看到“!usr!include!c++!4.6!x86_64-linux-gnu!bits!semantic.cache”,它甚至没有使用我在配置中指定的版本。

例如,当我在 std::list 上尝试 M-x semantic-analyze-possible-completions 时,我收到一条错误消息:“找不到 std::list 的类型”

有关如何调试或修复它的任何建议?

最佳答案

我今天在我的新 SSD 上安装了一个新的 Ubuntu 13.04,
这是我配置 CEDET 的步骤(我检查了它是否提供了 std::list 的完成)。

基本设置

  • 获取新鲜 emacs并从源代码构建它。
    就这么简单

    ./configure && make && sudo make install
  • 添加到 .emacs(语义模式 1)

  • 这就是整个设置。

    测试
  • 在不加载任何内容的情况下运行 emacs:

    emacs -q test.cc
  • 输入代码
    #include <list>
    int main() {
    std::list lst;
    lst.$
    return 0;
    }
  • M-x semantic-mode
  • 点在 $ , M-x semantic-ia-show-variants

  • 故障排除

    如果东西不起作用,则语义数据库可能已损坏。

    只要找到它在哪里,对我来说就是 semanticdb-default-save-directory ="~/.emacs.d/semanticdb",
    并从那里删除所有内容。

    然后,在访问源文件时,调用 semantic-force-refresh .

    关于emacs24 语义补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com