LoginSignup
2
2

More than 5 years have passed since last update.

自分でビルドしたphpctagsが動いてくれない件

Last updated at Posted at 2016-01-16

phpctagsとは

僕はつい先日、vimにtagbar-phpctagsを導入しました。
tagbarでexcuberant ctagsの代わりにphpctagsを使ってくれるものです。

phpctagsっていうのがこいつです。
https://github.com/vim-php/phpctags

exuberant ctagsが生成するタグ情報は正直ちょっと微妙です。
メソッドを関数として認識してしまったり、メンバ変数とローカル変数もいっしょくたにされたりします。少なくともデフォルトの状態では。

それをいい感じに生成してくれるのがphpctagsです。
phpctagsが吐き出してくれたタグ情報を利用すると...

Screenshot from 2016-01-16 21:16:40.png

こんな感じになります。

便利なんですが、phpctagsをビルドして、いざ動かすときにハマってしまったので残しておきます。

ビルド方法

簡単です。
まず、
1. phpctagsのレポジトリをクローンしてきて
2. composer updateして
3. makeコマンドを叩く
これだけです。
buildディレクトリにphpctags.pharができているかと思います。やったね!!

タグが生成されない問題

しかし...
php phpctags.phar hoge.php

動かないです。デバッグオプションをつけてみると、PHPParser_Parserクラスが見つかっていない模様。

composerで依存ライブラリは落としたはずだし、なんでだ?とドハマりいたしました。

原因・解決方法

PHP-Parserのバージョンが上がったことにより、クラスの命名が名前空間ベースになり、古いアンダーバー区切りのクラス名が使えなくなったことが原因でした。

解決方法としては、クローンしてきたphpctagsのなかのcomposer.jsonを書き換える感じになります。
書き換える内容については、こいつを見てください。

これで、古いバージョンのPHP-Parserが常に依存としてダウンロードされます。
書き換えたら
1. composer updateして、
2. make cleanして
3. make
です。

この修正を受け入れてもらうべく、レポジトリにissueとプルリクエストを投げたのですが、今のところ返信がありません。
コミットも去年で止まっているようですね...悲しいなぁ。

2016/1/17: プリクエストがmasterにマージされました!!

僕の他にハマってる方の参考になればと思います。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2