最近、私はあきらめましTaglist
たTagbar
。Tagbar
PHPを除くすべての言語で期待どおりに機能します。メソッドと変数をそれぞれのスコープに表示するのではなく、クラス、メソッド、変数をそれぞれのカテゴリに一覧表示します。
ctags
PHPのサポートが不十分であることがわかりました。
PHPを改善ctags
してサポートする方法はありますか?Tagbar's
私はある種のハックや微調整、またはその他の方法を探しています。
構文解析バックエンドとしてPHP_Parserを使用して、phpctagsと呼ばれるツールを使用してctags互換のインデックスファイルを生成し、 tagbar-phpctagsと呼ばれるタグバーのアドオンプラグインを使用してタグバーのPHPサポートを強化しました。
関数に割り当てられたローカル変数でさえ、メソッドとプロパティは、アクセス情報と同様に、独自のスコープにリストされるようになりました。
多分これらは役立つかもしれません。
残念ながら、これに対する簡単な答えはありません。ctags PHPパーサーは正規表現を使用するだけであり、その結果(お気づきのとおり)、スコープのサポートが欠落しています。
適切なスコープサポートを機能させるには、2つの方法があります。誰かがctagsの実際の再帰パーサーモジュール、またはctags互換形式でタグを出力できる他のプログラムを作成する必要があります。これは理論的にはPHPで記述できるため、簡単になる可能性があります。おそらく、ASTへのアクセスを可能にするいくつかの機能がすでに利用可能であり、正しい形式で印刷する必要があります。しかし、誰かがそうするまで、タグバーにPHPスコープを適切に表示する実際の方法はありません。これは、ctagsが渡す情報に依存する必要があるためです。