任何人都可以帮我在tagbar vim插件中添加systemverilog语言支持。
我试过以下的东西,但它对我不起作用
1)创建〜/ .ctags并从https://github.com/shaohao/config.d/blob/master/ctags
复制代码2)mkdir ftplugin到〜/ .vim并从https://github.com/shaohao/vimfiles/blob/master/bundle/verilog_systemverilog/ftplugin/systemverilog.vim添加systemverilog.vim
3)cd到项目目录并运行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
但是当我在gvim中打开SV文件并使用时:TagbarToggle标签栏窗口是空白的:(
请帮忙
答案 0 :(得分:1)
背景:TagBar不会使用您的tags
文件,它会查询ctags
并直接从stdout
读取其输出。
我认为问题在于--langmap
中~/.ctags
的定义方式。 AFAIK,昏迷用于分离langmaps,而不同的扩展只是一个接一个地放在没有分隔符的地方:
--langmap=foo:.foo.fo.oo,bar:.bar.ba
我认为~/.ctags
文件的第2行应该如下所示:
--langmap=systemverilog:.sv.svh.svp
答案 1 :(得分:1)
我已经介绍了我在Github提供的verilog_systemverilog vim插件的一些改进。如果您使用this开发版本的exuberante-ctags以及我的vim插件和以下Tagbar配置,您应该获得正确的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'
\ },
\ }