我想在我正在处理的 Assembler 项目上生成标签,但 ctags-5.6 似乎不理解汇编程序的宏定义。有没有办法解释 ctags 使用什么模式来确定标签类型?
谢谢。标记
至少关于气体宏处理 Universal-ctags( https://ctags.io ) 得到了很好的改进。
(通用-ctags)
[jet@localhost wan]$ ~/var/ctags/ctags -x -o - wanxlfw.S | grep macro
memcpy macro 148 wanxlfw.S .macro memcpy src, dest, len // len must be < 65536 bytes
memcpy_from_pci macro 126 wanxlfw.S .macro memcpy_from_pci src, dest, len // len must be < 8 MB
memcpy_from_pci macro 168 wanxlfw.S .macro memcpy_from_pci src, dest, len
memcpy_to_pci macro 136 wanxlfw.S .macro memcpy_to_pci src, dest, len
memcpy_to_pci macro 173 wanxlfw.S .macro memcpy_to_pci src, dest, len
wait_for_command macro 180 wanxlfw.S .macro wait_for_command
(Exuberant-ctags)
[jet@localhost wan]$ ctags -x -o - wanxlfw.S | grep macro
Exuberant-ctags 什么也没捕捉到。
您需要一种为 Assembler 生成标签数据库的方法。格式很简单,见:help tags-file-format
。默认标签程序Exuberant Ctags可以使用正则表达式( --langmap
, --regex
) 进行扩展,但这可能只会产生对复杂语言的近似解析。
更好地为它编写/搜索专用的可执行文件。(有先例,例如Java 的jtags,许多标签侧边栏插件也可以配置为使用自定义标签程序。)