问题标签 [emacs-semantic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1810 浏览

emacs - 使用语义完成符号时出现“错误类型参数 stringp nil”错误

在 C++ 源文件上使用 'senator-complete-symbol' 时,有时它可以工作,但大多数时候我都遇到错误“wrong-type-argument stringp nil, compare-strings("Ins" 0 nil nil 0 3零)”。我不知道为什么语义工作如此不一致。我已经尝试了无数次退出emacs,删除semanticdb目录并重新进入emacs以强制重新创建semanticdb,但就像我说的那样,它有时会无缘无故地工作,但大多数时候它不起作用。

我使用的 CEDET 版本来自:

我试过 v1.0 但这给了我编译错误,而 Emacs 23.2 中捆绑的版本根本没有这个功能。任何人都可以给我任何想法,我怎样才能使这项工作?我可以在 emacs 中使用更好的工具来完成代码完成和代码浏览吗?我有点沮丧,因为我快到最后期限了,而 CEDET 浪费了我很多时间,我不知道为什么 CEDET 看起来这么有问题。

0 投票
1 回答
1067 浏览

emacs - 找不到使用“语义符号引用符号”的任何引用

每当我使用“semantic-symref-symbol”(Cc,g)试图获取对任何符号的所有引用时,我都会收到No references found消息,无论该符号是 C++ 类成员变量还是局部变量,它就是找不到任何参考。gtag 数据库位于我的项目根目录下。在我的 .emacs 文件中,我有以下内容:

当我在命令行下键入“global -xs symbol”时,它会正确显示对该符号的所有引用。但是为什么语义找不到任何东西呢?另一方面,'semantic-symref' 在查找类或类成员函数的引用时工作得很好,但它不适用于变量。

它只是一个错误,还是我错过了使符号引用无法正常工作的任何东西?

0 投票
1 回答
944 浏览

c++ - 如何将 Emacs 和 CEDET 与 SCons 一起使用?

如何在不破坏语义和自动完成的情况下集成 SCons 和 emacs + cedet?

0 投票
1 回答
2785 浏览

emacs - 使 emacs cedet 语义查找包含目录

Cedet 是一个不错的工具套件,但在默认配置中,它很难找到包含的文件。

我想让它在每个父目录中查找一个名为 include/ 的目录并从那里获取文件。

例如,一个文件/home/fakedrake/my-project/some-thing/something-else/file.c#include "file.h" file.h 在 some-thing/file.h 但 cedet 无法找到它

让 cedet 查找 file.h 以在目录中创建完成会很棒

(如果它试图寻找,我可以忍受它

)

0 投票
1 回答
1236 浏览

linux - Cedet/Semantic 未考虑 C 预处理器定义

我正在尝试在我的 Linux 内核开发项目中使用 Emacs 作为 IDE。所以我毫无问题地安装了 CEDET 和 GNU Global (gtags)。

当我打开属于我的 Linux 内核源文件夹的 C 源代码时,会自动检测到 linux 项目。正确突出显示函数、变量、标题和其他关键字。

通过 ~/.emacs 文件,我配置了语义的代码完成和智能感知。因此,当我按 C- 时,代码完成菜单出现,我可以选择需要的内容。

问题是当我使用预处理器定义时,智能感知系统在当前位置显示菜单,但在调用时未检测到正确的内容 (C-)。即使我关闭并重新启动 emacs,也会重现相同的行为。

测试代码为:

//------------------------------------------------ --------------------------------------

//------------------------------------------------ --------------------------------------

KERNEL、 USE1 和LINUX_ARM_ARCH已经定义如下:

在 .emacs 文件中,我还添加了 GCC 交叉编译器(GCC for ARM)构建内核项目所需的所有包含和定义。

我还尝试强制语义使用 GCC 交叉编译器命令行代替系统 GCC 来正确预处理,但还没有找到如何做到这一点。

“Mx semantic-c-describe-environment”命令显示正确的包含路径和定义(在 .emacs 中设置)。但也列出了 GCC 定义的系统。

.emacs 文件和软件版本如下所示。

欢迎任何帮助或指示:) 最好的问候

0 投票
1 回答
860 浏览

ruby - 使用 cedet 语义 wisent-ruby

我刚刚开始按照包括 Alex Ott 在内的各种指南设置 cedet。

这是我的初始化文件中到目前为止的内容。

我非常喜欢代码折叠,因为语义比 hideshow 等包更了解代码。

我想对红宝石进行相同的折叠。我知道 cedet 还可以做其他事情,但我现在只是试探一下。

所以我在 contrib/ 文件夹中看到了 wisent-ruby.el。看起来语义确实知道如何解析 Ruby。INSTALL 说它应该是“自动”安装的。我打开一个 Ruby 文件并且代码折叠魔术三角形不存在。现在怎么办?

0 投票
1 回答
323 浏览

emacs - 带有集成 cedet 的 emacs 23.3 中的语义错误

这是我正在使用的 cedet 版本

当我运行“Mx semantic-ia-fast-jump”时,我得到了错误:

有人知道为什么吗?这绝对不是因为变量的数据类型是“ptrdiff_t”。

0 投票
1 回答
241 浏览

emacs - Cedet 无法正确解析 /usr/include 下的 time.h

我用http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html配置了我的 cedet 几乎相同。

感谢 alexott ,大多数时候它运行良好,但我发现它无法很好地解析 /usr/include/time.h 中的 tm 结构。

使用M-x semantic-ia-fast-jump时,结构 FILE 是正确的,但语义在 中找到结构 tm wchar.h,而不是在 中time.h。问题似乎wchar.hstruct tm.

0 投票
2 回答
4706 浏览

c++ - 如何为 C++ 创建 EDE 项目

我一直在尝试为 C++(emacs24 + 内置 CEDET)设置一个 EDE 项目,但我开始感到绝望,因为我似乎找不到想要生成 makefile 的方式。我对 Emacs 比较陌生。我将尝试描述我在做什么:

我有一个这样的玩具项目:

main.cpp 在“other/”目录中包含两个 .h。这些是我使用这个简单的目录设置来设置 EDE 项目的步骤:

  • 在 emacs 中打开 main.cpp 并执行M-x ede-new;类型:Make; 名称:main-proj
  • 打开“其他”目录中的一个文件并执行M-x ede-new;类型:Make; 名称:aux-proj
  • 现在是创建目标的时候了(我相信在这种情况下是三个):
    • 在 main.cpp 缓冲区:M-x ede-new-target; 名称:main; 类型:program。出现提示时,我将 main.cpp 添加到此目标。
    • 我对其他两个目标(具有 Utils.cpp 和 Utils.h 的 Utils 和具有 CGrabBuffer.cpp 和 CGrabBuffer.h 的 CGrabBuffer )重复相同的操作。在这里,我发现了第一个问题。这两个目标必须是什么类型?我只希望他们生成 .o 文件。
  • 完成后,我键入M-x ede-customize-current-target所有三个目标,并添加一些包含路径、一些库等。
  • 在此之后,如果我调用M-x ede-compile-project它不会编译,因为:
    • 它首先尝试编译 main.cpp;在尝试构建 main.cpp 之前,我不知道如何指定(使用 EDE)Utils.o 和 CGrabBuffer.o 都需要。
    • 如果我手动更改顺序(编辑 Makefile),它无法链接 main.cpp,因为它找不到 Utils.o 和 CGrabBuffer.o。

正如你所看到的,我正处于一团糟之中。也许我什至不理解 EDE 中的“目标”是什么意思。我还阅读了必须在 .emacs 文件中指定的 ede-cpp-root-project 的存在。我没有尝试过,因为我认为它只是帮助语义。它不会生成 Makefile,是吗?我可以拥有(或者我是否需要)一个使用 Project.el 构建的 EDE 项目,以及使用 ede-cpp-root-project 的语义相同的东西吗?或者是多余的?

抱歉,如果我误解了很多东西,但我很困惑,并且刚接触 emacs 会让事情变得更糟。谢谢你的耐心!

编辑:通过一些修补和我收到的回复,我已经能够弄清楚很多东西,所以非常感谢。我仍然不明白的是必须在 .emacs 文件中指定的 ede-cpp-root-project 的使用。它只是为了c ++语义吗?使用 Project.el 的项目以及 .emacs 中的 elisp 行是否是多余的?

0 投票
1 回答
230 浏览

emacs - Emacs 23,semantic-something-to-tag-table 和 eassist 模式

非常有用的 eassist 模式依赖于 CEDET 的semantic-something-to-tag-table功能。谁能建议,如何从 Emacs 的内置 CEDET 加载此功能?