我正在编辑使用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'