1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
volcanos/plugin/story/monaco.js
2023-08-30 22:08:58 +08:00

36 lines
1.2 KiB
JavaScript

Volcanos(chat.ONIMPORT, {
_init: function(can, msg, cb) { var toast = can.user.toastProcess(can)
can.page.requireModules(can, ["monaco-editor/min/vs/loader.js"], function() {
require.config({paths: {vs: "/require/modules/monaco-editor/min/vs"}})
require(["vs/editor/editor.main"], function () {
can.require(["/plugin/local/code/vimer.js"], function(can) {
can.onimport._last_init(can, msg, function(msg) {
can.onappend.style(can, "monaco")
cb && cb(msg), toast.close()
})
})
})
})
},
_theme: function(can) {
if (can.base.isIn(can.getHeaderTheme(), html.LIGHT, html.WHITE)) {
monaco.editor.setTheme("vs")
} else {
monaco.editor.setTheme("vs-dark")
}
},
}, [""])
Volcanos(chat.ONSYNTAX, {
_split: function(can, msg, target) { can.onimport._theme(can)
can.onengine.listen(can, chat.ONTHEMECHANGE, function() { can.onimport._theme(can) })
can.ui.editor = monaco.editor.create(target, {value: msg.Result(), language: "javascript", automaticLayout: true})
},
})
Volcanos(chat.ONPLUGIN, {
monaco: shy("编辑器", {
save: shy(function(can, msg) { can.user.toast(can, msg.Option(nfs.CONTENT)) }),
}, [nfs.PATH, nfs.FILE, nfs.LINE, ice.LIST, nfs.SAVE], function(can, msg, meta) {
msg.Display(meta._path)
}),
})