vim: update syntax for strings
[nit.git] / misc / vim / syntax / nit.vim
index 288d64c..b73b4ea 100644 (file)
@@ -31,7 +31,10 @@ endif
 " Expression Substitution and Backslash Notation
 syn match NITExprSubstError "{\|}" contained
 syn match NITExprSubst "\\." contained
-syn match NITExprSubst "{[^}]*}" contained
+syn match NITExprSubst "{\([^}]\|\n\)*}" contained
+
+syn match NITExprSubstLong "\\." contained
+syn match NITExprSubstLong "{*\zs{{{\([^}]\|\n\)*}}}\ze}*" contained
 
 " Numbers and ASCII Codes
 syn match NITNumber "\<\(\d\+\.\d\+\|\d\+\)\>"
@@ -42,6 +45,7 @@ syn match NITAttribute                "\<_\h\w*"
 
 " Literal strings
 syn region NITString matchgroup=NITStringDelimit start="\"" end="\"" skip="\\\\\|\\\"" contains=NITExprSubst,NITExprSubstError
+syn region NITString matchgroup=NITStringDelimit start="\"\"\"" end="\"*\zs\"\"\"" skip="\\\\\|\\\"" contains=NITExprSubstLong
 syn region NITString matchgroup=NITStringDelimit start="'"  end="'"  skip="\\\\\|\\'"
 
 " Labels
@@ -111,6 +115,7 @@ hi def link NITKeyword                      Keyword
 hi def link NITString                  String
 hi def link NITStringDelimit           Delimiter
 hi def link NITExprSubst               Special
+hi def link NITExprSubstLong           Special
 hi def link NITExprSubstError          Error
 
 hi def link NITComment                 Comment