11

PHP名前空間を使用する場合、私が取り組んでいるコードは多数の名前空間エイリアスを使用します。

<?php
namespace foo;

use bar\baz\qux as bazQux;

...

$a = new bazQux();

これらの名前空間エイリアスの使用をインデックス化するように Exuberant Ctags を構成して、エイリアスが使用されている行 (上記のインスタンス化) から実際のクラスに直接ジャンプできるようにすることは可能ですか? それが不可能な場合、達成できる最善の妥協点は何ですか?

現在の正規表現ベースの実装の代わりに、PHP サポート用の PHP トークナイザーを使用する ctags 用のまだ統合されていないパッチをどこかで見たことがあります。ただし、自分でバージョンにパッチを適用してコンパイルするのではなく、可能であればストック ctags を引き続き使用したいと考えています。

4

3 に答える 3

4

これは公式の変更ログです: http://ctags.sourceforge.net/news.html

このパッチではまだマージされていないようです:

http://sourceforge.net/mailarchive/message.php?msg_id=30749245

したがって、php 名​​前空間をサポートするビルド済みパッケージを見つけることはできないと思います。

于 2013-10-28T19:07:47.440 に答える
1

漠然と待っていない人には、解決策があります。

ViM 用に改善された PHP omni complete を試すことができます: https://github.com/shawncplus/phpcomplete.vim

このプロジェクトは、"use" キーワードや名前空間などもサポートしていますが、残念ながら CTag のパッチが適用されたバージョンに依存しています。

名前空間をサポートする ctags バージョンを準備する方法は次のとおりです: https://github.com/shawncplus/phpcomplete.vim/wiki/Patched-ctags

私はそれが脳死の解決策ではないことを知っています.ctagsの独自のコンパイルで手を汚す必要がありますが、私にとっては完全に機能しました:)

于 2015-06-30T12:06:47.233 に答える