code: function(hljs) {
    var NIX_KEYWORDS = {
      keyword: 'rec with let in inherit assert if else then',
      constant: '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 = {
      className: 'variable',
      // TODO: we have to figure out a way how to exclude \s*=
      begin: /[a-zA-Z0-9-_]+(\s*=)/
    };
    var SINGLE_QUOTE = {
      className: 'string',
      begin: "''",
      end: "''",
      contains: [
        ANTIQUOTE
      ]
    };
    var DOUBLE_QUOTE = {
      className: 'string',
      begin: '"',
      end: '"',
      contains: [
        ANTIQUOTE
      ]
    };
    var EXPRESSIONS = [
      hljs.NUMBER_MODE,
      hljs.HASH_COMMENT_MODE,
      hljs.C_BLOCK_COMMENT_MODE,
      SINGLE_QUOTE,
      DOUBLE_QUOTE,
      ATTRS
    ];  
    ANTIQUOTE.contains = EXPRESSIONS;
    return {
      aliases: ["nixos"],
      keywords: NIX_KEYWORDS,
      contains: EXPRESSIONS
    };
  }
docs: /*
  Language: Nix
  Author: Domen Kožar <domen@dev.si>
  Description: Nix functional language. See http://nixos.org/nix