我想在我的工具中显示一种解析 TAGS 文件的标签。即:在我使用该工具显示的某些列表中的标签标识符之后附加“[func]”、“[macro]”、“[var]”等。
Universal-Ctags 可以识别标签类型并将其存储到输出文件中吗?如果是,如何运行它才能发生这种情况?
我想在我的工具中显示一种解析 TAGS 文件的标签。即:在我使用该工具显示的某些列表中的标签标识符之后附加“[func]”、“[macro]”、“[var]”等。
Universal-Ctags 可以识别标签类型并将其存储到输出文件中吗?如果是,如何运行它才能发生这种情况?
如果您指定 -e 选项,ctags 会生成一个 TAGS 文件。TAGS 文件不包含类型信息。
如果不指定 -e 选项,ctags 会生成一个包含类型信息的标记文件。您的工具可以利用这些信息。
$ cat input.py
def f():
pass
v = []
$ ./ctags --fields=+K input.py
$ cat tags
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROC_CWD /home/jet/var/ctags-github/ //
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 5.9.0 /p5.9.20210314.0/
f input.py /^def f():$/;" function
v input.py /^v = []$/;" variable
如果只想打印标识符和类型的名称,可以使用 ctags 的 -x 选项:
$ ./ctags --_xformat='%{name} [%{kind}]' -x -o - --fields=+K input.py
f [function]
v [variable]