diff --git a/autoload/tagbar/prototypes/typeinfo.vim b/autoload/tagbar/prototypes/typeinfo.vim index 67dbbca..1ed9588 100644 --- a/autoload/tagbar/prototypes/typeinfo.vim +++ b/autoload/tagbar/prototypes/typeinfo.vim @@ -15,7 +15,8 @@ endfunction " s:getKind() {{{1 function! s:getKind(kind) abort dict - let idx = self.kinddict[a:kind] + "let idx = self.kinddict[a:kind] + let idx = has_key(self.kinddict, a:kind) ? self.kinddict[a:kind] : -1 return self.kinds[idx] endfunction diff --git a/autoload/tagbar/sorting.vim b/autoload/tagbar/sorting.vim index 2d24ecb..b03faff 100644 --- a/autoload/tagbar/sorting.vim +++ b/autoload/tagbar/sorting.vim @@ -21,6 +21,12 @@ endfunction function! s:compare_by_kind(tag1, tag2) abort let typeinfo = s:compare_typeinfo + if !has_key(typeinfo.kinddict, a:tag1.fields.kind) + return -1 + endif + if !has_key(typeinfo.kinddict, a:tag2.fields.kind) + return 1 + endif if typeinfo.kinddict[a:tag1.fields.kind] <# \ typeinfo.kinddict[a:tag2.fields.kind] return -1