From e22147a2d3ca4a73f8fac15d30a276fd9d7efd27 Mon Sep 17 00:00:00 2001 From: Jan Larres Date: Mon, 14 Feb 2011 17:37:34 +1300 Subject: [PATCH] Allow setting sort mode per type --- plugin/tagbar.vim | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/plugin/tagbar.vim b/plugin/tagbar.vim index 9b39f1b..351874d 100644 --- a/plugin/tagbar.vim +++ b/plugin/tagbar.vim @@ -1061,7 +1061,13 @@ function! s:ProcessFile(fname, ftype) let s:compare_typeinfo = typeinfo - if g:tagbar_sort + if has_key(typeinfo, 'sort') + if typeinfo.sort + call s:SortTags(fileinfo.tags, 's:CompareByKind') + else + call s:SortTags(fileinfo.tags, 's:CompareByLine') + endif + elseif g:tagbar_sort call s:SortTags(fileinfo.tags, 's:CompareByKind') else call s:SortTags(fileinfo.tags, 's:CompareByLine') @@ -1689,11 +1695,21 @@ function! s:ToggleSort() match none - let g:tagbar_sort = !g:tagbar_sort - let s:compare_typeinfo = s:known_types[fileinfo.ftype] - if g:tagbar_sort + if has_key(s:compare_typeinfo, 'sort') + let s:compare_typeinfo.sort = !s:compare_typeinfo.sort + else + let g:tagbar_sort = !g:tagbar_sort + endif + + if has_key(s:compare_typeinfo, 'sort') + if s:compare_typeinfo.sort + call s:SortTags(fileinfo.tags, 's:CompareByKind') + else + call s:SortTags(fileinfo.tags, 's:CompareByLine') + endif + elseif g:tagbar_sort call s:SortTags(fileinfo.tags, 's:CompareByKind') else call s:SortTags(fileinfo.tags, 's:CompareByLine')