68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
/*
|
|
Language: Lua
|
|
Author: Andrew Fedorov <dmmdrs@mail.ru>
|
|
*/
|
|
|
|
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);
|