summaryrefslogtreecommitdiffstats
path: root/syntax/nix.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2018-10-08 19:00:59 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2018-10-08 19:00:59 +0200
commitfd74d8b2b170b540680a9bbf6c64990f8ebafd08 (patch)
treeb1fdef6203a78a21053d1b8e0666ab7a38c36df2 /syntax/nix.vim
parent055f7710b65dfa2df52fc0b5be2486ae36ac5751 (diff)
downloadvim-polyglot-3.3.3.tar.gz
vim-polyglot-3.3.3.zip
Updatev3.3.3
Diffstat (limited to 'syntax/nix.vim')
-rw-r--r--syntax/nix.vim85
1 files changed, 45 insertions, 40 deletions
diff --git a/syntax/nix.vim b/syntax/nix.vim
index d0dc57cb..f67aa4c4 100644
--- a/syntax/nix.vim
+++ b/syntax/nix.vim
@@ -36,12 +36,15 @@ syn region nixComment start=+/\*+ end=+\*/+ contains=nixTodo,@Spell
syn region nixInterpolation matchgroup=nixInterpolationDelimiter start="\${" end="}" contained contains=@nixExpr,nixInterpolationParam
-syn match nixSimpleStringSpecial /\\./ contained
+syn match nixSimpleStringSpecial /\\\%([nrt"\\$]\|$\)/ contained
syn match nixStringSpecial /''['$]/ contained
-syn match nixStringSpecial /''\\./ contained
+syn match nixStringSpecial /''\\[nrt]/ contained
-syn region nixSimpleString matchgroup=nixStringDelimiter start=+"+ skip=+\\"+ end=+"+ contains=nixInterpolation,nixSimpleStringSpecial
-syn region nixString matchgroup=nixStringDelimiter start=+''+ skip=+''['$\\]+ end=+''+ contains=nixInterpolation,nixStringSpecial
+syn match nixInvalidSimpleStringEscape /\\[^nrt"\\$]/ contained
+syn match nixInvalidStringEscape /''\\[^nrt]/ contained
+
+syn region nixSimpleString matchgroup=nixStringDelimiter start=+"+ skip=+\\"+ end=+"+ contains=nixInterpolation,nixSimpleStringSpecial,nixInvalidSimpleStringEscape
+syn region nixString matchgroup=nixStringDelimiter start=+''+ skip=+''['$\\]+ end=+''+ contains=nixInterpolation,nixStringSpecial,nixInvalidStringEscape
syn match nixFunctionCall "[a-zA-Z_][a-zA-Z0-9_'-]*"
@@ -53,7 +56,7 @@ syn match nixSearchPathRef "<[a-zA-Z0-9._+-]\+\%(\/[a-zA-Z0-9._+-]\+\)*>" contai
syn match nixURI "[a-zA-Z][a-zA-Z0-9.+-]*:[a-zA-Z0-9%/?:@&=$,_.!~*'+-]\+"
syn match nixAttributeDot "\." contained
-syn match nixAttribute "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%([^a-zA-Z0-9_'-.]\|$\)" contained
+syn match nixAttribute "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%([^a-zA-Z0-9_'.-]\|$\)" contained
syn region nixAttributeAssignment start="=" end="\ze;" contained contains=@nixExpr
syn region nixAttributeDefinition start=/\ze[a-zA-Z_"$]/ end=";" contained contains=nixComment,nixAttribute,nixInterpolation,nixSimpleString,nixAttributeDot,nixAttributeAssignment
@@ -149,41 +152,43 @@ syn keyword nixNamespacedBuiltin contained
syn match nixBuiltin "builtins\.[a-zA-Z']\+"he=s+9 contains=nixComment,nixNamespacedBuiltin
-hi def link nixArgOperator Operator
-hi def link nixArgumentDefinition Identifier
-hi def link nixArgumentEllipsis Operator
-hi def link nixAssertKeyword Keyword
-hi def link nixAttribute Identifier
-hi def link nixAttributeDot Operator
-hi def link nixBoolean Boolean
-hi def link nixBuiltin Special
-hi def link nixComment Comment
-hi def link nixConditional Conditional
-hi def link nixHomePath Include
-hi def link nixIfExprKeyword Keyword
-hi def link nixInherit Keyword
-hi def link nixInteger Integer
-hi def link nixInterpolation Macro
-hi def link nixInterpolationDelimiter Delimiter
-hi def link nixInterpolationParam Macro
-hi def link nixLetExprKeyword Keyword
-hi def link nixNamespacedBuiltin Special
-hi def link nixNull Constant
-hi def link nixOperator Operator
-hi def link nixPath Include
-hi def link nixPathDelimiter Delimiter
-hi def link nixRecKeyword Keyword
-hi def link nixSearchPath Include
-hi def link nixSimpleBuiltin Keyword
-hi def link nixSimpleFunctionArgument Identifier
-hi def link nixSimpleString String
-hi def link nixSimpleStringSpecial SpecialChar
-hi def link nixString String
-hi def link nixStringDelimiter Delimiter
-hi def link nixStringSpecial Special
-hi def link nixTodo Todo
-hi def link nixURI Include
-hi def link nixWithExprKeyword Keyword
+hi def link nixArgOperator Operator
+hi def link nixArgumentDefinition Identifier
+hi def link nixArgumentEllipsis Operator
+hi def link nixAssertKeyword Keyword
+hi def link nixAttribute Identifier
+hi def link nixAttributeDot Operator
+hi def link nixBoolean Boolean
+hi def link nixBuiltin Special
+hi def link nixComment Comment
+hi def link nixConditional Conditional
+hi def link nixHomePath Include
+hi def link nixIfExprKeyword Keyword
+hi def link nixInherit Keyword
+hi def link nixInteger Integer
+hi def link nixInterpolation Macro
+hi def link nixInterpolationDelimiter Delimiter
+hi def link nixInterpolationParam Macro
+hi def link nixInvalidSimpleStringEscape Error
+hi def link nixInvalidStringEscape Error
+hi def link nixLetExprKeyword Keyword
+hi def link nixNamespacedBuiltin Special
+hi def link nixNull Constant
+hi def link nixOperator Operator
+hi def link nixPath Include
+hi def link nixPathDelimiter Delimiter
+hi def link nixRecKeyword Keyword
+hi def link nixSearchPath Include
+hi def link nixSimpleBuiltin Keyword
+hi def link nixSimpleFunctionArgument Identifier
+hi def link nixSimpleString String
+hi def link nixSimpleStringSpecial SpecialChar
+hi def link nixString String
+hi def link nixStringDelimiter Delimiter
+hi def link nixStringSpecial Special
+hi def link nixTodo Todo
+hi def link nixURI Include
+hi def link nixWithExprKeyword Keyword
" This could lead up to slow syntax highlighting for large files, but usually
" large files such as all-packages.nix are one large attribute set, so if we'd