首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使emacs语义使用GTAGS生成的标记文件

如何使emacs语义使用GTAGS生成的标记文件
EN

Stack Overflow用户
提问于 2010-09-24 23:05:31
回答 1查看 2.5K关注 0票数 7

我的emacs版本为23.2.1,尽管我使用了以下方法将后端更改为使用GTAGS。(需要‘semanticdb/db-全局)(语义db-启用-全局-数据库-c-模式)(语义数据库-启用-全局-数据库的c++模式)我试图生成一个GTAGS文件,用作语义的后端。然而,每次打开C文件时,语义仍然在不使用GTAGS文件的情况下解析文件。

  1. 可以使用GTAGS文件而不是内置的语义解析器吗?我发现内置解析器不是很精确。
  2. 可以在不指定项目范围的情况下使用GTAGS文件吗?在我的例子中,我尝试将GTAGS文件放在/usr/include中,这应该是emacs的标准包含路径。但是语义并没有使用它。
EN

回答 1

Stack Overflow用户

发布于 2010-09-27 23:54:57

Semantic不使用GTAGS文件生成标记,它将直接用于诸如跳转或智能完成等功能。语义db的Global后端将使用GTAGS作为一个巨大的名称表。因此,如果您需要按名称查找符号,GTAGS将告诉它在哪里,semantic将更直接地解析这些文件本身以获取细节。

GTAGS不直接用作替代解析器的原因是,GTAGS中的信息不足以满足各种操作语义需求,因为它不包括数据类型信息、参数解析和本地上下文解析。

在/usr/include中使用gtag是一个有趣的想法,但可能不会得到太多的使用。Semantic将只搜索代码中实际使用的头文件,而不是搜索所有包含的文件。Global后端专门用于扫描整个项目的符号或符号引用。如果您想搜索所有包含的符号,那么它将是有用的,但此时语义上没有这样的特性。

可以使用ebrowse来做您想做的事情,但是我发现对于C++来说,解析器在一些微妙的方面是不够的,并导致了一些问题。

如果您认为语义解析器是不准确的,那么您应该将其作为bug发布到cedet list devel邮件列表中。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3791628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档