This library provides support for reading tag files generated by various versions of Ctags, including Universal and Exuberant Ctags.
composer require michaeljoelphillips/ctags-php
You can filter tags using a predicate function, match tags similar to
readtags
, or list all tags. The result for each is a Generator
containing CTags\Tag
objects:
use CTags\Reader;
use CTags\Tag;
use Generator;
$reader = Reader::fromFile('tags', true);
$reader->listAll();
$reader->match('MyClass');
$reader->partialMatch('My');
$reader->filter(static function (Tag $tag) {
return $tag->name === 'MyClass' && $tag->fields['kind'] === 'c';
});
If reading the Universal Ctags extension fields is not necessary, you can exclude them for better performance:
use CTags\Reader;
$reader = Reader::fromFile('tags', false);