code: function(hljs) {
    var OPENING_LONG_BRACKET = '\\[=*\\[';
    var CLOSING_LONG_BRACKET = '\\]=*\\]';
    var LONG_BRACKETS = {
      begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
      contains: ['self']
    };
    var COMMENTS = [
      {
        className: 'comment',
        begin: '--(?!' + OPENING_LONG_BRACKET + ')', end: '$'
      },
      {
        className: 'comment',
        begin: '--' + OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
        contains: [LONG_BRACKETS],
        relevance: 10
      }
    ]
    return {
      lexemes: hljs.UNDERSCORE_IDENT_RE,
      keywords: {
        keyword:
          'and break do else elseif end false for if in local nil not or repeat return then ' +
          'true until while',
        built_in:
          '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
          'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
          'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
          'io math os package string table'
      },
      contains: COMMENTS.concat([
        {
          className: 'function',
          beginKeywords: 'function', end: '\\)',
          contains: [
            hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
            {
              className: 'params',
              begin: '\\(', endsWithParent: true,
              contains: COMMENTS
            }
          ].concat(COMMENTS)
        },
        hljs.C_NUMBER_MODE,
        hljs.APOS_STRING_MODE,
        hljs.QUOTE_STRING_MODE,
        {
          className: 'string',
          begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
          contains: [LONG_BRACKETS],
          relevance: 5
        }
      ])
    };
  }
docs: /*
  Language: Lua
  Author: Andrew Fedorov <dmmdrs@mail.ru>