diff --git a/syntax/tagbar.vim b/syntax/tagbar.vim index df53682..34e2f69 100644 --- a/syntax/tagbar.vim +++ b/syntax/tagbar.vim @@ -11,29 +11,21 @@ if exists("b:current_syntax") finish endif -let s:ic = g:tagbar_iconchars[0] -if s:ic =~ '[]^\\-]' - let s:ic = '\' . s:ic -endif -let s:io = g:tagbar_iconchars[1] -if s:io =~ '[]^\\-]' - let s:io = '\' . s:io -endif - -let s:pattern = '\([' . s:ic . s:io . '] \?\)\@<=[^-+: ]\+[^:]\+$' +let s:ics= escape(join(g:tagbar_iconchars, ''), ']^\-') +let s:pattern = '\([' . s:ics . '] \?\)\@<=[^-+: ]\+[^:]\+$' execute "syntax match TagbarKind '" . s:pattern . "'" -let s:pattern = '\([' . s:ic . s:io . '][-+# ]\?\)\@<=[^*(]\+\(\*\?\(([^)]\+)\)\? :\)\@=' +let s:pattern = '\([' . s:ics . '][-+# ]\?\)\@<=[^*(]\+\(\*\?\(([^)]\+)\)\? :\)\@=' execute "syntax match TagbarScope '" . s:pattern . "'" -let s:pattern = '[' . s:ic . s:io . ']\([-+# ]\?\)\@=' +let s:pattern = '[' . s:ics . ']\([-+# ]\?\)\@=' execute "syntax match TagbarFoldIcon '" . s:pattern . "'" -let s:pattern = '\([' . s:ic . s:io . ' ]\)\@<=+\([^-+# ]\)\@=' +let s:pattern = '\([' . s:ics . ' ]\)\@<=+\([^-+# ]\)\@=' execute "syntax match TagbarVisibilityPublic '" . s:pattern . "'" -let s:pattern = '\([' . s:ic . s:io . ' ]\)\@<=#\([^-+# ]\)\@=' +let s:pattern = '\([' . s:ics . ' ]\)\@<=#\([^-+# ]\)\@=' execute "syntax match TagbarVisibilityProtected '" . s:pattern . "'" -let s:pattern = '\([' . s:ic . s:io . ' ]\)\@<=-\([^-+# ]\)\@=' +let s:pattern = '\([' . s:ics . ' ]\)\@<=-\([^-+# ]\)\@=' execute "syntax match TagbarVisibilityPrivate '" . s:pattern . "'" unlet s:pattern