Files
nix-flake/assets/dotfiles/vscode-extensions/bbenoist.nix-1.0.1/syntaxes/nix.tmLanguage
T
greyweather 0f018cd2e3 full PC config setup
shifting towards manual symlinks for more complex setup than laptop, allows for GUI settings changes to actually apply, and is much easier than nix-ifying every config
2026-07-12 04:01:28 +01:00

1799 lines
47 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>nix</string>
</array>
<key>name</key>
<string>Nix</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>attribute-bind</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attribute-name</string>
</dict>
<dict>
<key>include</key>
<string>#attribute-bind-from-equals</string>
</dict>
</array>
</dict>
<key>attribute-bind-from-equals</key>
<dict>
<key>begin</key>
<string>\=</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.bind.nix</string>
</dict>
</dict>
<key>end</key>
<string>\;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.terminator.bind.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>attribute-inherit</key>
<dict>
<key>begin</key>
<string>\binherit\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.inherit.nix</string>
</dict>
</dict>
<key>end</key>
<string>\;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.terminator.inherit.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.function.arguments.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\;)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.function.arguments.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#attribute-name-single</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=[a-zA-Z\_])</string>
<key>end</key>
<string>(?=\;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#attribute-name-single</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>attribute-name</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
<key>name</key>
<string>entity.other.attribute-name.multipart.nix</string>
</dict>
<dict>
<key>match</key>
<string>\.</string>
</dict>
<dict>
<key>include</key>
<string>#string-quoted</string>
</dict>
<dict>
<key>include</key>
<string>#interpolation</string>
</dict>
</array>
</dict>
<key>attribute-name-single</key>
<dict>
<key>match</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
<key>name</key>
<string>entity.other.attribute-name.single.nix</string>
</dict>
<key>attrset-contents</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attribute-inherit</string>
</dict>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#attribute-bind</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>attrset-definition</key>
<dict>
<key>begin</key>
<string>(?=\{)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\{)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.attrset.nix</string>
</dict>
</dict>
<key>end</key>
<string>(\})</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.attrset.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-contents</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\})</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>attrset-definition-brace-opened</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?&lt;=\})</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.attrset.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-contents</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>attrset-for-sure</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=\brec\b)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\brec\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\{)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#attrset-definition</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\{\s*(\}|[^,?]*(=|;)))</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-definition</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>attrset-or-function</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.attrset-or-function.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=(\s*\}|\"|\binherit\b|\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*(\s*\.|\s*=[^=])))</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-definition-brace-opened</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=(\.\.\.|\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*\s*[,?]))</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-definition-brace-opened</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>begin</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>variable.parameter.function.maybe.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=\.)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-definition-brace-opened</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\s*(\,)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.operator.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-definition-brace-opened</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\=)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attribute-bind-from-equals</string>
</dict>
<dict>
<key>include</key>
<string>#attrset-definition-brace-opened</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\?)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-parameter-default</string>
</dict>
<dict>
<key>begin</key>
<string>\,</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-definition-brace-opened</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>bad-reserved</key>
<dict>
<key>match</key>
<string>\b(if|then|else|assert|with|let|in|rec|inherit)\b</string>
<key>name</key>
<string>invalid.illegal.reserved.nix</string>
</dict>
<key>comment</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>/\*([^*]|\*[^\/])*</string>
<key>end</key>
<string>\*\/</string>
<key>name</key>
<string>comment.block.nix</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment-remark</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\#</string>
<key>end</key>
<string>$</string>
<key>name</key>
<string>comment.line.number-sign.nix</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comment-remark</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>comment-remark</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>markup.bold.comment.nix</string>
</dict>
</dict>
<key>match</key>
<string>(TODO|FIXME|BUG|\!\!\!):?</string>
</dict>
<key>constants</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\b(builtins|true|false|null)\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>constant.language.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>support.function.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\b[0-9]+\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>constant.numeric.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>expression</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#parens-and-cont</string>
</dict>
<dict>
<key>include</key>
<string>#list-and-cont</string>
</dict>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#interpolation</string>
</dict>
<dict>
<key>include</key>
<string>#with-assert</string>
</dict>
<dict>
<key>include</key>
<string>#function-for-sure</string>
</dict>
<dict>
<key>include</key>
<string>#attrset-for-sure</string>
</dict>
<dict>
<key>include</key>
<string>#attrset-or-function</string>
</dict>
<dict>
<key>include</key>
<string>#let</string>
</dict>
<dict>
<key>include</key>
<string>#if</string>
</dict>
<dict>
<key>include</key>
<string>#operator-unary</string>
</dict>
<dict>
<key>include</key>
<string>#constants</string>
</dict>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#parameter-name-and-cont</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>expression-cont</key>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#parens</string>
</dict>
<dict>
<key>include</key>
<string>#list</string>
</dict>
<dict>
<key>include</key>
<string>#string</string>
</dict>
<dict>
<key>include</key>
<string>#interpolation</string>
</dict>
<dict>
<key>include</key>
<string>#function-for-sure</string>
</dict>
<dict>
<key>include</key>
<string>#attrset-for-sure</string>
</dict>
<dict>
<key>include</key>
<string>#attrset-or-function</string>
</dict>
<dict>
<key>match</key>
<string>(\bor\b|\.|==|!=|!|\&lt;\=|\&lt;|\&gt;\=|\&gt;|&amp;&amp;|\|\||-\&gt;|//|\?|\+\+|-|\*|/(?=([^*]|$))|\+)</string>
<key>name</key>
<string>keyword.operator.nix</string>
</dict>
<dict>
<key>include</key>
<string>#constants</string>
</dict>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#parameter-name</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-body</key>
<dict>
<key>begin</key>
<string>(@\s*([a-zA-Z\_][a-zA-Z0-9\_\'\-]*)\s*)?(\:)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>function-body-from-colon</key>
<dict>
<key>begin</key>
<string>(\:)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.function.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>function-contents</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#bad-reserved</string>
</dict>
<dict>
<key>include</key>
<string>#function-parameter</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-definition</key>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-body-from-colon</string>
</dict>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>variable.parameter.function.4.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\@</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-until-colon-no-arg</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\{)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-until-colon-with-arg</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-definition-brace-opened</key>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-body-from-colon</string>
</dict>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-close-brace-with-arg</string>
</dict>
<dict>
<key>begin</key>
<string>(?=.?)</string>
<key>end</key>
<string>(?=\})</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-contents</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-for-sure</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=(\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*\s*[:@]|\{[^}]*\}\s*:|\{[^#}"'/=]*[,\?]))</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-definition</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>function-header-close-brace-no-arg</key>
<dict>
<key>begin</key>
<string>\}</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.function.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-header-close-brace-with-arg</key>
<dict>
<key>begin</key>
<string>\}</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.function.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-terminal-arg</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-header-open-brace</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.function.2.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=\})</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-contents</string>
</dict>
</array>
</dict>
<key>function-header-terminal-arg</key>
<dict>
<key>begin</key>
<string>(?=@)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\@</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*)</string>
<key>end</key>
<string>(?=\:)</string>
<key>name</key>
<string>variable.parameter.function.3.nix</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-header-until-colon-no-arg</key>
<dict>
<key>begin</key>
<string>(?=\{)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-open-brace</string>
</dict>
<dict>
<key>include</key>
<string>#function-header-close-brace-no-arg</string>
</dict>
</array>
</dict>
<key>function-header-until-colon-with-arg</key>
<dict>
<key>begin</key>
<string>(?=\{)</string>
<key>end</key>
<string>(?=\:)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-header-open-brace</string>
</dict>
<dict>
<key>include</key>
<string>#function-header-close-brace-with-arg</string>
</dict>
</array>
</dict>
<key>function-parameter</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\.\.\.)</string>
<key>end</key>
<string>(,|(?=\}))</string>
<key>name</key>
<string>keyword.operator.nix</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>variable.parameter.function.1.nix</string>
</dict>
</dict>
<key>end</key>
<string>(,|(?=\}))</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#whitespace</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#function-parameter-default</string>
</dict>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<key>function-parameter-default</key>
<dict>
<key>begin</key>
<string>\?</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.operator.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=[,}])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>if</key>
<dict>
<key>begin</key>
<string>(?=\bif\b)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\bif\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>\bth(?=en\b)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=th)en\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>\bel(?=se\b)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=el)se\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>illegal</key>
<dict>
<key>match</key>
<string>.</string>
<key>name</key>
<string>invalid.illegal</string>
</dict>
<key>interpolation</key>
<dict>
<key>begin</key>
<string>\$\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.embedded.begin.nix</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.embedded.end.nix</string>
</dict>
</dict>
<key>name</key>
<string>markup.italic</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>let</key>
<dict>
<key>begin</key>
<string>(?=\blet\b)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\blet\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(in|else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=\{)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#attrset-contents</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(^|(?&lt;=\}))</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#attrset-contents</string>
</dict>
<dict>
<key>include</key>
<string>#others</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\bin\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>list</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.nix</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.list.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>list-and-cont</key>
<dict>
<key>begin</key>
<string>(?=\[)</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#list</string>
</dict>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<key>operator-unary</key>
<dict>
<key>match</key>
<string>(!|-)</string>
<key>name</key>
<string>keyword.operator.unary.nix</string>
</dict>
<key>others</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#whitespace</string>
</dict>
<dict>
<key>include</key>
<string>#comment</string>
</dict>
<dict>
<key>include</key>
<string>#illegal</string>
</dict>
</array>
</dict>
<key>parameter-name</key>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>variable.parameter.name.nix</string>
</dict>
</dict>
<key>match</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
</dict>
<key>parameter-name-and-cont</key>
<dict>
<key>begin</key>
<string>\b[a-zA-Z\_][a-zA-Z0-9\_\'\-]*</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>variable.parameter.name.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<key>parens</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.expression.nix</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.expression.nix</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
<key>parens-and-cont</key>
<dict>
<key>begin</key>
<string>(?=\()</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#parens</string>
</dict>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<key>string</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=\'\')</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\'\'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.other.start.nix</string>
</dict>
</dict>
<key>end</key>
<string>\'\'(?!\$|\'|\\.)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.other.end.nix</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.nix</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\'\'(\$|\'|\\.)</string>
<key>name</key>
<string>constant.character.escape.nix</string>
</dict>
<dict>
<key>include</key>
<string>#interpolation</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\")</string>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-quoted</string>
</dict>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.unquoted.path.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\&lt;[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\&gt;)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.unquoted.spath.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>([a-zA-Z][a-zA-Z0-9\+\-\.]*\:[a-zA-Z0-9\%\/\?\:\@\&amp;\=\+\$\,\-\_\.\!\~\*\']+)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.unquoted.url.nix</string>
</dict>
</dict>
<key>end</key>
<string>(?=([\])};,]|\b(else|then)\b))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression-cont</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>string-quoted</key>
<dict>
<key>begin</key>
<string>\"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.double.start.nix</string>
</dict>
</dict>
<key>end</key>
<string>\"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.double.end.nix</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.nix</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.nix</string>
</dict>
<dict>
<key>include</key>
<string>#interpolation</string>
</dict>
</array>
</dict>
<key>whitespace</key>
<dict>
<key>match</key>
<string>\s+</string>
</dict>
<key>with-assert</key>
<dict>
<key>begin</key>
<string>\b(with|assert)\b</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>keyword.other.nix</string>
</dict>
</dict>
<key>end</key>
<string>\;</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#expression</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.nix</string>
<key>uuid</key>
<string>0514fd5f-acb6-436d-b42c-7643e6d36c8f</string>
</dict>
</plist>