From bfb6e331a9af69a29c9f2d236df66ae3843f7b1f Mon Sep 17 00:00:00 2001 From: shy Date: Fri, 17 May 2024 00:24:05 +0800 Subject: [PATCH] add some --- index.css | 4 - plugin/local/code/inner.css | 10 ++- plugin/local/code/inner.js | 162 +++++++++++------------------------- plugin/local/code/vimer.css | 12 ++- plugin/local/code/vimer.js | 26 ++---- plugin/table.js | 12 +-- 6 files changed, 72 insertions(+), 154 deletions(-) diff --git a/index.css b/index.css index b82249fd..05cb279a 100644 --- a/index.css +++ b/index.css @@ -211,10 +211,6 @@ div.project div.list { margin-left:var(--button-margin); clear:both; } div.project div.list { border-left:var(--disable-fg-color) dashed 1px; } div.project div.list fieldset { position:static; } div.project div.item.select { border-right:var(--box-notice3); } -fieldset.inner>div.output>div.project div.list { border-left:none; } -fieldset.vimer>div.output>div.project div.item.select { border-right:var(--box-border3); } -fieldset.vimer.normal>div.output>div.project div.item.select { border-right:var(--box-notice3); } -fieldset.vimer.insert>div.output>div.project div.item.select { border-right:var(--box-danger3); } body.width6 fieldset.plugin>div.output>div.project div.list { margin-left:var(--legend-margin); } div.project div.item:not(.hide)>i:first-child { margin-right:var(--input-margin); } div.project div.item:not(.hide) { diff --git a/plugin/local/code/inner.css b/plugin/local/code/inner.css index d5b89d4f..6403f8d4 100644 --- a/plugin/local/code/inner.css +++ b/plugin/local/code/inner.css @@ -9,6 +9,9 @@ fieldset.inner>div.output div.content td.text span.object { color:var(--code-obj fieldset.inner>div.output div.content td.text span.datatype { color:var(--code-datatype); } fieldset.inner>div.output div.content td.text span.package { color:var(--code-package); } fieldset.inner>div.output>div.project { font-family:var(--code-font-family); } +fieldset.inner>div.output>div.project div.list { border-left:none; } +fieldset.inner>div.output>div.project div.item.select { background-color:unset; } +fieldset.inner:not(.vimer)>div.output>div.project div.expand.open { color:var(--notice-bg-color); } fieldset.inner>div.output>div.project div.zone div.action:not(.hide) { width:100%; } fieldset.inner>div.output>div.project div.zone div.action>div.item { padding-right:0; width:100%; overflow:hidden; } fieldset.inner>div.output>div.project div.zone div.action>div.item>input { padding-left:25px; width:100%; } @@ -18,6 +21,7 @@ fieldset.inner>div.output>div.layout>div.tabs>div:hover { background-color:unset fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs { padding-right:0; } fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs.select { background-color:var(--output-bg-color); color:unset; border-top:var(--box-notice3); box-shadow:var(--legend-box-shadow);} fieldset.vimer>div.output>div.layout>div.tabs>div.tabs>div.tabs.select { border-top:var(--box-border3); } +fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs { border-top:var(--box-border3); border-top-color:transparent; } fieldset.inner>div.output>div.layout>div.tabs>div.tabs>div.tabs:hover { background-color:var(--output-bg-color); color:unset; box-shadow:var(--legend-box-shadow); } fieldset.inner>div.output>div.layout>div.path { font-size:var(--code-font-size); display:none; } fieldset.inner.cmd>div.output>div.layout>div.path:not(.hide) { display:flex; } @@ -59,7 +63,7 @@ fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.qrocde { padding- fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar { padding:0; } fieldset.inner.cmd>div.output>div.layout>div.tabs>div.head>div.avatar>img { height:32px; clip-path:circle(40%); } fieldset.inner.cmd>div.output>div.layout>div.plug { box-shadow:var(--th-box-shadow); height:var(--action-height); overflow:auto; } -fieldset.inner.cmd>div.output>div.layout>div.plug>legend { font-style:italic; font-size:var(--legend-font-size); padding:0 var(--input-padding); margin-left:var(--input-margin); margin-right:0; float:right; } +fieldset.inner.cmd>div.output>div.layout>div.plug>legend { font-style:italic; font-size:var(--legend-font-size); padding:0 var(--input-padding); padding-right:0; margin-right:0; float:right; } fieldset.inner.cmd>div.output>div.layout>div.plug>legend:hover { box-shadow:var(--notice-box-shadow); color:unset; } fieldset.inner.cmd>div.output>div.layout>div.plug>legend>span.remove { padding:0 var(--input-padding); height:30px; } fieldset.inner.cmd>div.output>div.layout>div.plug>legend>span.remove:hover { background-color:var(--hover-bg-color); } @@ -67,8 +71,8 @@ fieldset.inner.cmd>div.output>div.layout>div.plug>legend:not(:hover)>span.remove fieldset.inner fieldset.plug.can._plugin.search>form.option>div.item.value input { width:var(--project-width); } fieldset.inner fieldset.plug.can._plugin.search>form.option>div.item.filter input { width:var(--project-width); } fieldset.inner:not(.monaco)>div.output div.content>tr.line * { font-family:var(--code-font-family); font-size:var(--code-font-size); } -fieldset.inner>div.output>div.layout>div.layout div.content tr.line.select>td.line { background-color:var(--notice-bg-color); color:white; } -fieldset.vimer>div.output>div.layout>div.layout div.content tr.line.select>td.line { background-color:unset; color:unset; } +fieldset.inner.plugin>div.output>div.layout>div.layout div.content tr.line.select>td.line { background-color:var(--notice-bg-color); color:white; } +fieldset.vimer.plugin>div.output>div.layout>div.layout div.content tr.line.select>td.line { background-color:unset; color:unset; } fieldset.inner.float>div.output>div.layout>div.path { font-size:var(--code-font-size); display:flex; } fieldset.Action.tabview fieldset.plugin.inner>div.output>div.layout>div.path { font-size:var(--code-font-size); display:flex; } div.input.vimer.find div.action div.item { margin:var(--input-margin); } diff --git a/plugin/local/code/inner.js b/plugin/local/code/inner.js index 601f7ef6..c24d0061 100644 --- a/plugin/local/code/inner.js +++ b/plugin/local/code/inner.js @@ -1,5 +1,4 @@ (function() { -const RECOVER_TABS = "recover:tabs", RECOVER_TOOL = "recover:tool" const PROJECT_HIDE = "project:hide", TABVIEW_HIDE = "tabview:hide" const PROFILE_ARGS = "profile:args:", DISPLAY_ARGS = "display:args:" const CURRENT_FILE = "web.code.inner:currentFile", SELECT_LINE = "selectLine" @@ -8,9 +7,8 @@ Volcanos(chat.ONIMPORT, { _init: function(can, msg, cb) { can.onappend.style(can, code.INNER), can.Mode(msg.Option("mode")||can.Mode()) if (can.Mode() == ice.MSG_RESULT) { msg.result = msg.result||[can._output.innerHTML], can.Mode(chat.SIMPLE), can.sup.Mode(chat.SIMPLE) } can.onmotion.clear(can, can._output), msg.result = msg.result||[""] - var paths = can.core.Split(can.Option(nfs.PATH), mdb.FS); can.Option(nfs.PATH, paths[0]) + var paths = can.core.Split(can.Option(nfs.PATH)); can.Option(nfs.PATH, paths[0]) can.core.List([nfs.PATH, nfs.FILE, nfs.LINE], function(key) { msg.Option(key) && can.Option(key, msg.Option(key)) }) - var hash = can.misc.SearchHash(can); if (can.Option(nfs.PATH) == hash[0] && can.Option(nfs.FILE) == hash[1]) { can.Option(nfs.LINE, hash[2]) } can.db = {tabview: {}, history: [], _history: [], toolkit: {}}, can.db.tabview[can.onexport.keys(can)] = msg can.ui = can.onappend.layout(can, [html.PROJECT, [html.TABS, nfs.PATH, [html.CONTENT, html.PROFILE], html.DISPLAY, html.PLUG]]) can.ui._content = can.ui.content, can.ui._profile = can.ui.profile, can.ui._display = can.ui.display @@ -26,9 +24,7 @@ Volcanos(chat.ONIMPORT, { can.onimport._tabs(can), tool && tool.length > 0? can.core.Next(tool, function(item, next) { can.onimport.toolkit(can, item, next) }): can.onmotion.hidden(can, can.ui.plug) case chat.FULL: // no break default: can.onmotion.toggle(can, can.ui.project, show), can.onimport.project(can, can.db.paths = paths), can.onkeymap._build(can) - } can.onimport.layout(can), can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE), function() { cb && cb(msg) - can.isCmdMode() && hash.length > 1 && can.onimport.tabview(can, hash[0], hash[1], hash[2]) - }) + } can.onimport.layout(can), can.onimport.tabview(can, can.Option(nfs.PATH), can.Option(nfs.FILE), can.Option(nfs.LINE), function() { cb && cb(msg) }) }, _tabs: function(can) { if (!can.isCmdMode()) { return can.ui._tabs = can._action } var ui = can.page.Append(can, can.ui.tabs, ["tabs", "head"]); can.ui._tabs = ui.tabs, can.page.Append(can, ui.head, can.user.header(can)) @@ -39,18 +35,15 @@ Volcanos(chat.ONIMPORT, { "\u2756": shy({}, function(event) { can.onaction.plug(event, can, "plug") }), "\u25E7": function(event) { var show = can.onmotion.toggle(can, can.ui.project); can.onimport.layout(can), can.isCmdMode() && can.onexport.session(can, PROJECT_HIDE, show? "": html.HIDE) }, "\u25E8": shy({transform: "rotate(90deg) translate"+(can.user.isWindows? "(-2px)": "(1px,-2px)")}, function(event) { - if (can.page.isDisplay(can.ui.display)) { - return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) }), - "\u25E8 ": function(event) { if (can.page.isDisplay(can.ui.profile)) { - can._msg._profile_hidden = true - return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) }, + if (can.page.isDisplay(can.ui.display)) { return can.onmotion.hidden(can, can.ui.display), can.onimport.layout(can) } can.onaction.exec(event, can) }), + "\u25E8 ": shy({width: 24}, function(event) { if (can.page.isDisplay(can.ui.profile)) { can._msg._profile_hidden = true + return can.onmotion.hidden(can, can.ui.profile), can.onimport.layout(can) } can.onaction.show(event, can) }), }, function(text, cb) { return cb && {text: [text, html.SPAN, html.VIEW], style: cb.meta, onclick: cb} })) }, - _tabMode: function(can) { - var mode = can.db.mode||"", target = can.ui.current; if (target && mode != mdb.PLUGIN) { mode += lex.SP+target.selectionStart+nfs.PS+target.value.length } + _tabMode: function(can) { var mode = can.db.mode||"", target = can.ui.current; if (target && mode != mdb.PLUGIN) { mode += lex.SP+target.selectionStart+nfs.PS+target.value.length } can.page.Append(can, can.ui.path, [{text: [mode, "", [ice.MODE, can.db.mode||""]], onclick: function(event) { - var list = {}; can.core.Item(can.onkeymap._mode[can.db.mode], function(k, cb) { list[cb.help+lex.TB+k] = function(event, can, button) { can.core.CallFunc(cb, {event: event, can: can}) } }) - can.core.Item(can.onkeymap._mode[can.db.mode+"_ctrl"], function(k, cb) { list[cb.help+lex.TB+"C-"+k] = function(event, can, button) { can.core.CallFunc(cb, {event: event, can: can}) } }) + var list = {}; can.core.Item(can.onkeymap._mode[can.db.mode], function(k, cb) { list[k+" "+cb.help] = function(event, can, button) { can.core.CallFunc(cb, {event: event, can: can}) } }) + can.core.Item(can.onkeymap._mode[can.db.mode+"_ctrl"], function(k, cb) { list["C-"+k+" "+cb.help] = function(event, can, button) { can.core.CallFunc(cb, {event: event, can: can}) } }) can.user.carte(event, can, list, []) }}]) }, @@ -128,7 +121,7 @@ Volcanos(chat.ONIMPORT, { can.request(event, msg), can.onaction[button](event, can, button) })}], function(event, tabs) { can._tab = msg._tab = tabs._target, show(skip), skip = true can.onmotion.delay(can, function() { var item = can.ui.zone && can.ui.zone.source && can.ui.zone.source[path+file]; if (!item) { return } - item._tabs = tabs._target, can.page.ClassList.has(can, item, html.SELECT) || can.ui.zone.source[path+file].click() + item._tabs = tabs._target, can.page.ClassList.has(can, item, html.SELECT) || item.click() }) }, function(tabs) { can.onengine.signal(can, VIEW_REMOVE, msg), delete(can.db.tabview[key]) msg._content != can.ui._content && can.page.Remove(can, msg._content), msg._profile != can.ui._profile && can.page.Remove(can, msg._profile) @@ -143,11 +136,11 @@ Volcanos(chat.ONIMPORT, { }, project: function(can) { can.onimport.zone(can, can.core.Item(can.onfigure, function(name, cb) { if (can.base.isFunc(cb)) { return {name: name, _toggle: function(zone) { var target = can.page.isDisplay(zone._target)? zone._target: can.ui.zone.source._target - can.core.Item(can.ui.zone, function(key, zone) { key.indexOf("/") > 0 || zone.toggle(zone._target == target) }), can.onimport.layout(can) + can.core.Item(can.ui.zone, function(key, zone) { key.indexOf(nfs.PS) > 0 || zone.toggle(zone._target == target) }), can.onimport.layout(can) }, _init: function(target, zone) { return cb(can, target, zone) }} } }), can.ui.project) }, profile: function(can, msg) { var _msg = can.db.tabview[can.onexport.keys(can)]; _msg.Option(html.WIDTH, msg.Option(html.WIDTH)), border = 1 - var height = (can.ui.content._root||can.ui.content).offsetHeight, width = can.onexport.size(can, _msg.Option(html.WIDTH)||0.5, can.ConfWidth()-can.ui.project.offsetWidth)+border + var height = can.ui.content.offsetHeight, width = can.onexport.size(can, _msg.Option(html.WIDTH)||0.5, can.ConfWidth()-can.ui.project.offsetWidth)+border if (msg.Result().indexOf("