Поддержка Systemverilog в плагине tagbar
Кто-нибудь может мне помочь добавить поддержку systemverilog языка в плагин vim tagbar.
Я пробовал ниже вещей, но это не работает для меня
1) Создал ~/.ctags и скопировал код с https://github.com/shaohao/config.d/blob/master/ctags
2) mkdir ftplugin в ~/.vim и добавьте systemverilog.vim из https://github.com/shaohao/vimfiles/blob/master/bundle/verilog_systemverilog/ftplugin/systemverilog.vim
3) перейдите в каталог проекта и запустите команду ctags -R *.
ctags: Warning: Unknown language specified in "langmap" option
Ниже приведены некоторые результаты ctags
ctags --list-languages
ctags: Warning: Unknown language specified in "langmap" option
.
.
systemverilog
ctags --list-kinds=systemverilog
ctags: Warning: Unknown language specified in "langmap" option
e clocking
i constraint
l covergroup
o class
t function
A interface
G module
J package
M program
W task
Но все же, когда я открываю SV-файл в gvim и использую:TagbarToggle окно тэга пустое:(
Пожалуйста помоги
2 ответа
Я представил некоторые улучшения для плагина verilog_systemverilog vim, который я сделал доступным на Github. У вас должна быть надлежащая поддержка Tagbar, если вы используете эту версию exuberante-ctags для разработки вместе с моим плагином vim и следующей конфигурацией Tagbar:
let g:tagbar_type_verilog_systemverilog = {
\ 'ctagstype' : 'SystemVerilog',
\ 'kinds' : [
\ 'b:blocks:1:1',
\ 'c:constants:1:0',
\ 'e:events:1:0',
\ 'f:functions:1:1',
\ 'm:modules:0:1',
\ 'n:nets:1:0',
\ 'p:ports:1:0',
\ 'r:registers:1:0',
\ 't:tasks:1:1',
\ 'A:assertions:1:1',
\ 'C:classes:0:1',
\ 'V:covergroups:0:1',
\ 'I:interfaces:0:1',
\ 'M:modport:0:1',
\ 'K:packages:0:1',
\ 'P:programs:0:1',
\ 'R:properties:0:1',
\ 'T:typedefs:0:1'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 'm' : 'module',
\ 'b' : 'block',
\ 't' : 'task',
\ 'f' : 'function',
\ 'C' : 'class',
\ 'V' : 'covergroup',
\ 'I' : 'interface',
\ 'K' : 'package',
\ 'P' : 'program',
\ 'R' : 'property'
\ },
\ }
Фон: TagBar не будет использовать ваш tags
файл, он запрашивает ctags
и читать его вывод непосредственно из stdout
,
Я считаю, что проблема в том, как --langmap
определяется в вашем ~/.ctags
, AFAIK, кома используется для разделения langmaps, в то время как различные расширения просто помещаются одно за другим без разделителей:
--langmap=foo:.foo.fo.oo,bar:.bar.ba
Я думаю, что строка 2 вашего ~/.ctags
файл должен выглядеть так:
--langmap=systemverilog:.sv.svh.svp