summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/specs/v2.md13
1 files changed, 13 insertions, 0 deletions
diff --git a/packages/opencode/specs/v2.md b/packages/opencode/specs/v2.md
new file mode 100644
index 000000000..55d0f0267
--- /dev/null
+++ b/packages/opencode/specs/v2.md
@@ -0,0 +1,13 @@
+# 2.0
+
+What we would change if we could
+
+## Keybindings vs. Keymappings
+Make it `keymappings`, closer to neovim. Can be layered like `<leader>abc`. Commands don't define their binding, but have an id that a key can be mapped to like
+
+```ts
+{ key: "ctrl+w", cmd: string | function, description }
+```
+
+_Why_
+Currently its keybindings that have an `id` like `message_redo` and then a command can use that or define it's own binding. While some keybindings are just used with `.match` in arbitrary key handlers and there is no info what the key is used for, except the binding id maybe. It also is unknown in which context/scope what binding is active, so a plugin like `which-key` is nearly impossible to get right.