我正在编辑使用Moose的软件包,我想知道是否有一个插件可以让Moose属性出现在Tag List中.
例如,在以下代码中,属性选项未显示在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文件来告诉taglist插件有关新标记类型的信息:
let tlist_perl_settings='perl;c:constant;l:label;p:package;s:subroutine;a:attribute'