当使用PHP名称空间时,我所使用的代码使用大量的名称空间别名。
<?php
namespace foo;
use bar\baz\qux as bazQux;
...
$a = new bazQux();是否可以配置Exuberant Ctag来索引这些命名空间别名的使用,这样我就可以直接从使用别名的行(上面的实例化)跳到实际的类了吗?如果这是不可能的,那么最好的妥协是什么呢?
我在某个地方看到了一个尚未集成的ctag修补程序,用于PHP支持的PHP标记程序,而不是当前基于regex的实现;不过,如果可能的话,我希望继续使用库存ctag,而不是自己修补和编译版本。
发布于 2013-10-28 19:07:47
发布于 2017-04-27 19:44:59
我不太了解php,但我想
use bar/baz/qux as bazQux;应该是
use bar\baz\qux as bazQux;在替换/用\Universal(https://ctags.io)替换后,可以很好地捕获bazQux:
[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发布于 2015-06-30 12:06:47
对于那些没有等待的人来说,有解决的办法:
您可以为ViM:https://github.com/shawncplus/phpcomplete.vim尝试改进的PHP。
这个项目还支持诸如“使用”关键字和名称空间之类的东西,但不幸的是,它依赖于补丁版本的CTags。
下面是如何准备支持名称空间的ctag版本的说明:https://github.com/shawncplus/phpcomplete.vim/wiki/Patched-ctags
我知道这不是一种braindead解决方案,它需要您自己编写ctag,但它对我来说非常有效:)
https://stackoverflow.com/questions/18374519
复制相似问题