问题标签 [universal-ctags]

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 投票
1 回答
1385 浏览

c - 如何为 linux C 开发设置 ctags?

我正在Linux下进行C开发。但是,我正在努力正确设置 ctags 以使用vim. 它正确注册tags文件并基于它提供完成。

我不确定获得“必要”的正确方法是什么。目前我有一些“精心挑选”的标题:

在第一步中,我只是放了与我相同的标题,#include ...但错过了一些东西(比如/usr/include/bits/...)。所以我添加了这些。

但我觉得这些年来,某个地方的某个人必须想出更好的解决方案。那么,这通常是如何完成的呢?

0 投票
2 回答
1323 浏览

tags - 使用通用 ctags 支持编译 GNU Global

我正在尝试构建具有通用 ctags 支持的 GNU Global,但没有成功。有什么我遗漏的东西,或者我正在使用不兼容的 GNU Global 和 univeral-ctags 版本吗?我在 Ubuntu 18.04.2 LTS 上执行此操作(也在 Ubuntu 16.04 上测试过)

官方安装说明

其他相关信息

简而言之,我执行以下命令。

这似乎工作正常,并且ctags可执行文件按预期构建标签文件。接下来,我尝试使用 GNU Global 手册(上面的链接)第 4.2 节中的说明安装 GNU Global。

0 投票
1 回答
280 浏览

ctags - ctags 将地址标记为行号

我正在创建一个 IDE,我希望实现跳转到定义。

我找到了完美的工具:ctags ( https://github.com/universal-ctags/ctags )

现在唯一的问题是 ctags 创建的标签文件看起来像这样:

QLineNumberArea 2point56mb.py /^class QLineNumberArea(QWidget):$/;" c

我理解格式:{tagname}Tab{tagfile}Tab{tagaddress}

所以据我了解::tagnameQLineNumberArea,tagfile:2point56mb.py 和tagaddress:/^class QLineNumberArea(QWidget):$/;" c`

tagaddress 看起来像乱码,但它是一个 vim/ex 编辑器命令,可将您带到定义。

现在从我在这个网站上读到的内容:https ://github.com/cztchoice/ctags/wiki/Tag-Format

根据Security它指出:

Specifically, these two Ex commands are allowed:

A decimal line number:

89 A search command. It is a regular expression pattern, as used by Vi, enclosed in // or ??:

/^int c;$/ ?main()?

现在问题来了:

我需要我的标签文件有一个行号,而不是搜索命令。我尝试查找 ctags 的文档(http://docs.ctags.io/en/latest/),但找不到任何可以帮助我的东西。

有谁知道如何让 ctags 将标签地址作为行号而不是搜索命令提供?

0 投票
1 回答
127 浏览

emacs - Universal Ctags 在用作 GNU 全局“后端”时是否会阻止参考查找?

https://stackoverflow.com/a/39905971/257924我读到:

再次注意,如果您使用 Ctags 作为 Gtags 的解析器,您将失去处理 Gtags 否则会提供的引用(例如,变量使用、函数调用)的能力。从本质上讲,您用 Gtags 的参考跟踪来换取 Ctags 更强大的内置语言支持。

这是一个旧答案,所以现在,在 2019 年,使用 GNU Global 6.6.3 并使用--with-universal-ctags.

0 投票
0 回答
111 浏览

vim - 如何使用通用 ctags 在标签栏中显示 case 语句

我使用非常长且复杂的状态机和记录类型编写 vhdl 代码。

我有两个问题:

1-标签栏显示记录和程序列表中的记录,但不显示架构。2-我想使用标签栏为 case 语句添加标签。

我将 Tagbar 为 vhdl 提供的内容添加到我的 init.vim 文件中。

我正在考虑使用正则表达式来执行此操作:找到 case 关键字并存储它的名称,然后找到每个 WHEN 并存储它,然后将它们列在存储的名称下,以便在 tagbar 中的 case 但我做不到。

像下面的例子:

0 投票
2 回答
188 浏览

macos - 通用 ctags YAML 支持

universal-ctags我已经在我的 Mac 上安装了最新版本的。我想索引yml文件,但运行ctags --list-languages没有yml列为支持的语言之一。但是,他们的文档说使用LibYamland支持 ymls AnsiblePlaybook libyaml,并且这两个解析器是新添加的。

我怎样才能解决这个问题?我在互联网上搜索了很多,但显然,还没有人遇到过这个问题。

0 投票
0 回答
25 浏览

ctags - ctags:文件名下划线,源代码行为零:这是哪个变体?

在应用程序的源代码中,我看到多个标签文件,文件名用下划线代替,源行号或正则表达式地址用零代替。我不习惯 CTags,所以看了一下已知的不同格式,即原始 ctags、exuberant ctags 和 Universel ctags(还有一个通用 ctags 似乎有点不同)。除非我不幸地忽略了文档,否则我找不到关于此的声明。

以下是来自这些标签文件之一的示例:

有人知道这在任何已知的 ctags 变体中是否有效,如果是,是我忽略了文档,如果不是,这是这个变体,我在哪里可以阅读它的规范?

— 编辑 —</p>

我想这用于单词完成,但仍然想知道它是否符合 ctags 方言的预期,以及使用 ctags 的编辑器是否期望这一点。但这仍然只是一个猜测,我不确定。

0 投票
1 回答
70 浏览

tags - Universal-ctags 可以在输出中生成一个标志,描述标签的种类吗?

我想在我的工具中显示一种解析 TAGS 文件的标签。即:在我使用该工具显示的某些列表中的标签标识符之后附加“[func]”、“[macro]”、“[var]”等。

Universal-Ctags 可以识别标签类型并将其存储到输出文件中吗?如果是,如何运行它才能发生这种情况?

0 投票
0 回答
295 浏览

visual-studio-code - 在 VS Code 中使用 ctags 的问题,即使存在扩展

我曾经在我的项目中使用 Vim 编辑器,我有单独的 Perl 脚本为我生成标签文件。

现在我想在处理同一个项目时使用 VS Code,除了我还希望能够使用标签导航到其他文件中定义的不同功能。我尝试在 VSCode 中安装 Exhuberant Ctags 扩展,还下载了 exhuberant 标签并添加到环境变量的 PATH 中。

我仍然无法在 vim 编辑器中转到函数定义,我可以通过按 Ctrl-] 跳转到与所选文本匹配的标签来做到这一点。安装此扩展程序后如何导航?

0 投票
1 回答
290 浏览

vim - c++ 中带有 vim 的通用 ctags

我最近开始研究一个庞大的 c++ 代码库,但我无法正确使用 ctags(universal-ctags)。每当我对一个方法执行CTRL+]时,它都会跳转到命名空间定义。但我希望它跳转到光标下的方法的定义。

我使用以下内容生成了标签文件:

我真的很感激任何关于这个的帮助,或者有没有更好的方法来导航 ctags 以外的 c++ 代码。