Как сгруппировать подпрограммы с пакетами в тэге 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), и этот флаг все еще используется и НЕ включен по умолчанию.