更新tui.js
This commit is contained in:
@@ -3,27 +3,62 @@ import { Plugin } from "@opencode/plugin/tui"
|
||||
export default Plugin.define({
|
||||
id: "oc-session-all",
|
||||
setup(context) {
|
||||
console.log("[oc-session-all] v2 Plugin loaded!")
|
||||
context.ui.toast.show({
|
||||
message: "[oc-session-all] v2 loaded! Testing keymap...",
|
||||
variant: "success",
|
||||
duration: 3000,
|
||||
})
|
||||
console.log("[oc-session-all] v2 Plugin loaded! Attempting command registration...")
|
||||
|
||||
// 只注册 command,不注册 binding(方法名是 registerLayer 不是 layer)
|
||||
context.keymap.registerLayer({
|
||||
commands: [
|
||||
{
|
||||
title: "All Sessions",
|
||||
value: "sessions.all",
|
||||
description: "Browse and switch to any session across all projects",
|
||||
category: "Session Picker",
|
||||
slash: { name: "sessions-all" },
|
||||
onSelect: () => {
|
||||
context.ui.toast.show({ message: "sessions-all triggered!", variant: "info" });
|
||||
// ── 尝试注册命令 ──────────────────────────────────────
|
||||
const report = []
|
||||
report.push("context keys: " + Object.keys(context).join(", "))
|
||||
|
||||
// 尝试 context.command.register
|
||||
if (context.command && typeof context.command.register === "function") {
|
||||
try {
|
||||
const unregister = context.command.register(() => [
|
||||
{
|
||||
title: "Show All Sessions",
|
||||
value: "sessions-all",
|
||||
slash: { name: "sessions-all", aliases: ["sa"] },
|
||||
description: "Display all session records in a dialog",
|
||||
onSelect: async () => {
|
||||
console.log("[oc-session-all] /sessions-all triggered")
|
||||
context.ui.toast.show({
|
||||
message: "Sessions-all command executed!",
|
||||
variant: "success",
|
||||
duration: 3000,
|
||||
})
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
])
|
||||
report.push("command.register: SUCCESS, unregister: " + typeof unregister)
|
||||
console.log("[oc-session-all] command.register succeeded")
|
||||
} catch (e) {
|
||||
report.push("command.register ERROR: " + e.message)
|
||||
console.error("[oc-session-all] command.register failed:", e)
|
||||
}
|
||||
} else {
|
||||
report.push("context.command: " + (context.command ? "exists but no register" : "undefined"))
|
||||
}
|
||||
|
||||
// 尝试 keymap 的其他方法
|
||||
if (context.keymap) {
|
||||
const kmMethods = Object.getOwnPropertyNames(context.keymap)
|
||||
.filter(k => typeof context.keymap[k] === "function")
|
||||
report.push("keymap methods: " + kmMethods.join(", "))
|
||||
|
||||
// 尝试常见的 Keymap 方法
|
||||
const tryMethods = ["bind", "on", "register", "registerLayer", "layer"]
|
||||
for (const m of tryMethods) {
|
||||
if (typeof context.keymap[m] === "function") {
|
||||
report.push("keymap." + m + " exists")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const msg = report.join(" | ")
|
||||
console.log("[oc-session-all] REGISTER PROBE: " + msg)
|
||||
context.ui.toast.show({
|
||||
message: "Register probe: " + msg,
|
||||
variant: "info",
|
||||
duration: 15000,
|
||||
})
|
||||
},
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user