123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- Language: Nix
- Author: Domen Kožar <domen@dev.si>
- Description: Nix functional language
- Website: http://nixos.org/nix
- */
- function nix(hljs) {
- const 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'
- };
- const ANTIQUOTE = {
- className: 'subst',
- begin: /\$\{/,
- end: /\}/,
- keywords: NIX_KEYWORDS
- };
- const ATTRS = {
- begin: /[a-zA-Z0-9-_]+(\s*=)/,
- returnBegin: true,
- relevance: 0,
- contains: [
- {
- className: 'attr',
- begin: /\S+/
- }
- ]
- };
- const STRING = {
- className: 'string',
- contains: [ ANTIQUOTE ],
- variants: [
- {
- begin: "''",
- end: "''"
- },
- {
- begin: '"',
- end: '"'
- }
- ]
- };
- const 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;
|