Джефф, я попробовал ваш код, но он не работает для меня с синтаксисом использовать. Это может быть проблема с версией? Я использую exuberant ctags версии 5.8.
Я также немного изменил регулярное выражение, потому что кавычки являются необязательными, и вы можете разрешить пробелы (но ничего больше), предшествующие ключевому слову «есть».
Вот что сработало для меня. Я создал файл $ HOME/.ctags (не было еще нет, в противном случае просто добавьте к нему) с помощью следующей строки:
--regex-perl=/^\s*has\s+['"]?([0-9a-zA-Z_]+)/\1/a,attribute/
Затем добавляют строку в .vimrc, как вы предложили
let tlist_perl_settings='perl;c:constant;l:label;p:package;s:subroutine;a:attribute'
Теперь он перечисляет мои атрибуты в модулях Moose.
Кроме того, я считаю, это также полезно иметь информацию о родительском классе, роли и используемые модули отображаются в taglist, так вот мой полный $ HOME/файл .ctags:
--regex-perl=/^\s*has\s+['"]?([0-9a-zA-Z_]+)/\1/a,attribute/
--regex-perl=/^\s*with\s+(['"])(.+)\1/\2/r,role/
--regex-perl=/^\s*extends\s+(['"])(.+)\1/\2/e,extends/
--regex-perl=/^\s*use\s+([^ ;]+)/\1/u,use/
и это то, что я имею в .vimrc (вы можете изменить порядок тегов в taglist, просто изменив порядок в tlist_par_settings):
let tlist_perl_settings='perl;u:use;p:package;r:role;e:extends;c:constant;a:attribute;s:subroutine;l:label'
let Tlist_Show_One_File = 1
из-за дополнительного контента я считаю полезным использовать опцию Tlist_Show_One_File , который заставляет taglist показывать только теги текущий выбранный файл.
Чтобы временно скрыть некоторые теги, вы всегда можете переместить курсор на имя тега и нажать «zc» (и «zo», чтобы снова открыть).
MooseX :: AttributeHelpers устарел; использовать Moose :: Meta :: Attribute :: Native :: Trait :: *. – Ether
Спасибо. Я знал это, но это «устаревший» код. ;) –