1
0
mirror of https://github.com/gryf/tagbar.git synced 2025-12-17 11:30:28 +01:00

Get rid of unneeded type def field 'scopes'

This commit is contained in:
Jan Larres
2011-03-06 19:52:54 +13:00
parent e84bffb6df
commit b176c930d0
2 changed files with 27 additions and 60 deletions

View File

@@ -150,8 +150,6 @@ function! s:InitTypes()
" C {{{3
let type_c = {}
let type_c.ctagstype = 'c'
let type_c.scopes = ['enum', 'struct', 'union']
let type_c.sro = '::'
let type_c.kinds = [
\ 'd:macros',
\ 'p:prototypes',
@@ -164,6 +162,7 @@ function! s:InitTypes()
\ 'v:variables',
\ 'f:functions'
\ ]
let type_c.sro = '::'
let type_c.kind2scope = {
\ 'g' : 'enum',
\ 's' : 'struct',
@@ -178,14 +177,6 @@ function! s:InitTypes()
" C++ {{{3
let type_cpp = {}
let type_cpp.ctagstype = 'c++'
let type_cpp.scopes = [
\ 'namespace',
\ 'class',
\ 'struct',
\ 'enum',
\ 'union'
\ ]
let type_cpp.sro = '::'
let type_cpp.kinds = [
\ 'd:macros',
\ 'p:prototypes',
@@ -200,6 +191,7 @@ function! s:InitTypes()
\ 'm:members',
\ 'v:variables'
\ ]
let type_cpp.sro = '::'
let type_cpp.kind2scope = {
\ 'g' : 'enum',
\ 'n' : 'namespace',
@@ -218,14 +210,6 @@ function! s:InitTypes()
" C# {{{3
let type_cs = {}
let type_cs.ctagstype = 'c#'
let type_cs.scopes = [
\ 'namespace',
\ 'interface',
\ 'class',
\ 'struct',
\ 'enum'
\ ]
let type_cs.sro = '.'
let type_cs.kinds = [
\ 'd:macros',
\ 'f:fields',
@@ -240,6 +224,7 @@ function! s:InitTypes()
\ 'm:methods',
\ 'p:properties'
\ ]
let type_cs.sro = '.'
let type_cs.kind2scope = {
\ 'n' : 'namespace',
\ 'i' : 'interface',
@@ -278,12 +263,11 @@ function! s:InitTypes()
" Eiffel {{{3
let type_eiffel = {}
let type_eiffel.ctagstype = 'eiffel'
let type_eiffel.scopes = ['class', 'feature']
let type_eiffel.sro = '.' " Not sure, is nesting even possible?
let type_eiffel.kinds = [
\ 'c:classes',
\ 'f:features'
\ ]
let type_eiffel.sro = '.' " Not sure, is nesting even possible?
let type_eiffel.kind2scope = {
\ 'c' : 'class',
\ 'f' : 'feature'
@@ -296,14 +280,13 @@ function! s:InitTypes()
" Erlang {{{3
let type_erlang = {}
let type_erlang.ctagstype = 'erlang'
let type_erlang.scopes = ['module']
let type_erlang.sro = '.' " Not sure, is nesting even possible?
let type_erlang.kinds = [
\ 'm:modules',
\ 'd:macro definitions',
\ 'f:functions',
\ 'r:record definitions'
\ ]
let type_erlang.sro = '.' " Not sure, is nesting even possible?
let type_erlang.kind2scope = {
\ 'm' : 'module'
\ }
@@ -318,8 +301,6 @@ function! s:InitTypes()
" Improvements welcome!
let type_mxml = {}
let type_mxml.ctagstype = 'flex'
let type_mxml.scopes = ['class']
let type_mxml.sro = '.'
let type_mxml.kinds = [
\ 'v:global variables',
\ 'c:classes',
@@ -328,6 +309,7 @@ function! s:InitTypes()
\ 'f:functions',
\ 'x:mxtags'
\ ]
let type_mxml.sro = '.'
let type_mxml.kind2scope = {
\ 'c' : 'class'
\ }
@@ -338,8 +320,6 @@ function! s:InitTypes()
" Fortran {{{3
let type_fortran = {}
let type_fortran.ctagstype = 'fortran'
let type_fortran.scopes = ['module', 'program', 'function', 'subroutine']
let type_fortran.sro = '.' " Not sure, is nesting even possible?
let type_fortran.kinds = [
\ 'm:modules',
\ 'p:programs',
@@ -354,6 +334,7 @@ function! s:InitTypes()
\ 'n:namelists',
\ 'v:variables'
\ ]
let type_fortran.sro = '.' " Not sure, is nesting even possible?
let type_fortran.kind2scope = {
\ 'm' : 'module',
\ 'p' : 'program',
@@ -378,8 +359,6 @@ function! s:InitTypes()
" Java {{{3
let type_java = {}
let type_java.ctagstype = 'java'
let type_java.scopes = ['enum', 'interface', 'class']
let type_java.sro = '.'
let type_java.kinds = [
\ 'p:packages',
\ 'f:fields',
@@ -389,6 +368,7 @@ function! s:InitTypes()
\ 'c:classes',
\ 'm:methods'
\ ]
let type_java.sro = '.'
let type_java.kind2scope = {
\ 'g' : 'enum',
\ 'i' : 'interface',
@@ -445,8 +425,6 @@ function! s:InitTypes()
" Ocaml {{{3
let type_ocaml = {}
let type_ocaml.ctagstype = 'ocaml'
let type_ocaml.scopes = ['Module', 'class', 'type']
let type_ocaml.sro = '.' " Not sure, is nesting even possible?
let type_ocaml.kinds = [
\ 'M:modules or functors',
\ 'v:global variables',
@@ -458,6 +436,7 @@ function! s:InitTypes()
\ 'f:functions',
\ 'r:structure fields'
\ ]
let type_ocaml.sro = '.' " Not sure, is nesting even possible?
let type_ocaml.kind2scope = {
\ 'M' : 'Module',
\ 'c' : 'class',
@@ -503,8 +482,6 @@ function! s:InitTypes()
" Python {{{3
let type_python = {}
let type_python.ctagstype = 'python'
let type_python.scopes = ['class', 'function']
let type_python.sro = '.'
let type_python.kinds = [
\ 'i:imports',
\ 'c:classes',
@@ -517,6 +494,7 @@ function! s:InitTypes()
\ 'f' : 'function',
\ 'm' : 'function'
\ }
let type_python.sro = '.'
let type_python.scope2kind = {
\ 'class' : 'c',
\ 'function' : 'f'
@@ -532,14 +510,13 @@ function! s:InitTypes()
" Ruby {{{3
let type_ruby = {}
let type_ruby.ctagstype = 'ruby'
let type_ruby.scopes = ['class']
let type_ruby.sro = '.'
let type_ruby.kinds = [
\ 'm:modules',
\ 'c:classes',
\ 'f:methods',
\ 'F:singleton methods'
\ ]
let type_ruby.sro = '.'
let type_ruby.kind2scope = {
\ 'c' : 'class',
\ 'm' : 'class'
@@ -640,8 +617,6 @@ function! s:InitTypes()
" Why are variables 'virtual'?
let type_vera = {}
let type_vera.ctagstype = 'vera'
let type_vera.scopes = ['enum', 'class', 'virtual']
let type_vera.sro = '.' " Nesting doesn't seem to be possible
let type_vera.kinds = [
\ 'd:macros',
\ 'g:enums',
@@ -654,6 +629,7 @@ function! s:InitTypes()
\ 'v:variables',
\ 'p:programs'
\ ]
let type_vera.sro = '.' " Nesting doesn't seem to be possible
let type_vera.kind2scope = {
\ 'g' : 'enum',
\ 'c' : 'class',
@@ -1038,7 +1014,7 @@ function! s:ProcessFile(fname, ftype)
endif
endfor
if has_key(typeinfo, 'scopes') && !empty(typeinfo.scopes)
if has_key(typeinfo, 'kind2scope')
let scopedtags = []
let is_scoped = 'has_key(typeinfo.kind2scope, v:val.fields.kind) ||
\ has_key(v:val, "scope")'
@@ -1115,8 +1091,8 @@ function! s:ParseTagline(part1, part2, typeinfo)
" Make some information easier accessible
let taginfo.path = ''
let taginfo.fullpath = taginfo.name
if has_key(a:typeinfo, 'scopes')
for scope in a:typeinfo.scopes
if has_key(a:typeinfo, 'scope2kind')
for scope in keys(a:typeinfo.scope2kind)
if has_key(taginfo.fields, scope)
let taginfo.scope = scope
let taginfo.path = taginfo.fields[scope]