55 lines
1.7 KiB
JavaScript
55 lines
1.7 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: {
|
|
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
|
|
}
|
|
])
|
|
};
|
|
}; |