mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt some
This commit is contained in:
parent
81f7175f64
commit
e3f879e74f
@ -389,6 +389,7 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
|
||||
},
|
||||
localStorage: function(can, key, value) {
|
||||
if (value != undefined) { localStorage.setItem(key, JSON.stringify(value)) }
|
||||
return localStorage.getItem(key)
|
||||
return can.base.Obj(localStorage.getItem(key), {})
|
||||
},
|
||||
})
|
||||
|
@ -10,9 +10,8 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg) {
|
||||
},
|
||||
_plugin: function(can, river, storm, sub, meta) { sub._target._meta = meta, sub._target._plugin = sub
|
||||
meta.id && (sub._option.dataset = sub._option.dataset||{}, sub._option.dataset.id = meta.id)
|
||||
can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth())
|
||||
sub.Mode(can.Mode()), can.page.style(can, sub._output, html.MAX_WIDTH, can.ConfWidth())
|
||||
|
||||
sub.Mode(can.Mode())
|
||||
sub.run = function(event, cmds, cb) {
|
||||
return can.run(sub.request(event, {width: sub.ConfWidth(), height: sub.ConfHeight()}), can.misc.concat(can, [river, storm, meta.id||meta.index], cmds), cb)
|
||||
}, can._plugins = can.misc.concat(can, can._plugins, [sub])
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONFIGURE, {help: "控件详情", img: {
|
||||
Volcanos(chat.ONFIGURE, {img: {
|
||||
_init: function(can, target) { can.onmotion.hidden(can, target)
|
||||
for (var i = 0; i < 1; i++) {
|
||||
can.page.Append(can, target.parentNode, [{type: html.DIV, style: {width: 90, height: 90, "background-color": "yellow"}, onclick: function(event) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
Volcanos(chat.ONFIGURE, {help: "控件详情", key: {
|
||||
Volcanos(chat.ONFIGURE, {key: {
|
||||
_load: function(event, can, cbs, target, name, value) {
|
||||
can.runAction(event, mdb.INPUTS, [name, value||target.value], function(msg) {
|
||||
if (name == ctx.INDEX) {
|
||||
@ -44,7 +44,6 @@ Volcanos(chat.ONFIGURE, {help: "控件详情", key: {
|
||||
onclick: function(event, can, meta, cb, target) {
|
||||
target._can && target._can.close()
|
||||
can.onfigure.key._make(event, can, meta, cb, target)
|
||||
// can.onmotion.focus(can, target)
|
||||
},
|
||||
onfocus: function(event, can, meta, cb, target, last) {
|
||||
can.onfigure.key._make(event, can, meta, cb, target)
|
||||
|
@ -15,7 +15,11 @@ Volcanos(chat.ONIMPORT, {help: "导入数据",
|
||||
|
||||
function show(skip) { if (can.isCmdMode()) { can.onimport._title(can, path+file) }
|
||||
can._msg && can._msg.Option(nfs.LINE, can.Option(nfs.LINE)), can._msg = can.tabview[key]
|
||||
can.Option(can.onimport.history(can, {path: path, file: file, line: line||can._msg.Option(nfs.LINE)||1}))
|
||||
|
||||
can.Option(can.onimport.history(can, {path: path, file: file, line: line||
|
||||
can.user.localStorage(can, "web.code.vimer.selectLine:"+path+file)||
|
||||
can._msg.Option(nfs.LINE)||
|
||||
1}))
|
||||
can.onsyntax._init(can, can._msg, function(content) { var msg = can._msg
|
||||
can.onexport.hash(can), msg._tab && can.onmotion.select(can, msg._tab.parentNode, html.DIV_TABS, msg._tab)
|
||||
can.ui._path && (can.ui._path.innerHTML = isDream()? can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: can.Option(nfs.FILE)})):
|
||||
@ -459,7 +463,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
can.extentions[url.split("?")[0]] = sub, can.base.isFunc(cb)? cb(sub): sub.select()
|
||||
}) })
|
||||
},
|
||||
sess: function(can, sess, cb) { sess = sess||can.user.localStorage(can, "web.code.inner.sess")
|
||||
sess: function(can, sess, cb) { sess = sess||can.base.Obj(can.user.localStorage(can, "web.code.inner.sess"), {})
|
||||
can.core.Next(sess.plug, function(item, next) { can.onimport.toolkit(can, {index: item}, function(sub) { can.toolkit[item] = sub, next() }) }, function() {
|
||||
can.core.Next(sess.exts, function(item, next) { can.onimport.exts(can, item, next) }, function() {
|
||||
var path = can.Option(nfs.PATH), file = can.Option(nfs.FILE), line = can.Option(nfs.LINE)
|
||||
|
@ -204,15 +204,15 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
"defer": code.KEYWORD,
|
||||
"return": code.KEYWORD,
|
||||
|
||||
"false": "constant",
|
||||
"true": "constant",
|
||||
"nil": "constant",
|
||||
"iota": "constant",
|
||||
"-1": "constant",
|
||||
"0": "constant",
|
||||
"1": "constant",
|
||||
"2": "constant",
|
||||
"3": "constant",
|
||||
"false": code.CONSTANT,
|
||||
"true": code.CONSTANT,
|
||||
"nil": code.CONSTANT,
|
||||
"iota": code.CONSTANT,
|
||||
"-1": code.CONSTANT,
|
||||
"0": code.CONSTANT,
|
||||
"1": code.CONSTANT,
|
||||
"2": code.CONSTANT,
|
||||
"3": code.CONSTANT,
|
||||
|
||||
"int": code.DATATYPE, "int8": code.DATATYPE, "int16": code.DATATYPE, "int32": code.DATATYPE, "int64": code.DATATYPE,
|
||||
"uint": code.DATATYPE, "uint8": code.DATATYPE, "uint16": code.DATATYPE, "uint32": code.DATATYPE, "uint64": code.DATATYPE,
|
||||
@ -315,9 +315,16 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
},
|
||||
},
|
||||
css: {
|
||||
split: {
|
||||
operator: ".>{:;}",
|
||||
},
|
||||
regexp: {
|
||||
"[0-9]+px": code.CONSTANT,
|
||||
},
|
||||
keyword: {
|
||||
"body": code.KEYWORD,
|
||||
"div": code.KEYWORD,
|
||||
"img": code.KEYWORD,
|
||||
"span": code.KEYWORD,
|
||||
"form": code.KEYWORD,
|
||||
"fieldset": code.KEYWORD,
|
||||
@ -373,33 +380,32 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
"margin-bottom": code.FUNCTION,
|
||||
"box-shadow": code.FUNCTION,
|
||||
|
||||
"0": "constant",
|
||||
"10px": "constant",
|
||||
"20px": "constant",
|
||||
"cyan": "constant",
|
||||
"gray": "constant",
|
||||
"yellow": "constant",
|
||||
"black": "constant",
|
||||
"white": "constant",
|
||||
"blue": "constant",
|
||||
"red": "constant",
|
||||
"green": "constant",
|
||||
"magenta": "constant",
|
||||
"0": code.CONSTANT,
|
||||
"cyan": code.CONSTANT,
|
||||
"gray": code.CONSTANT,
|
||||
"yellow": code.CONSTANT,
|
||||
"black": code.CONSTANT,
|
||||
"white": code.CONSTANT,
|
||||
"blue": code.CONSTANT,
|
||||
"red": code.CONSTANT,
|
||||
"green": code.CONSTANT,
|
||||
"magenta": code.CONSTANT,
|
||||
|
||||
"monospace": "constant",
|
||||
"bold": "constant",
|
||||
"solid": "constant",
|
||||
"none": "constant",
|
||||
"block": "constant",
|
||||
"contexts": "constant",
|
||||
"both": "constant",
|
||||
"auto": "constant",
|
||||
"monospace": code.CONSTANT,
|
||||
"hidden": code.CONSTANT,
|
||||
"bold": code.CONSTANT,
|
||||
"solid": code.CONSTANT,
|
||||
"none": code.CONSTANT,
|
||||
"block": code.CONSTANT,
|
||||
"contexts": code.CONSTANT,
|
||||
"both": code.CONSTANT,
|
||||
"auto": code.CONSTANT,
|
||||
|
||||
"center": "constant",
|
||||
"relative": "constant",
|
||||
"absolute": "constant",
|
||||
"sticky": "constant",
|
||||
"fixed": "constant",
|
||||
"center": code.CONSTANT,
|
||||
"relative": code.CONSTANT,
|
||||
"absolute": code.CONSTANT,
|
||||
"sticky": code.CONSTANT,
|
||||
"fixed": code.CONSTANT,
|
||||
},
|
||||
},
|
||||
iml: {
|
||||
@ -426,8 +432,8 @@ Volcanos(chat.ONSYNTAX, {help: "语法高亮",
|
||||
"style": code.FUNCTION,
|
||||
"width": code.FUNCTION,
|
||||
|
||||
"auto": "constant",
|
||||
"username": "constant",
|
||||
"auto": code.CONSTANT,
|
||||
"username": code.CONSTANT,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
@ -27,7 +27,7 @@ Volcanos(chat.ONIMPORT, {help: "导入数据", _init: function(can, msg, cb, tar
|
||||
}, [""])
|
||||
Volcanos(chat.ONFIGURE, {help: "索引导航",
|
||||
create: function(can, target, zone, path) {
|
||||
can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat(window.webview? ["vim", "录屏", "日志", "编辑器", "浏览器"]: []), target): can.onmotion.hidden(can, target.parentNode)
|
||||
can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)).concat(window.webview? ["查找", "vim", "录屏", "日志", "编辑器", "浏览器"]: ["查找"]), target): can.onmotion.hidden(can, target.parentNode)
|
||||
},
|
||||
recent: function(can, target, zone, path) { var total = 0
|
||||
function show(msg, cb) {
|
||||
@ -114,6 +114,7 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
|
||||
p: shy("添加插件", function(event, can) { can.onaction["插件"](event, can) }),
|
||||
e: shy("添加扩展", function(event, can) { can.onaction["扩展"](event, can) }),
|
||||
g: shy("打开搜索", function(event, can) { can.onimport.exts(can, "inner/search.js") }),
|
||||
y: shy("添加插件", function(event, can) { can.onaction["查找"](event, can) }),
|
||||
|
||||
i: shy("插入模式", function(event, can) { can.onkeymap._insert(event, can) }),
|
||||
n: shy("命令模式", function(event, can) { can.onkeymap._normal(event, can) }),
|
||||
@ -346,7 +347,34 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
"浏览器": function(event, can) {
|
||||
window.openurl(location.href)
|
||||
},
|
||||
"查找": function(event, can) {
|
||||
var ui = can.page.Append(can, can._output, [{view: "vimer find", list: [html.ACTION, html.OUTPUT], style: {position: "absolute", left: can.ui.project.offsetWidth, top: 320}}])
|
||||
can.onmotion.move(can, ui.first)
|
||||
|
||||
function find(begin, text) {
|
||||
for (begin; begin <= can.max; begin++) {
|
||||
if (can.onexport.text(can, can.onaction._getLine(can, begin)).indexOf(text) > -1) {
|
||||
return can.onaction.selectLine(can, begin), can.current.scroll(can.current.scroll()-5)
|
||||
}
|
||||
}
|
||||
}
|
||||
function complete(target) {
|
||||
can.onappend.figure(can, {action: "key", mode: "simple", run: function(event, cmds, cb) {
|
||||
var msg = can.request(event); can.core.List(can.core.Split(can.current.text(), "\t \n:,{}"), function(value) { msg.Push("value", value) }), cb(msg)
|
||||
}}, target)
|
||||
}
|
||||
|
||||
var from, to
|
||||
var meta = can.onappend._action(can, [
|
||||
{type: "text", name: "from", _init: function(target) { from = target, complete(target), can.onmotion.delay(can, function() { target.focus() }) }},
|
||||
{type: "text", name: "to", _init: function(target) { to = target, complete(target) }},
|
||||
"find", "next", "replace", "close"], ui.action, {
|
||||
find: function() { find(1, from.value) },
|
||||
next: function() { find(can.onaction.selectLine(can)+1, from.value) },
|
||||
replace: function() { can.current.text(can.current.text().replace(from.value, to.value)), meta.next() },
|
||||
close: function() { can.page.Remove(can, ui.first) },
|
||||
})
|
||||
},
|
||||
_complete: function(event, can, target) { target = target||can.ui.complete
|
||||
if (event == undefined) { return }
|
||||
var pre = can.ui.current.value.slice(0, can.ui.current.selectionStart)
|
||||
@ -412,6 +440,7 @@ Volcanos(chat.ONACTION, {help: "控件交互",
|
||||
if (event && event.type == "click") { can.onkeymap._insert(event, can, 0, (event.offsetX)/12-1) }
|
||||
target.focus(), can.ui.content.scrollLeft -= 10000
|
||||
})
|
||||
can.user.localStorage(can, "web.code.vimer.selectLine:"+can.Option(nfs.PATH)+can.Option(nfs.FILE), can.onaction._getLineno(can, can.current.line))
|
||||
},
|
||||
|
||||
_getLine: function(can, line) {
|
||||
|
@ -131,7 +131,7 @@ Volcanos(chat.ONDETAIL, {help: "组件菜单", list: ["关闭", "下载", "删
|
||||
sub.run = function(event, cmds, cb) { return can.run(event, cmds, cb, true) }
|
||||
|
||||
sub.getActionSize(function(msg, left, top, width, height) {
|
||||
sub.page.style(sub, sub._target, {left: left, top: top})
|
||||
sub.page.style(sub, sub._target, {left: left||0, top: top||0})
|
||||
sub.page.style(sub, sub._output, html.WIDTH, width, html.HEIGHT, height-2*html.ACTION_HEIGHT)
|
||||
sub.onappend._action(can, can.ondetail.list, sub._action, can.ondetail)
|
||||
sub.onappend._status(sub, ["begin", "file"])
|
||||
@ -158,7 +158,7 @@ Volcanos(chat.ONDETAIL, {help: "组件菜单", list: ["关闭", "下载", "删
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {help: "导出数据", list: [cli.BEGIN, mdb.LIMIT, mdb.TOTAL, nfs.FILE, "position"],
|
||||
height: function(can) { var height = can.Action(html.HEIGHT)
|
||||
return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height)
|
||||
return parseInt(height == ice.AUTO? can.base.Min(can.ConfHeight()/4, 200): height)||200
|
||||
},
|
||||
position: function(can, index, total) { total = total || can.max
|
||||
return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+ice.PS+parseInt(total)
|
||||
|
@ -133,8 +133,8 @@ Volcanos(chat.ONACTION, {help: "交互操作", list: [
|
||||
},
|
||||
"切换全屏": function(event, can, button, sub) {
|
||||
can.onaction._switch(can, sub, "full", function() { can.ConfWidth(window.innerWidth)
|
||||
can.page.style(can, can._target, html.LEFT, "", html.BOTTOM, "")
|
||||
can.ConfHeight(window.innerHeight-html.ACTION_HEIGHT-can.onexport.statusHeight(can)-(can.user.isMobile? 2*html.ACTION_HEIGHT: 0))
|
||||
can.page.style(can, can._target, html.LEFT, "", html.BOTTOM, "")
|
||||
can.ConfHeight(window.innerHeight-html.ACTION_HEIGHT-can.onexport.statusHeight(can)-(can.user.isMobile? 2*html.ACTION_HEIGHT: 0))
|
||||
}, function() {})
|
||||
},
|
||||
"共享工具": function(event, can) { var meta = can.Conf()
|
||||
|
Loading…
x
Reference in New Issue
Block a user