gpt4 book ai didi

emacs - 如何让emacs Semantic使用GTAGS生成的TAG文件

转载 作者:行者123 更新时间:2023-12-04 12:00:44 24 4
gpt4 key购买 nike

我的 emacs 版本是 23.2.1
虽然我使用以下内容将后端更改为使用 GTAGS。
(需要'语义/数据库全局)
(semanticdb-enable-gnu-global-databases 'c-mode)
(semanticdb-enable-gnu-global-databases 'c++-mode)
我试图生成一个 GTAGS 文件以用作语义后端。
但是,每次打开 C 文件时,Semantic 仍在解析文件而不使用 GTAGS 文件。

  • 是否可以使用 GTAGS 文件代替内置的语义解析器?我发现内置的解析器不是很准确。
  • 是否可以在不指定项目范围的情况下使用 GTAGS 文件?就我而言,我尝试将 GTAGS 文件放在/usr/include 中,这应该是 emacs 的标准包含路径。但是 Semantics 并没有使用它。
  • 最佳答案

    Semantic 不使用 GTAGS 文件来生成直接用于跳跃或智能补全等功能的标签。语义数据库的 GNU Global 后端将使用 GTAGS 作为一个巨大的名称表。因此,如果您需要按名称查找符号,GTAGS 将告诉语义它在哪里,然后语义将更直接地解析这些文件本身以获取详细信息。

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

    在/usr/include 中使用 gtags 是一个有趣的想法,但可能不会经常使用。 Semantic 只会搜索代码中实际使用的头文件,而不是搜索所有包含文件。 GNU Global 后端专门用于扫描整个项目的符号或符号引用。如果您想搜索所有包含的符号,那么它会很有用,但目前 Semantic 中没有这样的功能。

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

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

    关于emacs - 如何让emacs Semantic使用GTAGS生成的TAG文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791628/

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