diff --git a/.config/nvim/after/plugin/tagbar.vim b/.config/nvim/after/plugin/tagbar.vim new file mode 100644 --- /dev/null +++ b/.config/nvim/after/plugin/tagbar.vim @@ -0,0 +1,98 @@ +" adapted from https://gist.github.com/jbolila/7598018 +let g:tagbar_type_perl = { + \ 'ctagstype' : 'Perl', + \ 'kinds' : [ + \ 'p:packages:1:0', + \ 'u:uses:1:0', + \ 'r:requires:1:0', + \ 'e:extends', + \ 'w:roles', + \ 'o:ours:1:0', + \ 'c:constants:1:0', + \ 'f:formats:1:0', + \ 'a:attributes', + \ 'm:methods', + \ 's:subroutines', + \ 'x:modifier', + \ 'l:aliases', + \ 'd:pod:1:0', + \ ], + \ 'deffile' : stdpath("config") . '/tagbar/perl.cnf' +\ } + +let g:tagbar_type_elixir = { + \ 'ctagstype' : 'Elixir', + \ 'kinds' : [ + \ 'm:modules:1:0', + \ 'r:records', + \ 'f:functions', + \ 'a:macros', + \ 'o:operators', + \ 'p:protocols', + \ 'i:implementations', + \ 'd:delegates', + \ 'c:callbacks', + \ 'e:exceptions', + \ ], +\ } + +" https://github.com/jstemmer/gotags +let g:tagbar_type_go = { + \ 'ctagstype' : 'go', + \ 'kinds' : [ + \ 'p:package', + \ 'i:imports:1', + \ 'c:constants', + \ 'v:variables', + \ 't:types', + \ 'n:interfaces', + \ 'w:fields', + \ 'e:embedded', + \ 'm:methods', + \ 'r:constructor', + \ 'f:functions' + \ ], + \ 'sro' : '.', + \ 'kind2scope' : { + \ 't' : 'ctype', + \ 'n' : 'ntype' + \ }, + \ 'scope2kind' : { + \ 'ctype' : 't', + \ 'ntype' : 'n' + \ }, + \ 'ctagsbin' : 'gotags', + \ 'ctagsargs' : '-sort -silent' +\ } + +" https://github.com/wsdjeg/mdctags.rs +let g:tagbar_type_markdown = { + \ 'ctagsbin' : 'mdctags', + \ 'ctagsargs' : '', + \ 'sort' : 0, + \ 'kinds' : [ + \ 'a:h1:0:0', + \ 'b:h2:0:0', + \ 'c:h3:0:0', + \ 'd:h4:0:0', + \ 'e:h5:0:0', + \ 'f:h6:0:0', + \ ], + \ 'sro' : '::', + \ 'kind2scope' : { + \ 'a' : 'h1', + \ 'b' : 'h2', + \ 'c' : 'h3', + \ 'd' : 'h4', + \ 'e' : 'h5', + \ 'f' : 'h6', + \ }, + \ 'scope2kind' : { + \ 'h1' : 'a', + \ 'h2' : 'b', + \ 'h3' : 'c', + \ 'h4' : 'd', + \ 'h5' : 'e', + \ 'h6' : 'f', + \} +\}