summaryrefslogtreecommitdiffstats
path: root/syntax/carp.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/carp.vim')
-rw-r--r--syntax/carp.vim10
1 files changed, 9 insertions, 1 deletions
diff --git a/syntax/carp.vim b/syntax/carp.vim
index a3f11c66..849c3247 100644
--- a/syntax/carp.vim
+++ b/syntax/carp.vim
@@ -33,6 +33,7 @@ syn keyword carpSyntax str* println* break doc sig hidden private
syn keyword carpSyntax while-do const-assert save-docs defproject
syn keyword carpSyntax relative-include not-on-windows load-and-use
syn keyword carpSyntax deftest
+syn keyword carpSyntax quasiquote unquote unquote-splicing
syn match carpSyntax "\vc(a|d){1,4}r"
syn keyword carpFunc λ
@@ -55,7 +56,7 @@ syn keyword carpFunc string-join free sleep-seconds sleep-micros substitute
syn keyword carpFunc neg to-float match matches? find global-match match-str
syn keyword carpFunc from-float tan asin atan cosh sinh tanh exp frexp ldexp
syn keyword carpFunc log log10 modf pow ceil clamp approx refstr foreach
-syn keyword carpFunc => ==> repeat nth replicate range raw aset aset!
+syn keyword carpFunc -> --> => ==> repeat nth replicate range raw aset aset!
syn keyword carpFunc push-back pop-back sort index-of element-count
syn keyword carpFunc apply unsafe-from from just? nothing? ptr from-ptr
syn keyword carpFunc map and-then unwrap-or-zero or-else unwrap-or-else
@@ -126,6 +127,13 @@ syn match carpComment /;.*$/ contains=@Spell
syn region carpQuoted matchgroup=Delimiter start="#['`]"rs=s+2 end=![ \t()\[\]";]!re=e-1,me=e-1 contains=@carpQuotedStuff,@carpQuotedOrNormal
syn region carpQuoted matchgroup=Delimiter start="#['`]("rs=s+3 matchgroup=Delimiter end=")"re=e-1 contains=@carpQuotedStuff,@carpQuotedOrNormal
+syn region carpUnquote matchgroup=Delimiter start="%"rs=s+1 end=![ \t\[\]()";]!re=e-1,me=e-1 contained contains=@carpNormal
+syn region carpUnquote matchgroup=Delimiter start="%@"rs=s+2 end=![ \t\[\]()";]!re=e-1,me=e-1 contained contains=@carpNormal
+syn region carpUnquote matchgroup=Delimiter start="%@("rs=s+2 end=")"re=e-1 contained contains=@carpNormal
+syn region carpUnquote matchgroup=Delimiter start="%("rs=s+2 end=")"re=e-1 contained contains=@carpNormal
+
+syn cluster carpQuotedStuff add=carpUnquote
+
syn cluster carpNormal add=carpQuoted,carpComment
syn cluster carpQuotedOrNormal add=carpComment