From 12b0be7eb0fbf8d7f9147739b5006da9b15a6e4e Mon Sep 17 00:00:00 2001 From: harveyshao Date: Sun, 1 Jan 2023 22:45:05 +0800 Subject: [PATCH] opt some --- frame.js | 10 ++++++---- plugin/local/code/inner.js | 2 +- plugin/local/code/xterm.js | 11 ++++------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/frame.js b/frame.js index 1010a503..97631bed 100644 --- a/frame.js +++ b/frame.js @@ -96,7 +96,7 @@ Volcanos(chat.ONDAEMON, {_init: function(can, name) { if (can.user.isLocalFile) }, input: function(can, msg, sub, arg) { can.page.Select(can, sub._target, "input:focus", function(target) { target.value += arg[0] }) }, grow: function(can, msg, sub, arg) { - if (sub.sup && sub.sup.onimport._grow) { return sub.sup.onimport._grow(sub.sup, msg, can.page.Color(arg.join(""))) } + if (sub.sup && sub.sup.onimport._grow) { return sub.sup.onimport._grow(sub.sup, msg, arg.join("")) } if (sub && sub.onimport._grow) { return sub.onimport._grow(sub, msg, can.page.Color(arg.join(""))) } }, close: function(can, msg, sub) { can.user.close() }, @@ -258,11 +258,13 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { var table = can.page.AppendTable(can, msg, target||can._output, msg.append, cb||function(value, key, index, line, array) { if (msg.append.length == 2 && msg.append[0] == mdb.KEY && msg.append[1] == mdb.VALUE) { if (key == mdb.VALUE) { key = line.key } line = {}, can.core.List(array, function(item) { line[item.key] = item.value }) - } function run(event, cmd, arg) { return can.run(can.request(event, line, can.Option()), [ctx.ACTION, cmd].concat(arg)) } + } function run(event, cmd, arg) { + return can.run(can.request(event, line, can.Option()), [ctx.ACTION, cmd].concat(arg)) + } return {text: [value, html.TD], onclick: function(event) { var target = event.target if (can.page.tagis(target, html.INPUT) && target.type == html.BUTTON) { can.request(event, {height: can.ConfHeight()-4-table.offsetHeight, width: can.ConfWidth()}) meta && meta[target.name]? can.user.input(can.request(event, {action: target.name}), can, meta[target.name], function(args) { run(event, target.name, args) }): run(event, target.name) - } else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, line) } + } else { can.sup.onimport.change(event, can.sup, key, event.target.innerText) || can.sup.onexport.record(can.sup, value, key, line) } }, ondblclick: function(event) { if ([mdb.KEY, mdb.HASH, mdb.ID].indexOf(key) > -1) { return } var item = can.core.List(can.Conf([ctx.FEATURE, mdb.INSERT]), function(item) { if (item.name == key) { return item } })[0]||{name: key, value: value} item.run = function(event, cmds, cb) { can.run(can.request(event, line), cmds, cb, true) } @@ -275,7 +277,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) { }, board: function(can, text, target) { text && text.Result && (text = text.Result()); if (!text) { return } var code = can.page.Append(can, target||can._output, [{text: [can.page.Color(text), html.DIV, html.CODE]}]).code - can.page.Select(can, target, html.INPUT_BUTTON, function(target) { + can.page.Select(can, code, html.INPUT_BUTTON, function(target) { target.onclick = function(event) { can.run(can.request(event, can.Option()), [ctx.ACTION, target.name]) } }); return code.scrollBy && code.scrollBy(0, 10000), code }, diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 10692cf1..0eaa3829 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -170,7 +170,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb, target) { can.onmotion.cl if (sub._delay_init == true) { sub._delay_init = false, can.onmotion.delay(can, function() { sub._output.innerHTML == "" && sub.Update() }) } } }, sub._legend.onmouseenter = null - sub.onexport.record = function(sub, line) { if (!line.file && !line.line) { return } + sub.onexport.record = function(sub, value, key, line) { if (!line.file && !line.line) { return } can.onimport.tabview(can, line.path||can.Option(nfs.PATH), can.base.trimPrefix(line.file, nfs.PWD)||can.Option(nfs.FILE), parseInt(line.line)) }, sub.onaction.close = sub.select = function() { return sub._legend.click(), sub } sub.onimport.size(sub, can.ConfHeight()/2, can.ConfWidth()-can.ui.project.offsetWidth, true), can.base.isFunc(cb) && cb(sub) diff --git a/plugin/local/code/xterm.js b/plugin/local/code/xterm.js index f84177bf..00373f63 100644 --- a/plugin/local/code/xterm.js +++ b/plugin/local/code/xterm.js @@ -1,23 +1,20 @@ -Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can) - can.onlayout._init(can) +Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can), can.onlayout._init(can) can.requireModules(["xterm/css/xterm.css", "xterm", "xterm-addon-fit", "xterm-addon-web-links"], function() { var item = {hash: can.Option(mdb.HASH)}; msg.Table(function(value) { can.core.Value(item, value.key, value.value) }) item.text && can.onmotion.delay(can, function() { can.onimport._input(can, item.text+ice.NL) }) can.onimport._connect(can, item), can.onappend.tools(can, msg, function(sub) { - sub._item_click = function(value, key) { can.onimport._input(can, value+ice.NL) } - }), can.base.isFunc(cb) && cb(msg), can.onappend._status(can) + sub.onexport.record = function(_, value, key, line) { can.onimport._input(can, value+ice.NL) } + }), msg.Option(ice.MSG_TOOLKIT, ""), can.base.isFunc(cb) && cb(msg), can.onappend._status(can) }) }, _connect: function(can, item) { var term = new Terminal({tabStopWidth: 4, cursorBlink: true}) var fitAddon = new FitAddon.FitAddon(); term.loadAddon(fitAddon), term._fit = fitAddon can.onmotion.delay(can, function() { fitAddon.fit() }) term.loadAddon(new WebLinksAddon.WebLinksAddon()) - term.onTitleChange(function(title) { can.sup.onimport.title(can, title) }) term.onResize(function(size) { can.onimport._resize(can, size) }) term.onData(function(data) { can.onimport._input(can, data) }) term.onCursorMove(function() { can.onexport.term(can) }) - can.sup.onimport.title(can, item.name) can._current = term, term._item = item term.open(can._output), term.focus() @@ -29,7 +26,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { can.onmotion.clear(can) _input: function(can, data) { if (!can._current) { return } can.runAction(can.request({}, can._current._item), "input", [btoa(data)], function() {}) }, - grow: function(can, msg) { can._current.write(msg.Option(mdb.TEXT)) }, + grow: function(can, msg, _arg) { can._current.write(_arg) }, }) Volcanos(chat.ONLAYOUT, { _init: function(can) {