ai / bt-source /panel /BTPanel /static /editor /mode-lua.js
GGSheng's picture
feat: deploy Gemma 4 to hf space
17e971c verified
ace.define(
'ace/mode/lua_highlight_rules',
['require', 'exports', 'module', 'ace/lib/oop', 'ace/mode/text_highlight_rules'],
function (e, t, n) {
'use strict'
var r = e('../lib/oop'),
i = e('./text_highlight_rules').TextHighlightRules,
s = function () {
var e =
'break|do|else|elseif|end|for|function|if|in|local|repeat|return|then|until|while|or|and|not',
t = 'true|false|nil|_G|_VERSION',
n =
'string|xpcall|package|tostring|print|os|unpack|require|getfenv|setmetatable|next|assert|tonumber|io|rawequal|collectgarbage|getmetatable|module|rawset|math|debug|pcall|table|newproxy|type|coroutine|_G|select|gcinfo|pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|load|error|loadfile|sub|upper|len|gfind|rep|find|match|char|dump|gmatch|reverse|byte|format|gsub|lower|preload|loadlib|loaded|loaders|cpath|config|path|seeall|exit|setlocale|date|getenv|difftime|remove|time|clock|tmpname|rename|execute|lines|write|close|flush|open|output|type|read|stderr|stdin|input|stdout|popen|tmpfile|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|getupvalue|debug|sethook|getmetatable|gethook|setmetatable|setlocal|traceback|setfenv|getinfo|setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|foreachi|maxn|foreach|concat|sort|remove|resume|yield|status|wrap|create|running|__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber',
r = 'string|package|os|io|math|debug|table|coroutine',
i = 'setn|foreach|foreachi|gcinfo|log10|maxn',
s = this.createKeywordMapper(
{
keyword: e,
'support.function': n,
'keyword.deprecated': i,
'constant.library': r,
'constant.language': t,
'variable.language': 'self',
},
'identifier'
),
o = '(?:(?:[1-9]\\d*)|(?:0))',
u = '(?:0[xX][\\dA-Fa-f]+)',
a = '(?:' + o + '|' + u + ')',
f = '(?:\\.\\d+)',
l = '(?:\\d+)',
c = '(?:(?:' + l + '?' + f + ')|(?:' + l + '\\.))',
h = '(?:' + c + ')'
;(this.$rules = {
start: [
{
stateName: 'bracketedComment',
onMatch: function (e, t, n) {
return n.unshift(this.next, e.length - 2, t), 'comment'
},
regex: /\-\-\[=*\[/,
next: [
{
onMatch: function (e, t, n) {
return (
e.length == n[1]
? (n.shift(), n.shift(), (this.next = n.shift()))
: (this.next = ''),
'comment'
)
},
regex: /\]=*\]/,
next: 'start',
},
{ defaultToken: 'comment' },
],
},
{ token: 'comment', regex: '\\-\\-.*$' },
{
stateName: 'bracketedString',
onMatch: function (e, t, n) {
return n.unshift(this.next, e.length, t), 'string.start'
},
regex: /\[=*\[/,
next: [
{
onMatch: function (e, t, n) {
return (
e.length == n[1]
? (n.shift(), n.shift(), (this.next = n.shift()))
: (this.next = ''),
'string.end'
)
},
regex: /\]=*\]/,
next: 'start',
},
{ defaultToken: 'string' },
],
},
{ token: 'string', regex: '"(?:[^\\\\]|\\\\.)*?"' },
{ token: 'string', regex: "'(?:[^\\\\]|\\\\.)*?'" },
{ token: 'constant.numeric', regex: h },
{ token: 'constant.numeric', regex: a + '\\b' },
{ token: s, regex: '[a-zA-Z_$][a-zA-Z0-9_$]*\\b' },
{
token: 'keyword.operator',
regex: '\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\.',
},
{ token: 'paren.lparen', regex: '[\\[\\(\\{]' },
{ token: 'paren.rparen', regex: '[\\]\\)\\}]' },
{ token: 'text', regex: '\\s+|\\w+' },
],
}),
this.normalizeRules()
}
r.inherits(s, i), (t.LuaHighlightRules = s)
}
),
ace.define(
'ace/mode/folding/lua',
[
'require',
'exports',
'module',
'ace/lib/oop',
'ace/mode/folding/fold_mode',
'ace/range',
'ace/token_iterator',
],
function (e, t, n) {
'use strict'
var r = e('../../lib/oop'),
i = e('./fold_mode').FoldMode,
s = e('../../range').Range,
o = e('../../token_iterator').TokenIterator,
u = (t.FoldMode = function () {})
r.inherits(u, i),
function () {
;(this.foldingStartMarker = /\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/),
(this.foldingStopMarker = /\bend\b|^\s*}|\]=*\]/),
(this.getFoldWidget = function (e, t, n) {
var r = e.getLine(n),
i = this.foldingStartMarker.test(r),
s = this.foldingStopMarker.test(r)
if (i && !s) {
var o = r.match(this.foldingStartMarker)
if (o[1] == 'then' && /\belseif\b/.test(r)) return
if (o[1]) {
if (e.getTokenAt(n, o.index + 1).type === 'keyword') return 'start'
} else {
if (!o[2]) return 'start'
var u = e.bgTokenizer.getState(n) || ''
if (u[0] == 'bracketedComment' || u[0] == 'bracketedString') return 'start'
}
}
if (t != 'markbeginend' || !s || (i && s)) return ''
var o = r.match(this.foldingStopMarker)
if (o[0] === 'end') {
if (e.getTokenAt(n, o.index + 1).type === 'keyword') return 'end'
} else {
if (o[0][0] !== ']') return 'end'
var u = e.bgTokenizer.getState(n - 1) || ''
if (u[0] == 'bracketedComment' || u[0] == 'bracketedString') return 'end'
}
}),
(this.getFoldWidgetRange = function (e, t, n) {
var r = e.doc.getLine(n),
i = this.foldingStartMarker.exec(r)
if (i)
return i[1]
? this.luaBlock(e, n, i.index + 1)
: i[2]
? e.getCommentFoldRange(n, i.index + 1)
: this.openingBracketBlock(e, '{', n, i.index)
var i = this.foldingStopMarker.exec(r)
if (i)
return i[0] === 'end' && e.getTokenAt(n, i.index + 1).type === 'keyword'
? this.luaBlock(e, n, i.index + 1)
: i[0][0] === ']'
? e.getCommentFoldRange(n, i.index + 1)
: this.closingBracketBlock(e, '}', n, i.index + i[0].length)
}),
(this.luaBlock = function (e, t, n, r) {
var i = new o(e, t, n),
u = { function: 1, do: 1, then: 1, elseif: -1, end: -1, repeat: 1, until: -1 },
a = i.getCurrentToken()
if (!a || a.type != 'keyword') return
var f = a.value,
l = [f],
c = u[f]
if (!c) return
var h = c === -1 ? i.getCurrentTokenColumn() : e.getLine(t).length,
p = t
i.step = c === -1 ? i.stepBackward : i.stepForward
while ((a = i.step())) {
if (a.type !== 'keyword') continue
var d = c * u[a.value]
if (d > 0) l.unshift(a.value)
else if (d <= 0) {
l.shift()
if (!l.length && a.value != 'elseif') break
d === 0 && l.unshift(a.value)
}
}
if (!a) return null
if (r) return i.getCurrentTokenRange()
var t = i.getCurrentTokenRow()
return c === -1
? new s(t, e.getLine(t).length, p, h)
: new s(p, h, t, i.getCurrentTokenColumn())
})
}.call(u.prototype)
}
),
ace.define(
'ace/mode/lua',
[
'require',
'exports',
'module',
'ace/lib/oop',
'ace/mode/text',
'ace/mode/lua_highlight_rules',
'ace/mode/folding/lua',
'ace/range',
'ace/worker/worker_client',
],
function (e, t, n) {
'use strict'
var r = e('../lib/oop'),
i = e('./text').Mode,
s = e('./lua_highlight_rules').LuaHighlightRules,
o = e('./folding/lua').FoldMode,
u = e('../range').Range,
a = e('../worker/worker_client').WorkerClient,
f = function () {
;(this.HighlightRules = s),
(this.foldingRules = new o()),
(this.$behaviour = this.$defaultBehaviour)
}
r.inherits(f, i),
function () {
function n(t) {
var n = 0
for (var r = 0; r < t.length; r++) {
var i = t[r]
i.type == 'keyword'
? i.value in e && (n += e[i.value])
: i.type == 'paren.lparen'
? (n += i.value.length)
: i.type == 'paren.rparen' && (n -= i.value.length)
}
return n < 0 ? -1 : n > 0 ? 1 : 0
}
;(this.lineCommentStart = '--'), (this.blockComment = { start: '--[', end: ']--' })
var e = {
function: 1,
then: 1,
do: 1,
else: 1,
elseif: 1,
repeat: 1,
end: -1,
until: -1,
},
t = ['else', 'elseif', 'end', 'until']
;(this.getNextLineIndent = function (e, t, r) {
var i = this.$getIndent(t),
s = 0,
o = this.getTokenizer().getLineTokens(t, e),
u = o.tokens
return (
e == 'start' && (s = n(u)),
s > 0
? i + r
: s < 0 && i.substr(i.length - r.length) == r && !this.checkOutdent(e, t, '\n')
? i.substr(0, i.length - r.length)
: i
)
}),
(this.checkOutdent = function (e, n, r) {
if (r != '\n' && r != '\r' && r != '\r\n') return !1
if (n.match(/^\s*[\)\}\]]$/)) return !0
var i = this.getTokenizer().getLineTokens(n.trim(), e).tokens
return !i || !i.length ? !1 : i[0].type == 'keyword' && t.indexOf(i[0].value) != -1
}),
(this.getMatching = function (t, n, r) {
if (n == undefined) {
var i = t.selection.lead
;(r = i.column), (n = i.row)
}
var s = t.getTokenAt(n, r)
if (s && s.value in e) return this.foldingRules.luaBlock(t, n, r, !0)
}),
(this.autoOutdent = function (e, t, n) {
var r = t.getLine(n),
i = r.match(/^\s*/)[0].length
if (!i || !n) return
var s = this.getMatching(t, n, i + 1)
if (!s || s.start.row == n) return
var o = this.$getIndent(t.getLine(s.start.row))
o.length != i &&
(t.replace(new u(n, 0, n, i), o), t.outdentRows(new u(n + 1, 0, n + 1, 0)))
}),
(this.createWorker = function (e) {
var t = new a(['ace'], 'ace/mode/lua_worker', 'Worker')
return (
t.attachToDocument(e.getDocument()),
t.on('annotate', function (t) {
e.setAnnotations(t.data)
}),
t.on('terminate', function () {
e.clearAnnotations()
}),
t
)
}),
(this.$id = 'ace/mode/lua'),
(this.snippetFileId = 'ace/snippets/lua')
}.call(f.prototype),
(t.Mode = f)
}
)
;(function () {
ace.require(['ace/mode/lua'], function (m) {
if (typeof module == 'object' && typeof exports == 'object' && module) {
module.exports = m
}
})
})()