website/docs/api-reference/v1.7/node_modules/highlight.js/lib/languages/lua.js

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
}
])
};
};