" Vim syntax file " Language: Vala " Maintainers: Emmanuele Bassi " Hans Vercammen " pancake " Last Change: 2009-10-28 " Filenames: *.vala *.vapi " " REFERENCES: " [1] http://live.gnome.org/Vala " " TODO: Possibly when reaching vala 1.0 release " - validate code attributes " - better error checking for known errors " - full support for valadoc if exists("b:current_syntax") finish endif let s:vala_cpo_save = &cpo set cpo&vim " Types syn keyword valaType bool char double float size_t ssize_t string unichar void syn keyword valaType int int8 int16 int32 int64 long short syn keyword valaType uint uint8 uint16 uint32 uint64 ulong ushort " Storage keywords syn keyword valaStorage class delegate enum errordomain interface namespace struct " repeat / condition / label syn keyword valaRepeat break continue do for foreach return while syn keyword valaConditional else if switch assert " User Labels syn keyword valaLabel case default " Modifiers syn keyword valaModifier abstract const dynamic ensures extern inline internal override syn keyword valaModifier private protected public requires signal static virtual volatile weak syn keyword valaModifier async owned unowned " Constants syn keyword valaConstant false null true " Exceptions syn keyword valaException try catch finally throw " Unspecified Statements syn keyword valaUnspecifiedStatement as base construct delete get in is lock new out params ref sizeof set this throws typeof using value var yield " Comments syn cluster valaCommentGroup contains=valaTodo syn keyword valaTodo contained TODO FIXME XXX NOTE " valadoc Comments (ported from javadoc comments in java.vim) " TODO: need to verify valadoc syntax if !exists("vala_ignore_valadoc") syn cluster valaDocCommentGroup contains=valaDocTags,valaDocSeeTag syn region valaDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" syn match valaDocTags contained "@\(param\|exception\|throws\|since\)\s\+\S\+" contains=valaDocParam syn match valaDocParam contained "\s\S\+" syn match valaDocTags contained "@\(author\|brief\|version\|return\|deprecated\)\>" syn region valaDocSeeTag contained matchgroup=valaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=valaDocSeeTagParam syn match valaDocSeeTagParam contained @"\_[^"]\+"\|\|\(\k\|\.\)*\(#\k\+\((\_[^)]\+)\)\=\)\=@ extend endif " Comment Strings (ported from c.vim) if exists("vala_comment_strings") syn match valaCommentSkip contained "^\s*\*\($\|\s\+\)" syn region valaCommentString contained start=+L\=\\\@" syn match valaNumber display "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" syn match valaNumber display "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" syn match valaNumber display "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" " when wanted, highlight trailing white space if exists("vala_space_errors") if !exists("vala_no_trail_space_error") syn match valaSpaceError display excludenl "\s\+$" endif if !exists("vala_no_tab_space_error") syn match valaSpaceError display " \+\t"me=e-1 endif endif " when wanted, set minimum lines for comment syntax syncing if exists("vala_minlines") let b:vala_minlines = vala_minlines else let b:vala_minlines = 50 endif exec "syn sync ccomment valaComment minlines=" . b:vala_minlines " The default highlighting. hi def link valaType Type hi def link valaStorage StorageClass hi def link valaRepeat Repeat hi def link valaConditional Conditional hi def link valaLabel Label hi def link valaModifier StorageClass hi def link valaConstant Constant hi def link valaException Exception hi def link valaUnspecifiedStatement Statement hi def link valaUnspecifiedKeyword Keyword hi def link valaContextualStatement Statement hi def link valaCommentError Error hi def link valaCommentStartError Error hi def link valaSpecialError Error hi def link valaSpecialCharError Error hi def link valaSpaceError Error hi def link valaTodo Todo hi def link valaCommentL valaComment hi def link valaCommentStart valaComment hi def link valaCommentSkip valaComment hi def link valaComment Comment hi def link valaDocComment Comment hi def link valaDocTags Special hi def link valaDocParam Function hi def link valaDocSeeTagParam Function hi def link valaAttribute PreCondit hi def link valaCommentString valaString hi def link valaComment2String valaString hi def link valaString String hi def link valaVerbatimString String hi def link valaCharacter Character hi def link valaSpecialChar SpecialChar hi def link valaNumber Number hi def link valaUnicodeNumber SpecialChar hi def link valaUnicodeSpecifier SpecialChar let b:current_syntax = "vala" let &cpo = s:vala_cpo_save unlet s:vala_cpo_save " vim: ts=8