Folding in VIM fixed for Vala language.

This commit is contained in:
Kolan Sh 2013-01-11 18:25:37 +04:00
parent 19c3492a6f
commit 8f20345e05
1 changed files with 32 additions and 6 deletions

View File

@ -3,7 +3,8 @@
" Maintainers: Emmanuele Bassi <ebassi@gnome.org> " Maintainers: Emmanuele Bassi <ebassi@gnome.org>
" Hans Vercammen <hveso3@gmail.com> " Hans Vercammen <hveso3@gmail.com>
" pancake <pancake@nopcode.org> " pancake <pancake@nopcode.org>
" Last Change: 2009-10-28 " Sebastian Reichel <sre@ring0.de>
" Last Change: 2012-02-19
" Filenames: *.vala *.vapi " Filenames: *.vala *.vapi
" "
" REFERENCES: " REFERENCES:
@ -13,6 +14,9 @@
" - validate code attributes " - validate code attributes
" - better error checking for known errors " - better error checking for known errors
" - full support for valadoc " - full support for valadoc
"
" add vala in /usr/share/vim/vim73/scripts.vim below ruby
" to have shebang support
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -68,7 +72,7 @@ if exists("vala_comment_strings")
syn cluster valaCommentStringGroup contains=valaCommentString,valaCharacter,valaNumber syn cluster valaCommentStringGroup contains=valaCommentString,valaCharacter,valaNumber
syn region valaCommentL start="//" end="$" keepend contains=@valaCommentGroup,valaComment2String,valaCharacter,valaNumber,valaSpaceError,@Spell syn region valaCommentL start="//" end="$" keepend contains=@valaCommentGroup,valaComment2String,valaCharacter,valaNumber,valaSpaceError,@Spell
syn region valaComment matchgroup=valaCommentStart start="/\*" end="\*/" contains=@valaCommentGroup,@valaCommentStringGroup,valaCommentStartError,valaSpaceError,@Spell extend syn region valaComment matchgroup=valaCommentStart start="/\*" end="\*/" contains=@valaCommentGroup,@valaCommentStringGroup,valaCommentStartError,valaSpaceError,@Spell extend fold
if !exists("vala_ignore_valadoc") if !exists("vala_ignore_valadoc")
syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" keepend contains=@valaCommentGroup,@valaDocCommentGroup,@valaCommentStringGroup,valaCommentStartError,valaSpaceError,@Spell syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" keepend contains=@valaCommentGroup,@valaDocCommentGroup,@valaCommentStringGroup,valaCommentStartError,valaSpaceError,@Spell
endif endif
@ -79,6 +83,17 @@ else
syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" keepend contains=@valaCommentGroup,@valaDocCommentGroup,valaCommentStartError,valaSpaceError,@Spell syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" keepend contains=@valaCommentGroup,@valaDocCommentGroup,valaCommentStartError,valaSpaceError,@Spell
endif endif
endif endif
syn region valaPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1
syn match valaPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
" Comment if 0 blocks (ported from c.vim)
if !exists("vala_no_if0")
syn region valaCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=valaCppOut2 fold
syn region valaCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=valaSpaceError,valaCppSkip
syn region valaCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=valaSpaceError,valaCppSkip
endif
" match comment errors " match comment errors
syntax match valaCommentError display "\*/" syntax match valaCommentError display "\*/"
syntax match valaCommentStartError display "/\*"me=e-1 contained syntax match valaCommentStartError display "/\*"me=e-1 contained
@ -126,6 +141,9 @@ else
endif endif
exec "syn sync ccomment valaComment minlines=" . b:vala_minlines exec "syn sync ccomment valaComment minlines=" . b:vala_minlines
" code folding
syn region valaBlock start="{" end="}" transparent fold
" The default highlighting. " The default highlighting.
hi def link valaType Type hi def link valaType Type
hi def link valaStorage StorageClass hi def link valaStorage StorageClass
@ -166,6 +184,14 @@ hi def link valaNumber Number
hi def link valaUnicodeNumber SpecialChar hi def link valaUnicodeNumber SpecialChar
hi def link valaUnicodeSpecifier SpecialChar hi def link valaUnicodeSpecifier SpecialChar
hi def link valaPreCondit PreCondit
if !exists("vala_no_if0")
hi def link valaCppSkip valaCppOut
hi def link valaCppOut2 valaCppOut
hi def link valaCppOut Comment
endif
let b:current_syntax = "vala" let b:current_syntax = "vala"
let &cpo = s:vala_cpo_save let &cpo = s:vala_cpo_save