65 lines
2.8 KiB
JavaScript
65 lines
2.8 KiB
JavaScript
module.exports = 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 = [
|
|
hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
|
|
hljs.COMMENT(
|
|
'--' + OPENING_LONG_BRACKET,
|
|
CLOSING_LONG_BRACKET,
|
|
{
|
|
contains: [LONG_BRACKETS],
|
|
relevance: 10
|
|
}
|
|
)
|
|
];
|
|
return {
|
|
lexemes: hljs.UNDERSCORE_IDENT_RE,
|
|
keywords: {
|
|
literal: "true false nil",
|
|
keyword: "and break do else elseif end for goto if in local not or repeat return then until while",
|
|
built_in:
|
|
//Metatags and globals:
|
|
'_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' +
|
|
'__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' +
|
|
//Standard methods and properties:
|
|
'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 arg self' +
|
|
//Library methods and properties (one line per library):
|
|
'coroutine resume yield status wrap create running debug getupvalue' +
|
|
'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv' +
|
|
'io lines write close flush open output type read stderr stdin input stdout popen tmpfile' +
|
|
'math, log, max, acos, huge, ldexp, pi, cos, tanh, pow, deg, tan, cosh, sinh, random, randomseed, frexp, ceil, floor, rad, abs, sqrt, modf, asin, min, mod, fmod, log10, atan2, exp, sin, atan' +
|
|
'os, exit, setlocale, date, getenv, difftime, remove, time, clock, tmpname, rename, execute, package, preload, loadlib, loaded, loaders, cpath, config path, seeall' +
|
|
'string, sub, upper, len, gfind, rep, find, match, char, dump, gmatch, reverse, byte, format, gsub, lower' +
|
|
'table, setn, insert, getn, foreachi, maxn, foreach, concat, sort, remove'
|
|
},
|
|
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
|
|
}
|
|
])
|
|
};
|
|
}; |