1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- Language: Nix
- Author: Domen Kožar <domen@dev.si>
- Description: Nix functional language
- Website: http://nixos.org/nix
- */
- function nix(hljs) {
- var NIX_KEYWORDS = {
- keyword:
- 'rec with let in inherit assert if else then',
- literal:
- 'true false or and null',
- built_in:
- 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
- 'toString derivation'
- };
- var ANTIQUOTE = {
- className: 'subst',
- begin: /\$\{/,
- end: /}/,
- keywords: NIX_KEYWORDS
- };
- var ATTRS = {
- begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
- relevance: 0,
- contains: [
- {
- className: 'attr',
- begin: /\S+/
- }
- ]
- };
- var STRING = {
- className: 'string',
- contains: [ANTIQUOTE],
- variants: [
- {begin: "''", end: "''"},
- {begin: '"', end: '"'}
- ]
- };
- var EXPRESSIONS = [
- hljs.NUMBER_MODE,
- hljs.HASH_COMMENT_MODE,
- hljs.C_BLOCK_COMMENT_MODE,
- STRING,
- ATTRS
- ];
- ANTIQUOTE.contains = EXPRESSIONS;
- return {
- name: 'Nix',
- aliases: ["nixos"],
- keywords: NIX_KEYWORDS,
- contains: EXPRESSIONS
- };
- }
- module.exports = nix;
|