Reads tag files generated by universal ctags

0.0.3 2020-11-25 03:55 UTC

This package is auto-updated.

Last update: 2024-04-25 13:02:51 UTC


README

Build Status PHPStan Enabled

This library provides support for reading tag files generated by various versions of Ctags, including Universal and Exuberant Ctags.

Installation

composer require michaeljoelphillips/ctags-php

Usage

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);