问题标签 [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.
c - 如何为 linux C 开发设置 ctags?
我正在Linux下进行C开发。但是,我正在努力正确设置 ctags 以使用vim
. 它正确注册tags
文件并基于它提供完成。
我不确定获得“必要”的正确方法是什么。目前我有一些“精心挑选”的标题:
在第一步中,我只是放了与我相同的标题,#include ...
但错过了一些东西(比如/usr/include/bits/...
)。所以我添加了这些。
但我觉得这些年来,某个地方的某个人必须想出更好的解决方案。那么,这通常是如何完成的呢?
tags - 使用通用 ctags 支持编译 GNU Global
我正在尝试构建具有通用 ctags 支持的 GNU Global,但没有成功。有什么我遗漏的东西,或者我正在使用不兼容的 GNU Global 和 univeral-ctags 版本吗?我在 Ubuntu 18.04.2 LTS 上执行此操作(也在 Ubuntu 16.04 上测试过)
官方安装说明
其他相关信息
- https://stackoverflow.com/a/15169556/5518304
- https://gist.github.com/carakan/60496e0f05033417be2352419639fcc5
简而言之,我执行以下命令。
这似乎工作正常,并且ctags
可执行文件按预期构建标签文件。接下来,我尝试使用 GNU Global 手册(上面的链接)第 4.2 节中的说明安装 GNU Global。
ctags - ctags 将地址标记为行号
我正在创建一个 IDE,我希望实现跳转到定义。
我找到了完美的工具:ctags ( https://github.com/universal-ctags/ctags )
现在唯一的问题是 ctags 创建的标签文件看起来像这样:
QLineNumberArea 2point56mb.py /^class QLineNumberArea(QWidget):$/;" c
我理解格式:{tagname}Tab{tagfile}Tab{tagaddress}
所以据我了解::tagname
QLineNumberArea,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 将标签地址作为行号而不是搜索命令提供?
emacs - Universal Ctags 在用作 GNU 全局“后端”时是否会阻止参考查找?
在https://stackoverflow.com/a/39905971/257924我读到:
再次注意,如果您使用 Ctags 作为 Gtags 的解析器,您将失去处理 Gtags 否则会提供的引用(例如,变量使用、函数调用)的能力。从本质上讲,您用 Gtags 的参考跟踪来换取 Ctags 更强大的内置语言支持。
这是一个旧答案,所以现在,在 2019 年,使用 GNU Global 6.6.3 并使用--with-universal-ctags
.
vim - 如何使用通用 ctags 在标签栏中显示 case 语句
我使用非常长且复杂的状态机和记录类型编写 vhdl 代码。
我有两个问题:
1-标签栏显示记录和程序列表中的记录,但不显示架构。2-我想使用标签栏为 case 语句添加标签。
我将 Tagbar 为 vhdl 提供的内容添加到我的 init.vim 文件中。
我正在考虑使用正则表达式来执行此操作:找到 case 关键字并存储它的名称,然后找到每个 WHEN 并存储它,然后将它们列在存储的名称下,以便在 tagbar 中的 case 但我做不到。
像下面的例子:
macos - 通用 ctags YAML 支持
universal-ctags
我已经在我的 Mac 上安装了最新版本的。我想索引yml
文件,但运行ctags --list-languages
没有yml
列为支持的语言之一。但是,他们的文档说使用LibYaml
and支持 ymls AnsiblePlaybook libyaml
,并且这两个解析器是新添加的。
我怎样才能解决这个问题?我在互联网上搜索了很多,但显然,还没有人遇到过这个问题。
ctags - ctags:文件名下划线,源代码行为零:这是哪个变体?
在应用程序的源代码中,我看到多个标签文件,文件名用下划线代替,源行号或正则表达式地址用零代替。我不习惯 CTags,所以看了一下已知的不同格式,即原始 ctags、exuberant ctags 和 Universel ctags(还有一个通用 ctags 似乎有点不同)。除非我不幸地忽略了文档,否则我找不到关于此的声明。
以下是来自这些标签文件之一的示例:
有人知道这在任何已知的 ctags 变体中是否有效,如果是,是我忽略了文档,如果不是,这是这个变体,我在哪里可以阅读它的规范?
— 编辑 —</p>
我想这用于单词完成,但仍然想知道它是否符合 ctags 方言的预期,以及使用 ctags 的编辑器是否期望这一点。但这仍然只是一个猜测,我不确定。
tags - Universal-ctags 可以在输出中生成一个标志,描述标签的种类吗?
我想在我的工具中显示一种解析 TAGS 文件的标签。即:在我使用该工具显示的某些列表中的标签标识符之后附加“[func]”、“[macro]”、“[var]”等。
Universal-Ctags 可以识别标签类型并将其存储到输出文件中吗?如果是,如何运行它才能发生这种情况?
visual-studio-code - 在 VS Code 中使用 ctags 的问题,即使存在扩展
我曾经在我的项目中使用 Vim 编辑器,我有单独的 Perl 脚本为我生成标签文件。
现在我想在处理同一个项目时使用 VS Code,除了我还希望能够使用标签导航到其他文件中定义的不同功能。我尝试在 VSCode 中安装 Exhuberant Ctags 扩展,还下载了 exhuberant 标签并添加到环境变量的 PATH 中。
我仍然无法在 vim 编辑器中转到函数定义,我可以通过按 Ctrl-] 跳转到与所选文本匹配的标签来做到这一点。安装此扩展程序后如何导航?
vim - c++ 中带有 vim 的通用 ctags
我最近开始研究一个庞大的 c++ 代码库,但我无法正确使用 ctags(universal-ctags)。每当我对一个方法执行CTRL+]时,它都会跳转到命名空间定义。但我希望它跳转到光标下的方法的定义。
我使用以下内容生成了标签文件:
我真的很感激任何关于这个的帮助,或者有没有更好的方法来导航 ctags 以外的 c++ 代码。