mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt code
This commit is contained in:
parent
58f746753c
commit
0139cd75aa
1
frame.js
1
frame.js
@ -122,7 +122,6 @@ Volcanos(chat.ONDAEMON, {help: "推荐引擎", _init: function(can, name) { if (
|
|||||||
refresh: function(can, msg, sub) { sub.Update() },
|
refresh: function(can, msg, sub) { sub.Update() },
|
||||||
input: function(can, msg, sub, arg) {
|
input: function(can, msg, sub, arg) {
|
||||||
can.page.Select(can, sub._target, "input:focus", function(target) {
|
can.page.Select(can, sub._target, "input:focus", function(target) {
|
||||||
// can.page.Select(can, sub._target, "input", function(target) {
|
|
||||||
target.value += arg[0]
|
target.value += arg[0]
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -8,123 +8,77 @@ Volcanos(chat.ONFIGURE, {help: "控件详情", keyboard: {
|
|||||||
_make: function(event, can, meta, cb, target, last) {
|
_make: function(event, can, meta, cb, target, last) {
|
||||||
var sub = target._can; if (sub && sub._cbs) { return }
|
var sub = target._can; if (sub && sub._cbs) { return }
|
||||||
cb(function(sub, cbs) { sub._cbs = cbs
|
cb(function(sub, cbs) { sub._cbs = cbs
|
||||||
can.onfigure.keyboard._show(can, sub, target)
|
can.onfigure.keyboard._show(sub, target)
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_show: function(can, sub, target) {
|
_show: function(can, target) { can.require(["/plugin/input/keyboard.css"])
|
||||||
can.require(["/plugin/input/keyboard.css"])
|
var msg = can.request({}); can.onfigure.keyboard._normal(can, msg)
|
||||||
var msg = can.request({}); can.onfigure.keyboard._normal(can, msg)
|
var keys = {}; function hold(value, div) { keys[value.name] = div, can.page.ClassList.add(can, div, "hold") }
|
||||||
var keys = {}; function hold(value, div) { keys[value.name] = div, can.page.ClassList.add(can, div, "hold") }
|
msg.Table(function(value) { value.type == "head" && can.page.Append(can, can._output, "br")
|
||||||
msg.Table(function(value) { value.type == "head" && can.page.Append(can, can._output, "br")
|
var t = value.type+" "+value.name+(value.name.indexOf("\n")>-1? " double": value.name.length>1? " special": "")
|
||||||
var t = value.type+" "+value.name+(value.name.indexOf("\n")>-1? " double": value.name.length>1? " special": "")
|
var div = can.page.Append(can, can._output, [{view: t, list: [{text: [value.name]}], onclick: function(event) {
|
||||||
var div = can.page.Append(can, sub._output, [{view: t, list: [{text: [value.name]}], onclick: function(event) {
|
switch (value.name) {
|
||||||
switch (value.name) {
|
case "Esc":
|
||||||
case "Ctrl":
|
can.page.Remove(can, can._target)
|
||||||
can._ctrl = !can._ctrl, hold(value, div)
|
delete(target._can)
|
||||||
break
|
break
|
||||||
case "Shift":
|
case "Ctrl":
|
||||||
can._shift = !can._shift, hold(value, div)
|
can._ctrl = !can._ctrl, hold(value, div)
|
||||||
break
|
break
|
||||||
case "Backspace":
|
case "Shift":
|
||||||
|
can._shift = !can._shift, hold(value, div)
|
||||||
|
break
|
||||||
|
case "Backspace":
|
||||||
|
if (can.base.isFunc(target)) {
|
||||||
|
target(value.name)
|
||||||
|
} else {
|
||||||
target.value = target.value.slice(0, -1)
|
target.value = target.value.slice(0, -1)
|
||||||
break
|
}
|
||||||
case "Enter":
|
target.focus(), can.user.toast(can, value.name)
|
||||||
break
|
break
|
||||||
case "Esc":
|
case "Enter":
|
||||||
break
|
break
|
||||||
default:
|
case "Esc":
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
function add(value) {
|
||||||
if (can.base.isFunc(target)) {
|
if (can.base.isFunc(target)) {
|
||||||
target(value.name)
|
target(value)
|
||||||
return
|
|
||||||
}
|
|
||||||
can._shift = can._shift||event.shiftKey
|
|
||||||
if (value.name == "Space") {
|
|
||||||
target.value += " "
|
|
||||||
} else if (value.name.indexOf("\n") > -1) {
|
|
||||||
var ls = can.core.Split(value.name, "\n", "\n", "\n")
|
|
||||||
target.value += can._shift? ls[0]: ls[1]
|
|
||||||
} else if (can._shift) {
|
|
||||||
target.value += value.name.toUpperCase()
|
|
||||||
} else {
|
} else {
|
||||||
target.value += value.name
|
target.value += value
|
||||||
|
target.focus(), can.user.toast(can, value.name)
|
||||||
}
|
}
|
||||||
can.core.Item(keys, function(key, div) {
|
}
|
||||||
can.page.ClassList.del(can, div, "hold")
|
|
||||||
}), can._ctrl = false, can._shift = false
|
can._shift = can._shift||event.shiftKey
|
||||||
}
|
if (value.name == "Tab") {
|
||||||
target.focus(), can.user.toast(can, value.name)
|
add("\t")
|
||||||
} }]).first
|
} else if (value.name == "Space") {
|
||||||
})
|
add(" ")
|
||||||
|
} else if (value.name.indexOf("\n") > -1) {
|
||||||
|
var ls = can.core.Split(value.name, "\n", "\n", "\n")
|
||||||
|
add(can._shift? ls[0]: ls[1])
|
||||||
|
} else if (can._shift) {
|
||||||
|
add(value.name.toUpperCase())
|
||||||
|
} else {
|
||||||
|
add(value.name)
|
||||||
|
}
|
||||||
|
can.core.Item(keys, function(key, div) {
|
||||||
|
can.page.ClassList.del(can, div, "hold")
|
||||||
|
}), can._ctrl = false, can._shift = false
|
||||||
|
}
|
||||||
|
} }]).first
|
||||||
|
})
|
||||||
},
|
},
|
||||||
_normal: function(can, msg) {
|
_normal: function(can, msg) {
|
||||||
msg.Push({type: "key head", name: "Esc"})
|
can.core.List([["Esc"],
|
||||||
|
["~\n`", "!\n1", "@\n2", "#\n3", "$\n4", "%\n5", "^\n6", "&\n7", "*\n8", "(\n9", ")\n0", "_\n-", "+\n=", "Backspace"],
|
||||||
msg.Push({type: "key head", name: "~\n`"})
|
["Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "{\n[", "}\n]", "|\n\\"],
|
||||||
msg.Push({type: "key", name: "!\n1"})
|
["Ctrl", "a", "s", "d", "f", "g", "h", "j", "k", "l", ":\n;", "\"\n'", "Enter"],
|
||||||
msg.Push({type: "key", name: "@\n2"})
|
["Shift", "z", "x", "c", "v", "b", "n", "m", "<\n,", ">\n.", "?\n/", "Shift"],
|
||||||
msg.Push({type: "key", name: "#\n3"})
|
["Ctrl", "Win", "Alt", "Space", "Alt", "Win", "Ctrl"],
|
||||||
msg.Push({type: "key", name: "$\n4"})
|
], function(list) { can.core.List(list, function(item, index) {
|
||||||
msg.Push({type: "key", name: "%\n5"})
|
msg.Push(can.base.isObject(item)? item: {type: "key"+(index == 0? " head": index == list.length-1? " tail": ""), name: item})
|
||||||
msg.Push({type: "key", name: "^\n6"})
|
}) })
|
||||||
msg.Push({type: "key", name: "&\n7"})
|
|
||||||
msg.Push({type: "key", name: "*\n8"})
|
|
||||||
msg.Push({type: "key", name: "(\n9"})
|
|
||||||
msg.Push({type: "key", name: ")\n0"})
|
|
||||||
msg.Push({type: "key", name: "_\n-"})
|
|
||||||
msg.Push({type: "key", name: "+\n="})
|
|
||||||
msg.Push({type: "key", name: "Backspace"})
|
|
||||||
|
|
||||||
msg.Push({type: "key head", name: "Tab"})
|
|
||||||
msg.Push({type: "key", name: "q"})
|
|
||||||
msg.Push({type: "key", name: "w"})
|
|
||||||
msg.Push({type: "key", name: "e"})
|
|
||||||
msg.Push({type: "key", name: "r"})
|
|
||||||
msg.Push({type: "key", name: "t"})
|
|
||||||
msg.Push({type: "key", name: "y"})
|
|
||||||
msg.Push({type: "key", name: "u"})
|
|
||||||
msg.Push({type: "key", name: "i"})
|
|
||||||
msg.Push({type: "key", name: "o"})
|
|
||||||
msg.Push({type: "key", name: "p"})
|
|
||||||
msg.Push({type: "key", name: "{\n["})
|
|
||||||
msg.Push({type: "key", name: "}\n]"})
|
|
||||||
msg.Push({type: "key tail", name: "|\n\\"})
|
|
||||||
|
|
||||||
// msg.Push({type: "key head", name: "CapsLock"})
|
|
||||||
msg.Push({type: "key head", name: "Ctrl"})
|
|
||||||
msg.Push({type: "key", name: "a"})
|
|
||||||
msg.Push({type: "key", name: "s"})
|
|
||||||
msg.Push({type: "key", name: "d"})
|
|
||||||
msg.Push({type: "key", name: "f"})
|
|
||||||
msg.Push({type: "key", name: "g"})
|
|
||||||
msg.Push({type: "key", name: "h"})
|
|
||||||
msg.Push({type: "key", name: "j"})
|
|
||||||
msg.Push({type: "key", name: "k"})
|
|
||||||
msg.Push({type: "key", name: "l"})
|
|
||||||
msg.Push({type: "key", name: ":\n;"})
|
|
||||||
msg.Push({type: "key", name: "\"\n'"})
|
|
||||||
msg.Push({type: "key", name: "Enter"})
|
|
||||||
|
|
||||||
msg.Push({type: "key head", name: "Shift"})
|
|
||||||
msg.Push({type: "key", name: "z"})
|
|
||||||
msg.Push({type: "key", name: "x"})
|
|
||||||
msg.Push({type: "key", name: "c"})
|
|
||||||
msg.Push({type: "key", name: "v"})
|
|
||||||
msg.Push({type: "key", name: "b"})
|
|
||||||
msg.Push({type: "key", name: "n"})
|
|
||||||
msg.Push({type: "key", name: "m"})
|
|
||||||
msg.Push({type: "key", name: "<\n,"})
|
|
||||||
msg.Push({type: "key", name: ">\n."})
|
|
||||||
msg.Push({type: "key", name: "?\n/"})
|
|
||||||
msg.Push({type: "key tail", name: "Shift"})
|
|
||||||
|
|
||||||
msg.Push({type: "key head", name: "Ctrl"})
|
|
||||||
msg.Push({type: "key", name: "Win"})
|
|
||||||
msg.Push({type: "key", name: "Alt"})
|
|
||||||
msg.Push({type: "key", name: "Space"})
|
|
||||||
msg.Push({type: "key", name: "Alt"})
|
|
||||||
msg.Push({type: "key", name: "Win"})
|
|
||||||
msg.Push({type: "key", name: "Ctrl"})
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}})
|
}})
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
|
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
|
||||||
can.onappend.table(can, msg)
|
can.onappend.table(can, msg), can.onappend.board(can, msg)
|
||||||
can.onappend.board(can, msg)
|
var meta = {}; msg.Table(function(value, key) { meta[value.key] = value.value })
|
||||||
var meta = {}
|
|
||||||
msg.Table(function(value, key) { meta[value.key] = value.value })
|
|
||||||
can.require(["/plugin/input/keyboard.js"], function() {
|
can.require(["/plugin/input/keyboard.js"], function() {
|
||||||
can.onfigure.keyboard._show(can, can, function(value) {
|
can.onfigure.keyboard._show(can, function(value) {
|
||||||
can.runAction(can.request({}, meta, can.Option()), "input", [value])
|
can.runAction(can.request({}, meta, can.Option()), "input", [value])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -197,7 +197,7 @@ Volcanos(chat.ONACTION, {help: "控件交互", list: [],
|
|||||||
}); return parseInt(can.page.Select(can, line, "td.line")[0].innerText)
|
}); return parseInt(can.page.Select(can, line, "td.line")[0].innerText)
|
||||||
},
|
},
|
||||||
searchLine: function(event, can, value) {
|
searchLine: function(event, can, value) {
|
||||||
can.runAction(can.request(event, {name: value, text: can.current.text()}, can.Option()), NAVIGATE, [], function(msg) {
|
can.runAction(can.request(event, {name: value, text: can.current.text()}, can.Option()), code.NAVIGATE, [], function(msg) {
|
||||||
msg.Append(nfs.FILE)? can.onimport.tabview(can, msg.Append(nfs.PATH), msg.Append(nfs.FILE), msg.Append(nfs.LINE)):
|
msg.Append(nfs.FILE)? can.onimport.tabview(can, msg.Append(nfs.PATH), msg.Append(nfs.FILE), msg.Append(nfs.LINE)):
|
||||||
can.user.toast(can, "not found")
|
can.user.toast(can, "not found")
|
||||||
})
|
})
|
||||||
|
@ -13,6 +13,21 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
|||||||
"endif": code.KEYWORD,
|
"endif": code.KEYWORD,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
man: {
|
||||||
|
prefix: {
|
||||||
|
"NAME": code.KEYWORD,
|
||||||
|
"SYNOPSIS": code.KEYWORD,
|
||||||
|
"DESCRIPTION": code.KEYWORD,
|
||||||
|
|
||||||
|
"AUTHOR": code.KEYWORD,
|
||||||
|
"COPYRIGHT": code.KEYWORD,
|
||||||
|
"LIBRARY": code.KEYWORD,
|
||||||
|
"STANDARDS": code.KEYWORD,
|
||||||
|
"SEE ALSO": code.KEYWORD,
|
||||||
|
"HISTORY": code.KEYWORD,
|
||||||
|
"BUGS": code.KEYWORD,
|
||||||
|
},
|
||||||
|
},
|
||||||
h: {
|
h: {
|
||||||
render: {},
|
render: {},
|
||||||
link: "c",
|
link: "c",
|
||||||
@ -134,6 +149,28 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
|||||||
"rm": code.FUNCTION,
|
"rm": code.FUNCTION,
|
||||||
},
|
},
|
||||||
}, configure: {link: "sh"},
|
}, configure: {link: "sh"},
|
||||||
|
shy: {
|
||||||
|
prefix: {
|
||||||
|
"#": code.COMMENT,
|
||||||
|
},
|
||||||
|
keyword: {
|
||||||
|
"source": code.KEYWORD,
|
||||||
|
"return": code.KEYWORD,
|
||||||
|
"title": code.KEYWORD,
|
||||||
|
"premenu": code.KEYWORD,
|
||||||
|
"chapter": code.KEYWORD,
|
||||||
|
"section": code.KEYWORD,
|
||||||
|
"refer": code.KEYWORD,
|
||||||
|
"spark": code.KEYWORD,
|
||||||
|
"shell": code.KEYWORD,
|
||||||
|
"field": code.KEYWORD,
|
||||||
|
"chart": code.KEYWORD,
|
||||||
|
"label": code.KEYWORD,
|
||||||
|
"chain": code.KEYWORD,
|
||||||
|
"image": code.KEYWORD,
|
||||||
|
"sequence": code.KEYWORD,
|
||||||
|
},
|
||||||
|
},
|
||||||
go: {
|
go: {
|
||||||
render: {},
|
render: {},
|
||||||
keyword: {
|
keyword: {
|
||||||
@ -183,6 +220,25 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
|||||||
"complex": code.FUNCTION, "real": code.FUNCTION, "imag": code.FUNCTION,
|
"complex": code.FUNCTION, "real": code.FUNCTION, "imag": code.FUNCTION,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
godoc: {
|
||||||
|
render: {},
|
||||||
|
link: "go",
|
||||||
|
},
|
||||||
|
mod: {
|
||||||
|
split: {
|
||||||
|
operator: "()",
|
||||||
|
},
|
||||||
|
prefix: {
|
||||||
|
"//": code.COMMENT,
|
||||||
|
},
|
||||||
|
keyword: {
|
||||||
|
"go": code.KEYWORD,
|
||||||
|
"module": code.KEYWORD,
|
||||||
|
"require": code.KEYWORD,
|
||||||
|
"replace": code.KEYWORD,
|
||||||
|
"=>": code.KEYWORD,
|
||||||
|
},
|
||||||
|
},
|
||||||
js: {
|
js: {
|
||||||
render: {},
|
render: {},
|
||||||
split: {
|
split: {
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
|
||||||
can.onmotion.clear(can)
|
|
||||||
if (msg.Option("content")) {
|
|
||||||
can.onappend.plugin(can, {index: "web.code.vimer", style: "full"}, function(sub) {
|
|
||||||
sub.run = function(event, cmds, cb) { var res = can.request(event)
|
|
||||||
if (cmds[1] == "plugin") {
|
|
||||||
can.runAction(event, "vimer", cmds, cb)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (cmds[1] == "main.go") { res.Echo(msg.Option("content"))
|
|
||||||
can.onmotion.delay(can, function() { can.sub && can.sub.onaction["项目"]({}, can.sub) })
|
|
||||||
}
|
|
||||||
cb(res), can.sub = can.core.Value(sub, "_outputs.-1")
|
|
||||||
}
|
|
||||||
}, can._output)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
can.onappend.table(can, msg)
|
|
||||||
can.onappend.board(can, msg)
|
|
||||||
},
|
|
||||||
})
|
|
||||||
Volcanos(chat.ONACTION, {help: "操作数据", _init: function(can, msg, cb, target) {
|
|
||||||
},
|
|
||||||
run: function(event, can, msg) {
|
|
||||||
can.runAction(event, ice.RUN, ["go", "hi.go", can.sub.onexport.content(can.sub)], function(msg) {
|
|
||||||
can.onappend.board(can, msg)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
})
|
|
@ -1,7 +1,7 @@
|
|||||||
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, target) {
|
||||||
can.require(["inner.js"], function(can) { can.onimport.inner_init(can, msg, function() { can.undo = [], can.redo = []
|
can.require(["inner.js"], function(can) { can.onimport.inner_init(can, msg, function() { can.undo = [], can.redo = []
|
||||||
can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(msg._event, can) })
|
can.onengine.listen(can, "tabview.line.select", function(msg) { can.onaction._selectLine(msg._event, can) })
|
||||||
can.core.Item(can.onkeymap._mode.plugin, function(key, value) { can.onkeymap._mode.normal[key] = can.onkeymap._mode.normal[key]||value })
|
// can.core.Item(can.onkeymap._mode.plugin, function(key, value) { can.onkeymap._mode.normal[key] = can.onkeymap._mode.normal[key]||value })
|
||||||
can.onimport._input(can), can.onkeymap._build(can), can.onkeymap._plugin({}, can)
|
can.onimport._input(can), can.onkeymap._build(can), can.onkeymap._plugin({}, can)
|
||||||
can.page.ClassList.add(can, can._fields, code.VIMER), can.base.isFunc(cb) && cb(msg)
|
can.page.ClassList.add(can, can._fields, code.VIMER), can.base.isFunc(cb) && cb(msg)
|
||||||
can.onengine.plugin(can, can.onplugin)
|
can.onengine.plugin(can, can.onplugin)
|
||||||
|
@ -127,10 +127,10 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
|||||||
can.request(event, kit.Dict(ctx.INDEX, can._index, ice.MSG_DAEMON, can.core.Keys(can.ondaemon._list[0], can._daemon)))
|
can.request(event, kit.Dict(ctx.INDEX, can._index, ice.MSG_DAEMON, can.core.Keys(can.ondaemon._list[0], can._daemon)))
|
||||||
|
|
||||||
can.runAction(event, "keyboard", [], function(msg) {
|
can.runAction(event, "keyboard", [], function(msg) {
|
||||||
can.user.toast(can, {
|
can.onmotion.move(can, can.user.toast(can, {
|
||||||
title: msg.Append(mdb.NAME), duration: -1,
|
title: msg.Append(mdb.NAME), duration: -1,
|
||||||
content: msg.Append(mdb.TEXT), action: [cli.CLOSE, cli.OPEN],
|
content: msg.Append(mdb.TEXT), action: [cli.CLOSE, cli.OPEN],
|
||||||
}), can.user.copy(msg._event, can, msg.Append(mdb.NAME))
|
})._target, {}), can.user.copy(msg._event, can, msg.Append(mdb.NAME))
|
||||||
}, true)
|
}, true)
|
||||||
},
|
},
|
||||||
"打开链接": function(event, can) { var meta = can.Conf(), args = can.Option(); args.river = "", args.storm = ""
|
"打开链接": function(event, can) { var meta = can.Conf(), args = can.Option(); args.river = "", args.storm = ""
|
||||||
|
2
proto.js
2
proto.js
@ -144,7 +144,7 @@ var code = {
|
|||||||
|
|
||||||
TEMPLATE: "template",
|
TEMPLATE: "template",
|
||||||
COMPLETE: "complete",
|
COMPLETE: "complete",
|
||||||
NAVIGAET: "navigate",
|
NAVIGATE: "navigate",
|
||||||
}
|
}
|
||||||
var wiki = {
|
var wiki = {
|
||||||
TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark",
|
TITLE: "title", BRIEF: "brief", REFER: "refer", SPARK: "spark",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user