/* Language: Lua Author: Andrew Fedorov */ hljs.LANGUAGES['lua'] = 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 { defaultMode: { lexems: 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', beginWithKeyword: true, end: '\\)', keywords: 'function', contains: [ { className: 'title', 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: 10 } ]) } }; }(hljs);