]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/nix.min.js
1 /*! `nix` grammar compiled for Highlight.js 11.11.1 */
2 (()=>{var e
=(()=>{"use strict";return e
=>{const t
=e
.regex
,r
={
3 keyword:["assert","else","if","in","inherit","let","or","rec","then","with"],
4 literal:["true","false","null"],
5 built_in:["abort","baseNameOf","builtins","derivation","derivationStrict","dirOf","fetchGit","fetchMercurial","fetchTarball","fetchTree","fromTOML","import","isNull","map","placeholder","removeAttrs","scopedImport","throw","toString"]
7 match:t
.either(...["abort","add","addDrvOutputDependencies","addErrorContext","all","any","appendContext","attrNames","attrValues","baseNameOf","bitAnd","bitOr","bitXor","break","builtins","catAttrs","ceil","compareVersions","concatLists","concatMap","concatStringsSep","convertHash","currentSystem","currentTime","deepSeq","derivation","derivationStrict","dirOf","div","elem","elemAt","false","fetchGit","fetchMercurial","fetchTarball","fetchTree","fetchurl","filter","filterSource","findFile","flakeRefToString","floor","foldl'","fromJSON","fromTOML","functionArgs","genList","genericClosure","getAttr","getContext","getEnv","getFlake","groupBy","hasAttr","hasContext","hashFile","hashString","head","import","intersectAttrs","isAttrs","isBool","isFloat","isFunction","isInt","isList","isNull","isPath","isString","langVersion","length","lessThan","listToAttrs","map","mapAttrs","match","mul","nixPath","nixVersion","null","parseDrvName","parseFlakeRef","partition","path","pathExists","placeholder","readDir","readFile","readFileType","removeAttrs","replaceStrings","scopedImport","seq","sort","split","splitVersion","storeDir","storePath","stringLength","sub","substring","tail","throw","toFile","toJSON","toPath","toString","toXML","trace","traceVerbose","true","tryEval","typeOf","unsafeDiscardOutputDependency","unsafeDiscardStringContext","unsafeGetAttrPos","warn","zipAttrsWith"].map((e
=>"builtins\\."+e
))),
8 relevance:10},s
="[A-Za-z_][A-Za-z0-9_'-]*",i
={scope:"symbol",
9 match:RegExp(`<${s}(/${s})*>`)},n
="[A-Za-z0-9_\\+\\.-]+",o
={scope:"symbol",
10 match:RegExp(`(\\.\\.|\\.|~)?/(${n})?(/${n})*(?=[\\s;])`)
11 },c
=t
.either("==","=","\\+\\+","\\+","<=","<\\|","<",">=",">","->","//","/","!=","!","\\|\\|","\\|>","\\?","\\*","&&"),l
={
12 scope:"operator",match:t
.concat(c
,/(?!-)/),relevance:0},p
={scope:"number",
13 match:RegExp(e
.NUMBER_RE
+"(?!-)"),relevance:0},h
={variants:[{scope:"operator",
14 beforeMatch:/\s/,begin:/-(?!>)/},{begin:[RegExp(""+e
.NUMBER_RE
),/-/,/(?!>)/],
15 beginScope:{1:"number",2:"operator"}},{begin:[c
,/-/,/(?!>)/],beginScope:{
16 1:"operator",2:"operator"}}],relevance:0},g
={beforeMatch:/(^|\{|;)\s*/,
17 begin:RegExp(`${s}(\\.${s})*\\s*=(?!=)`),returnBegin:!0,relevance:0,contains:[{
18 scope:"attr",match:RegExp(`${s}(\\.${s})*(?=\\s*=)`),relevance:.2}]},m
={
19 scope:"subst",begin:/\$\{/,end:/\}/,keywords:r
},u
={scope:"char.escape",
20 match:/\\(?!\$)./},b
={scope:"string",variants:[{begin:"''",end:"''",contains:[{
21 scope:"char.escape",match:/''\$/},m
,{scope:"char.escape",match:/'''/},u
]},{
22 begin:'"',end:'"',contains:[{scope:"char.escape",match:/\\\$/},m
,u
]}]},d
={
23 scope:"params",match:RegExp(s
+"\\s*:(?=\\s)")
24 },f
=[p
,e
.HASH_COMMENT_MODE
,e
.C_BLOCK_COMMENT_MODE
,e
.COMMENT(/\/\*\*(?!\/)/,/\*\//,{
25 subLanguage:"markdown",relevance:0}),a
,b
,i
,o
,d
,g
,h
,l
];return m
.contains
=f
,{
26 name:"Nix",aliases:["nixos"],keywords:r
,contains:f
.concat([{scope:"meta.prompt",
27 match:/^nix-repl>(?=\s)/,relevance:10},{scope:"meta",beforeMatch:/\s+/,
28 begin:/:([a-z]+|\?)/}])}}})();hljs
.registerLanguage("nix",e
)})();