1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00

opt inner.js

This commit is contained in:
IT 老营长 @云轩领航-创始人 2022-01-20 09:32:34 +08:00
parent e2c81e458b
commit 711534702a
4 changed files with 39 additions and 25 deletions

View File

@ -230,7 +230,9 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
if (can._daemon) { msg._daemon = can._daemon }
}
if (msg.Option("_toast")) { var toast = can.user.toast(can, msg.Option("_toast"), "", -1) }
return can.run(event, cmds, function(msg) { var sub = can.core.Value(can, "_outputs.-1")||{}; can._msg = msg, sub._msg = msg
toast && toast.close()
var process = msg._can == can || msg._can == sub
if (process && can.core.CallFunc([sub, "onimport._process"], {can: sub, msg: msg})) { return }
if (process && can.core.CallFunc([can, "onimport._process"], {can: can, msg: msg})) { return }
@ -653,7 +655,7 @@ Volcanos("onmotion", {help: "动态特效", list: [], _init: function(can, targe
}).length > 0
},
delay: function(can, cb) {
can.core.Timer(10, cb)
can.core.Timer(50, cb)
},
hidden: function(can, target, show) {

View File

@ -15,9 +15,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
},
_plugin: function(can, river, storm, sub, meta) { sub._target._meta = meta
sub.run = function(event, cmds, cb) { var msg = sub.request(event)
if (msg.Option("_toast")) { var toast = can.user.toast(can, msg.Option("_toast"), "", -1) }
return can.run(event, can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), function(msg) {
toast && toast.close(), can.base.isFunc(cb) && cb(msg)
can.base.isFunc(cb) && cb(msg)
})
}, can._plugins = can.misc.concat(can, can._plugins, [sub])

View File

@ -174,10 +174,10 @@ Volcanos("onsyntax", {help: "语法高亮", list: ["keyword", "prefix", "line"],
can.page.Modify(can, can.ui.profile, {style: {display: p? p.profile_display: html.NONE}})
can.page.Modify(can, can.ui.display, {style: {display: p? p.display_display: html.NONE}})
can.onmotion.select(can, can._action, chat.DIV_TABS, msg._tab)
msg.Option(ctx.INDEX) && can.core.Timer(10, function() {
can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
can.onmotion.delay(can, function() { can.onimport.layout(can)
msg.Option(ctx.INDEX) && can.onmotion.focus(can, can.page.Select(can, can.ui.content, html.OPTION_ARGS)[0])
})
return can.onimport.layout(can), can.file
return can.file
}, can.ui.content, can.ui.profile_output, can.ui.display_output)) {
return can.onaction.selectLine(null, can, msg.Option(nfs.LINE)), can.base.isFunc(cb) && cb()
}
@ -248,10 +248,10 @@ Volcanos("onkeymap", {help: "导入数据", _init: function(can, msg, cb, target
v: function(event, can) { can.onaction["展示"](event, can) },
s: function(event, can) { can.onaction["保存"](event, can) },
j: function(event, can) { can.onaction.scrollLine(can, 1) },
k: function(event, can) { can.onaction.scrollLine(can, -1) },
J: function(event, can) { can.onaction.scrollLine(can, 20) },
K: function(event, can) { can.onaction.scrollLine(can, -20) },
j: function(event, can) { can.current.scroll(1) },
k: function(event, can) { can.current.scroll(-1) },
J: function(event, can) { can.current.scroll(can.current.window()-3) },
K: function(event, can) { can.current.scroll(-can.current.window()+3) },
i: function(event, can) { can.onkeymap._insert(event, can) },
n: function(event, can) { can.onkeymap._normal(event, can) },
@ -290,17 +290,16 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
"保存": function(event, can) { can.onexport.sess(can), can.user.toastSuccess(can) },
"项目": function(event, can) { can.onmotion.toggle(can, can.ui.project), can.onimport.layout(can) },
"工具": function(event, can) { can.onmotion.toggle(can, can.ui.toolkit.fieldset) },
"展示": function(event, can) { can.onimport.profile(can)
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
can.onimport.profile(can, msg)
}, true)
},
"执行": function(event, can) { can.onimport.display(can)
can.request(event, {_toast: "执行中..."})
"执行": function(event, can) { can.onimport.display(can), can.request(event, {_toast: "执行中..."})
can.run(event, [ctx.ACTION, mdb.ENGINE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
can.onimport.display(can, msg)
}, true)
},
"展示": function(event, can) { can.onimport.profile(can), can.request(event, {_toast: "渲染中..."})
can.run(event, [ctx.ACTION, mdb.RENDER, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
can.onimport.profile(can, msg)
}, true)
},
"清屏": function(event, can) {
if (can.page.Select(can, document.body, ".input.float", function(item) {
return can.page.Remove(can, item)
@ -365,17 +364,17 @@ Volcanos("onaction", {help: "控件交互", list: ["搜索", "打开", "添加",
}}
]}]); return ui.tr
},
selectLine: function(event, can, line) { if (!line) { return }
can.page.Select(can, can.ui.content, html.TR, function(item, index) {
selectLine: function(event, can, line) { if (!line) { return parseInt(can.core.Value(can.page.Select(can, can.ui.content, [[[html.TR, html.SELECT], [html.TD, "line"]]])[0], "innerText")) }
can.page.Select(can, can.ui.content, html.TR, function(item, index, array) { if (line < 0 || line > array.length) { return }
if (!can.page.ClassList.set(can, item, html.SELECT, item == line || index+1 == line)) { return }
line = item, can.Status(kit.Dict("文件名", can.file, "解析器", can.parse, "当前行", can.onexport.position(can, can.Option(nfs.LINE, index+1))))
})
can.base.isObject(line) && can.page.Select(can, line, "td.text", function(item) {
can.current = {
window: function() { return can.ui.content.offsetHeight/can.current.line.offsetHeight },
window: function() { return parseInt(can.ui.content.offsetHeight/can.current.line.offsetHeight) },
scroll: function(count) { if (count) { can.ui.content.scrollTop += count*can.current.line.offsetHeight }
return (can.current.line.offsetTop-can.ui.content.scrollTop)/can.current.line.offsetHeight
return parseInt((can.current.line.offsetTop-can.ui.content.scrollTop)/can.current.line.offsetHeight)
},
prev: function() { return line.previousSibling },

View File

@ -9,11 +9,15 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
can.ui.current = can.page.Append(can, can.ui.content.parentNode, [
{view: ["current", html.INPUT], onkeydown: function(event) { if (event.metaKey) { return }
can.misc.Debug("key", event.key)
can._keylist = can.onkeymap._parse(event, can, can.mode, can._keylist, can.ui.current)
can._keylist = can.onkeymap._parse(event, can, can.mode+(event.ctrlKey? "_ctrl": ""), can._keylist, can.ui.current)
can.mode == "insert" && can.core.Timer(10, function() { can.current.text(can.ui.current.value) })
can.mode == "normal" && can.Status("按键", can._keylist.join(""))
can.mode == "normal" && can.onkeymap.prevent(event)
}, onclick: function(event) { can.onkeymap._insert(event, can) }},
}, onclick: function(event) { can.onkeymap._insert(event, can) },
ondblclick: function(event) { var target = event.target
can.onaction.searchLine(event, can, target.value.slice(target.selectionStart, target.selectionEnd))
},
},
]).first
},
}, [""])
@ -33,6 +37,16 @@ Volcanos("onkeymap", {help: "键盘交互", list: [],
},
_mode: {
normal_ctrl: {
f: function(event, can, target, count) {
var line = can.onaction.selectLine(event, can)+can.current.window()-3-can.current.scroll()
return can.current.scroll(line), can.onaction.selectLine(event, can, line), true
},
b: function(event, can, target, count) {
var line = can.onaction.selectLine(event, can)-can.current.window()+3
return can.current.scroll(line), can.onaction.selectLine(event, can, line), true
},
},
normal: {
escape: function(event, can) { can.onkeymap._plugin(event, can) },
ArrowLeft: function(event, can, target) { can.onkeymap.cursorMove(can, target, -1) },
@ -103,7 +117,7 @@ Volcanos("onkeymap", {help: "键盘交互", list: [],
},
}, _engine: {},
})
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE],
Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE, "autogen", "compile", "binpack"],
save: function(event, can) { var msg = can.request(event, {content: can.onexport.content(can)})
can.run(event, [ctx.ACTION, nfs.SAVE, can.parse, can.Option(nfs.FILE), can.Option(nfs.PATH)], function(msg) {
can.user.toastSuccess(can)
@ -115,7 +129,7 @@ Volcanos("onaction", {help: "控件交互", list: [nfs.SAVE],
can.page.Modify(can, can.ui.current, {style: kit.Dict(html.LEFT, td.offsetLeft-1, html.WIDTH,td.offsetWidth-12), value: td.innerText})
if (event) { if (can.mode == "plugin") { can.onkeymap._insert(event, can) }
can.ui.current.focus(), can.onkeymap.cursorMove(can, can.ui.current, 0, (event.offsetX)/13-1)
can.ui.content.scrollLeft -= td.offsetLeft
can.ui.content.scrollLeft -= 10000
}
})
},