首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ctag配置为索引PHP名称空间及其别名?

如何将ctag配置为索引PHP名称空间及其别名?
EN

Stack Overflow用户
提问于 2013-08-22 07:47:27
回答 3查看 2.6K关注 0票数 11

当使用PHP名称空间时,我所使用的代码使用大量的名称空间别名。

代码语言:javascript
复制
<?php
namespace foo;

use bar\baz\qux as bazQux;

...

$a = new bazQux();

是否可以配置Exuberant Ctag来索引这些命名空间别名的使用,这样我就可以直接从使用别名的行(上面的实例化)跳到实际的类了吗?如果这是不可能的,那么最好的妥协是什么呢?

我在某个地方看到了一个尚未集成的ctag修补程序,用于PHP支持的PHP标记程序,而不是当前基于regex的实现;不过,如果可能的话,我希望继续使用库存ctag,而不是自己修补和编译版本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 19:07:47

这是官方的变更:http://ctags.sourceforge.net/news.html

他们似乎还没有合并这个补丁:

id=30749245

因此,我认为您无法找到具有php命名空间支持的预构建包。

票数 4
EN

Stack Overflow用户

发布于 2017-04-27 19:44:59

我不太了解php,但我想

代码语言:javascript
复制
use bar/baz/qux as bazQux;

应该是

代码语言:javascript
复制
use bar\baz\qux as bazQux;

在替换/用\Universal(https://ctags.io)替换后,可以很好地捕获bazQux:

代码语言:javascript
复制
[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
票数 2
EN

Stack Overflow用户

发布于 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,但它对我来说非常有效:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18374519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档