如何配置CTAG来索引PHP名称空间及其别名?
使用PHP名称空间时,我处理的代码使用大量名称空间别名,例如如何配置CTAG来索引PHP名称空间及其别名?,php,vim,namespaces,exuberant-ctags,Php,Vim,Namespaces,Exuberant Ctags,使用PHP名称空间时,我处理的代码使用大量名称空间别名,例如 <?php namespace foo; use bar\baz\qux as bazQux; ... $a = new bazQux(); 这是官方的变更日志: 它们似乎尚未合并此修补程序: 因此,我认为您找不到支持php名称空间的预构建包。对于那些不等待的人,有一个解决方案: 您可以尝试改进的PHP omni complete for ViM: 这个项目还支持“use”关键字和名称空间,但不幸的是,它依赖于CTA
<?php
namespace foo;
use bar\baz\qux as bazQux;
...
$a = new bazQux();
这是官方的变更日志:
它们似乎尚未合并此修补程序:
因此,我认为您找不到支持php名称空间的预构建包。对于那些不等待的人,有一个解决方案:
您可以尝试改进的PHP omni complete for ViM:
这个项目还支持“use”关键字和名称空间,但不幸的是,它依赖于CTAG的补丁版本
以下是如何准备支持名称空间的ctags版本的说明:
我知道这不是一个死脑筋的解决方案,它需要你自己编译CTAG,这对我来说非常有效:)我对php不太了解,但我想
use bar/baz/qux as bazQux;
应该是
use bar\baz\qux as bazQux;
替换/with\Universal-ctags()后,可以很好地捕获Bazzux:
[jet@localhost]~/var/ctags% cat foo.php
cat foo.php
<?php
namespace foo;
use bar\baz\qux as bazQux;
[jet@localhost]~/var/ctags% ./ctags -o - foo.php
./ctags -o - foo.php
bazQux foo.php /^use bar\\baz\\qux as bazQux;$/;" a namespace:foo typeref:unknown:bar\\baz\\qux
foo foo.php /^namespace foo;$/;" n
[jet@localhost]~/var/ctags%cat foo.php
cat foo.php
我怀疑你是对的,真可惜。看起来ctags不再被积极维护;上一次犯罪发生在11个月前。很遗憾,这个PHP解析器补丁已经等待了这么长时间。是一个已更新php解析器的fork。它可能会起作用。它不会回答你的问题(它不帮助类间导航),但我最近发现了phpctags,如果你也使用vim tagbar插件,这是非常有用的:@Lambart谢谢你的信息;phpctags看起来很有趣。感谢您用名称空间分隔符捕获语法错误。