From 87d293206b0dbac7ef8b8e3a12c3698da6f7ad9c Mon Sep 17 00:00:00 2001 From: Ingo Karkat Date: Fri, 12 Apr 2013 20:48:08 +0200 Subject: [PATCH] Simplify conversion of g:tagbar_iconchars into regexp. With join() and escape(), the steps can be simplified. --- syntax/tagbar.vim | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) 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