summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2017-02-02 21:53:26 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2017-02-02 21:53:26 +0100
commitb7e2b0cad32cb2e806efd5c03984f098a1ad8c55 (patch)
treec7fed845ca58dad545dfe11f8578b69c71742ab7 /syntax
parentcc868aee51c3880f08832cca0bf1351334d61794 (diff)
downloadvim-polyglot-b7e2b0cad32cb2e806efd5c03984f098a1ad8c55.tar.gz
vim-polyglot-b7e2b0cad32cb2e806efd5c03984f098a1ad8c55.zip
Change vala provider to arrufat, closes #165
Diffstat (limited to 'syntax')
-rw-r--r--syntax/vala.vim45
1 files changed, 33 insertions, 12 deletions
diff --git a/syntax/vala.vim b/syntax/vala.vim
index 95836482..52359f87 100644
--- a/syntax/vala.vim
+++ b/syntax/vala.vim
@@ -6,8 +6,9 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
" Hans Vercammen <hveso3@gmail.com>
" pancake <pancake@nopcode.org>
" Sebastian Reichel <sre@ring0.de>
-" Last Change: 2012-02-19
-" Filenames: *.vala *.vapi
+" AdriĆ  Arrufat <adria.arrufat@protonmail.ch>
+" Last Change: 2016-10-20
+" Filenames: *.vala *.vapi *.valadoc
"
" REFERENCES:
" [1] http://live.gnome.org/Vala
@@ -17,7 +18,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
" - better error checking for known errors
" - full support for valadoc
"
-" add vala in /usr/share/vim/vim73/scripts.vim below ruby
+" add vala in /usr/share/vim/vim80/scripts.vim below ruby
" to have shebang support
if exists("b:current_syntax")
@@ -30,7 +31,7 @@ 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
+syn keyword valaType uchar uint uint8 uint16 uint32 uint64 ulong ushort
" Storage keywords
syn keyword valaStorage class delegate enum errordomain interface namespace struct
" repeat / condition / label
@@ -49,19 +50,26 @@ syn keyword valaConstant false null true
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
+" Arrays and Lists
+syn match valaArray "\(\w\(\w\)*\(\s\+\)\?<\)\+\(\(\s\+\)\?\w\(\w\)*\(?\|\*\)\?\(\,\)\?\)\+>\+"
+" Methods
+syn match valaMethod "\w\(\w\)*\(\s\+\)\?("he=e-1,me=e-1
+" Operators
+syn match valaOperator display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\|?\)=\?"
+" Delimiters
+syn match valaDelimiter display "(\|)\|\[\|\]\|,\|;\|:\|{\|}\|\k\@<!_\k\@!\|[[:punct:]]\@<!@[[:punct:]]\@!"
" 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 region valaDocTags contained start="{@\(link\|inherit[Dd]oc\)" 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 match valaDocTags contained "@\(return\|deprecated\)\>"
syn region valaDocSeeTag contained matchgroup=valaDocTags start="@see\s\+" matchgroup=NONE end="\_."re=e-1 contains=valaDocSeeTagParam
syn match valaDocSeeTagParam contained @"\_[^"]\+"\|<a\s\+\_.\{-}</a>\|\(\k\|\.\)*\(#\k\+\((\_[^)]\+)\)\=\)\=@ extend
endif
@@ -80,9 +88,9 @@ if exists("vala_comment_strings")
endif
else
syn region valaCommentL start="//" end="$" keepend contains=@valaCommentGroup,valaSpaceError,@Spell
- syn region valaComment matchgroup=valaCommentStart start="/\*" end="\*/" contains=@valaCommentGroup,valaCommentStartError,valaSpaceError,@Spell
+ syn region valaComment matchgroup=valaCommentStart start="/\*" end="\*/" fold contains=@valaCommentGroup,valaCommentStartError,valaSpaceError,@Spell
if !exists("vala_ignore_valadoc")
- syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" keepend contains=@valaCommentGroup,@valaDocCommentGroup,valaCommentStartError,valaSpaceError,@Spell
+ syn region valaDocComment matchgroup=valaCommentStart start="/\*\*" end="\*/" fold keepend contains=@valaCommentGroup,@valaDocCommentGroup,valaCommentStartError,valaSpaceError,@Spell
endif
endif
@@ -103,7 +111,7 @@ syntax match valaCommentStartError display "/\*"me=e-1 contained
syn match valaComment "/\*\*/"
" Vala Code Attributes
-syn region valaAttribute start="^\s*\[" end="\]$" contains=valaComment,valaString keepend
+syn region valaAttribute start="^\s*\[" end="\]" contains=valaComment,valaString keepend
syn region valaAttribute start="\[CCode" end="\]" contains=valaComment,valaString
" Avoid escaped keyword matching
@@ -113,8 +121,12 @@ syn match valaUserContent display "@\I*"
syn match valaSpecialError contained "\\."
syn match valaSpecialCharError contained "[^']"
syn match valaSpecialChar contained +\\["\\'0abfnrtvx]+
-syn region valaString start=+"+ end=+"+ end=+$+ contains=valaSpecialChar,valaSpecialError,valaUnicodeNumber,@Spell
-syn region valaVerbatimString start=+"""+ end=+"""+ contains=@Spell
+syn match valaFormatChar contained +%\(%\|\([-]\)\?\([+]\)\?\([0-9]\+\)\?\(\.\)\?\([0-9]\+\)\?\(l\?[dfiu]\|ll\?[diu]\|c\|g\|hh\?[iu]\|s\)\)+
+syn match valaTemplateVariable contained +\($\w\(\w\)*\)+
+syn region valaTemplateExpression start=+$(+ end=")"
+syn region valaString start=+"+ end=+"+ end=+$+ contains=valaSpecialChar,valaSpecialError,valaUnicodeNumber,@Spell,valaFormatChar
+syn region valaTemplateString start=+@"+ end=+"+ end=+$+ contains=valaSpecialChar,valaSpecialError,valaUnicodeNumber,@Spell,valaFormatChar,valaTemplateVariable,valaTemplateExpression
+syn region valaVerbatimString start=+"""+ end=+"""+ contains=@Spell,valaFormatChar
syn match valaUnicodeNumber +\\\(u\x\{4}\|U\x\{8}\)+ contained contains=valaUnicodeSpecifier
syn match valaUnicodeSpecifier +\\[uU]+ contained
syn match valaCharacter "'[^']*'" contains=valaSpecialChar,valaSpecialCharError
@@ -144,6 +156,7 @@ endif
exec "syn sync ccomment valaComment minlines=" . b:vala_minlines
" code folding
+set foldmethod=syntax
syn region valaBlock start="{" end="}" transparent fold
" The default highlighting.
@@ -158,6 +171,10 @@ hi def link valaException Exception
hi def link valaUnspecifiedStatement Statement
hi def link valaUnspecifiedKeyword Keyword
hi def link valaContextualStatement Statement
+hi def link valaArray StorageClass
+hi def link valaMethod Function
+hi def link valaOperator Operator
+hi def link valaDelimiter Delimiter
hi def link valaCommentError Error
hi def link valaCommentStartError Error
@@ -179,9 +196,13 @@ hi def link valaAttribute PreCondit
hi def link valaCommentString valaString
hi def link valaComment2String valaString
hi def link valaString String
+hi def link valaTemplateString String
hi def link valaVerbatimString String
hi def link valaCharacter Character
hi def link valaSpecialChar SpecialChar
+hi def link valaFormatChar SpecialChar
+hi def link valaTemplateVariable SpecialChar
+hi def link valaTemplateExpression SpecialChar
hi def link valaNumber Number
hi def link valaUnicodeNumber SpecialChar
hi def link valaUnicodeSpecifier SpecialChar