summaryrefslogtreecommitdiffstats
path: root/syntax/nix.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/nix.vim')
-rw-r--r--syntax/nix.vim42
1 files changed, 25 insertions, 17 deletions
diff --git a/syntax/nix.vim b/syntax/nix.vim
index ee0f4173..d0dc57cb 100644
--- a/syntax/nix.vim
+++ b/syntax/nix.vim
@@ -36,11 +36,12 @@ syn region nixComment start=+/\*+ end=+\*/+ contains=nixTodo,@Spell
syn region nixInterpolation matchgroup=nixInterpolationDelimiter start="\${" end="}" contained contains=@nixExpr,nixInterpolationParam
-syn match nixSimpleStringSpecial /\\["nrt\\$]/ contained
-syn match nixInterpolationSpecial /''['$]/ contained
+syn match nixSimpleStringSpecial /\\./ contained
+syn match nixStringSpecial /''['$]/ contained
+syn match nixStringSpecial /''\\./ contained
syn region nixSimpleString matchgroup=nixStringDelimiter start=+"+ skip=+\\"+ end=+"+ contains=nixInterpolation,nixSimpleStringSpecial
-syn region nixString matchgroup=nixStringDelimiter start=+''+ skip=+''['$]+ end=+''+ contains=nixInterpolation,nixInterpolationSpecial
+syn region nixString matchgroup=nixStringDelimiter start=+''+ skip=+''['$\\]+ end=+''+ contains=nixInterpolation,nixStringSpecial
syn match nixFunctionCall "[a-zA-Z_][a-zA-Z0-9_'-]*"
@@ -117,27 +118,34 @@ syn region nixWithExpr matchgroup=nixWithExprKeyword start="\<with\>" matchgroup
syn region nixAssertExpr matchgroup=nixAssertKeyword start="\<assert\>" matchgroup=NONE end=";" contains=@nixExpr
-syn cluster nixExpr contains=nixBoolean,nixNull,nixOperator,nixParen,nixInteger,nixRecKeyword,nixConditional,nixBuiltin,nixSimpleBuiltin,nixComment,nixFunctionCall,nixFunctionArgument,nixSimpleFunctionArgument,nixPath,nixHomePath,nixSearchPathRef,nixURI,nixAttributeSet,nixList,nixSimpleString,nixString,nixLetExpr,nixIfExpr,nixWithExpr,nixAssertExpr
+syn cluster nixExpr contains=nixBoolean,nixNull,nixOperator,nixParen,nixInteger,nixRecKeyword,nixConditional,nixBuiltin,nixSimpleBuiltin,nixComment,nixFunctionCall,nixFunctionArgument,nixSimpleFunctionArgument,nixPath,nixHomePath,nixSearchPathRef,nixURI,nixAttributeSet,nixList,nixSimpleString,nixString,nixLetExpr,nixIfExpr,nixWithExpr,nixAssertExpr,nixInterpolation
" These definitions override @nixExpr and have to come afterwards:
syn match nixInterpolationParam "[a-zA-Z_][a-zA-Z0-9_'-]*\%(\.[a-zA-Z_][a-zA-Z0-9_'-]*\)*" contained
-" Non-namespaced Nix builtins as of version 1.10:
+" Non-namespaced Nix builtins as of version 2.0:
syn keyword nixSimpleBuiltin
- \ abort baseNameOf derivation dirOf fetchTarball import map removeAttrs
- \ throw toString
+ \ abort baseNameOf derivation derivationStrict dirOf fetchGit
+ \ fetchMercurial fetchTarball import isNull map placeholder removeAttrs
+ \ scopedImport throw toString
-" Namespaced and non-namespaced Nix builtins as of version 1.10:
+
+" Namespaced and non-namespaced Nix builtins as of version 2.0:
syn keyword nixNamespacedBuiltin contained
- \ abort add all any attrNames attrValues baseNameOf compareVersions
- \ concatLists currentSystem deepSeq derivation dirOf div elem elemAt
- \ fetchTarball fetchurl filter filterSource foldl' fromJSON genList
- \ getAttr getEnv hasAttr hashString head import intersectAttrs isAttrs
- \ isBool isFunction isInt isList isString length lessThan listToAttrs map
- \ mul parseDrvName pathExists readDir readFile removeAttrs replaceStrings
- \ seq sort stringLength sub substring tail throw toFile toJSON toPath
- \ toString toXML trace typeOf
+ \ abort add addErrorContext all any attrNames attrValues baseNameOf
+ \ catAttrs compareVersions concatLists concatStringsSep currentSystem
+ \ currentTime deepSeq derivation derivationStrict dirOf div elem elemAt
+ \ fetchGit fetchMercurial fetchTarball fetchurl filter \ filterSource
+ \ findFile foldl' fromJSON functionArgs genList \ genericClosure getAttr
+ \ getEnv hasAttr hasContext hashString head import intersectAttrs isAttrs
+ \ isBool isFloat isFunction isInt isList isNull isString langVersion
+ \ length lessThan listToAttrs map match mul nixPath nixVersion
+ \ parseDrvName partition path pathExists placeholder readDir readFile
+ \ removeAttrs replaceStrings scopedImport seq sort split splitVersion
+ \ storeDir storePath stringLength sub substring tail throw toFile toJSON
+ \ toPath toString toXML trace tryEval typeOf unsafeDiscardOutputDependency
+ \ unsafeDiscardStringContext unsafeGetAttrPos valueSize
syn match nixBuiltin "builtins\.[a-zA-Z']\+"he=s+9 contains=nixComment,nixNamespacedBuiltin
@@ -158,7 +166,6 @@ hi def link nixInteger Integer
hi def link nixInterpolation Macro
hi def link nixInterpolationDelimiter Delimiter
hi def link nixInterpolationParam Macro
-hi def link nixInterpolationSpecial Special
hi def link nixLetExprKeyword Keyword
hi def link nixNamespacedBuiltin Special
hi def link nixNull Constant
@@ -173,6 +180,7 @@ 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