最近,我放弃了Taglist
Tagbar
。 Tagbar
可以正常工作,除了PHP之外的所有语言。
它将类,方法和变量列入各自的类别,而不是将方法和变量显示在各自的范围内。
我发现ctags
对PHP的支持不足。
有没有办法改善对PHP的ctags
和Tagbar's
支持?我正在为某种黑客或调整,或任何其他方式跳跃。
答案 0 :(得分:5)
我刚刚使用PHP_Parser作为语法解析后端编写了一个名为phpctags的工具来生成ctags兼容索引文件和一个名为tagbar-phpctags的标签栏的插件插件,以增强标签栏的PHP支持
方法和属性甚至在函数中分配的局部变量现在都可以在它们自己的范围内列出,以及它们的访问信息。
也许这些可能有所帮助。
答案 1 :(得分:2)
不幸的是,对此没有简单的答案。 ctags PHP解析器只使用正则表达式,结果 - 正如您所注意到的 - 缺少对范围的支持。
有两种方法可以使适当的范围支持工作:有人必须为ctags编写实际的递归解析器模块,或者以ctags兼容格式输出标签的其他程序。从理论上讲,这甚至可以用PHP编写,这可能会使它变得更容易 - 也许已经有一些功能允许访问AST,然后只需要以正确的格式打印出来。但是,直到有人这样做,我担心没有真正的方法可以在Tagbar中正确显示PHP范围,因为它必须依赖于ctags手中的信息。