我正在编辑使用Moose的软件包,我想知道是否有一个用于使Moose属性显示在“标记列表”中的插件。

例如,在下面的代码中,属性options没有显示在Tag_List中,但是print_out_site出现了:

use Moose;
use MooseX::AttributeHelpers;

...

has 'options' => (
    metaclass => 'Collection::Hash',
    isa       => 'HashRef[Str]',
    is        => 'ro',
    provides  => {
        exists => 'exists',
        get    => 'get',
        set    => 'set',
    },
);

...

sub print_out_site {
    my $self = shift;
    my $key  = shift;
    $self->fasta_out_fh->print(">", $key, "\n");
    $self->fasta_out_fh->print($self->sites->{$key}, "\n");
}

最佳答案

添加行

--regex-perl=/has '(.*)' => \(/\1/a,attribute,moose attributes/

到〜/.ctags,它应该会显示出来。您可能需要调整正则表达式,以避免其他文件中的虚假匹配,或适应其他文件中属性声明的不同格式。

这扩展了ctags,以便在解析perl文件时根据正则表达式检测另一种类型的标签。

然后,需要通过将其添加到vimrc文件中来告知标签列表插件有关新标签类型的信息:
let tlist_perl_settings='perl;c:constant;l:label;p:package;s:subroutine;a:attribute'

10-08 19:58