Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置CTAG来索引PHP名称空间及其别名?_Php_Vim_Namespaces_Exuberant Ctags - Fatal编程技术网

如何配置CTAG来索引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名称空间时,我处理的代码使用大量名称空间别名,例如

<?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看起来很有趣。感谢您用名称空间分隔符捕获语法错误。