Поддержка 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
Другие вопросы по тегам