Как сгруппировать подпрограммы с пакетами в тэге vim для Perl?

В течение некоторого времени я использовал Perl с Vim сейчас. До этого я использовал IntelliJ с плагином для Perl. Единственное, чего мне не хватает, - это другого представления в теге vim. Я настроил его для работы с универсальными ctags, и он показывает мне категории для пакетов, подпрограмм и констант. Но с примером файла сценария, который имеет три пакета, где у каждого пакета есть метод create(), все эти методы отображаются в категории "Подпрограммы". И названия пакетов все отображаются под "Пакеты". Вот и все. Это очень плоский вид.

То, что я хотел бы иметь (в дополнение или в качестве замены) представление дерева, где у меня есть все методы, принадлежащие пакету, прикрепленному к нему. Но я не мог заставить его работать до сих пор:-(Я был бы признателен за любые идеи о том, как я должен настроить tagbar, чтобы получить более древовидное представление в Perl.

1 ответ

Я считаю, что ваши теги не являются полностью квалифицированными, что приводит к тому, что все выглядит плоско. Вы должны генерировать ваши теги perl с флагом --extra=q; например:

ctags -f tags --recurse --totals \ 
--exclude=blib --exclude=.svn \ 
--exclude=.git --exclude='*~' \ 
--extra=q \ 
--languages=Perl \ 
--langmap=Perl:+.t

Кроме того, не забудьте добавить двоеточие в список символов ключевых слов в вашем.vimrc, чтобы вы могли выполнить завершение в Module::Names:

set iskeyword+=:

Примечание. Я еще не использовал универсальные ctags, поэтому не могу подтвердить, что это ваша проблема, но я проверил их документацию ( http://docs.ctags.io/en/latest/news.html?highlight=extra%3Dq), и этот флаг все еще используется и НЕ включен по умолчанию.

Другие вопросы по тегам