tagbar/syntax/tagbar.vim

67 lines
2.6 KiB
VimL
Raw Normal View History

" File: tagbar.vim
" Description: Tagbar syntax settings
" Author: Jan Larres <jan@majutsushi.net>
" Licence: Vim licence
" Website: https://preservim.github.io/tagbar
2017-01-09 12:26:17 +08:00
" Version: 2.7
2011-07-15 13:34:47 +08:00
scriptencoding utf-8
2011-06-18 14:54:53 +08:00
if exists('b:current_syntax')
2013-04-24 07:33:30 +08:00
finish
endif
2013-04-24 07:33:30 +08:00
let s:ics = escape(join(g:tagbar_iconchars, ''), ']^\-')
let s:pattern = '\(^[' . s:ics . '] \?\)\@3<=[^-+: ]\+[^:]\+$'
2011-12-22 13:06:48 +08:00
execute "syntax match TagbarKind '" . s:pattern . "'"
2011-03-28 18:02:29 +08:00
2013-04-24 07:33:30 +08:00
let s:pattern = '\(\S\@<![' . s:ics . '][-+# ]\?\)\@<=[^*(]\+\(\*\?\(([^)]\+)\)\? :\)\@='
2011-12-22 13:06:48 +08:00
execute "syntax match TagbarScope '" . s:pattern . "'"
2011-03-28 18:02:29 +08:00
let s:pattern = '\S\@<![' . s:ics . ']\([-+# ]\?\)\@='
2011-12-22 13:06:48 +08:00
execute "syntax match TagbarFoldIcon '" . s:pattern . "'"
2011-03-26 22:32:31 +08:00
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=+\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityPublic '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=#\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityProtected '" . s:pattern . "'"
let s:pattern = '\(\S\@<![' . s:ics . ' ]\)\@<=-\([^-+# ]\)\@='
execute "syntax match TagbarVisibilityPrivate '" . s:pattern . "'"
2011-12-22 13:06:48 +08:00
unlet s:pattern
2013-08-22 13:01:19 +08:00
syntax match TagbarHelp '^".*' contains=TagbarHelpKey,TagbarHelpTitle
syntax match TagbarHelpKey '" \zs.*\ze:' contained
syntax match TagbarHelpTitle '" \zs-\+ \w\+ -\+' contained
syntax match TagbarNestedKind '^\s\+\[[^]]\+\]$'
syntax match TagbarType ' : \zs.*' contains=TagbarTagLineN
syntax match TagbarTagLineN '\s\+\[[0-9]\+\]\(\s\+\|$\)'
syntax match TagbarSignature '\(\<operator *( *) *\)\?\zs(.*)\ze'
syntax match TagbarPseudoID '\*\ze :'
2011-03-26 22:32:31 +08:00
2013-08-22 13:01:19 +08:00
highlight default link TagbarHelp Comment
highlight default link TagbarHelpKey Identifier
highlight default link TagbarHelpTitle PreProc
highlight default link TagbarKind Identifier
highlight default link TagbarNestedKind TagbarKind
highlight default link TagbarScope Title
highlight default link TagbarType Type
highlight default link TagbarTagLineN Comment
highlight default link TagbarSignature SpecialKey
highlight default link TagbarPseudoID NonText
highlight default link TagbarFoldIcon Statement
highlight default link TagbarHighlight Search
highlight default TagbarAccessPublic guifg=Green ctermfg=Green
highlight default TagbarAccessProtected guifg=Blue ctermfg=Blue
highlight default TagbarAccessPrivate guifg=Red ctermfg=Red
highlight default link TagbarVisibilityPublic TagbarAccessPublic
highlight default link TagbarVisibilityProtected TagbarAccessProtected
highlight default link TagbarVisibilityPrivate TagbarAccessPrivate
let b:current_syntax = 'tagbar'
2011-07-15 13:34:47 +08:00
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1