Add opencode and notes/todo configuration

This commit is contained in:
2026-02-27 10:29:46 +01:00
parent ae2297dfbb
commit 35f0723076
2 changed files with 91 additions and 35 deletions
+17 -21
View File
@@ -47,14 +47,10 @@ _G.Config.leader_group_clues = {
{ mode = 'n', keys = '<Leader>m', desc = '+Map' },
{ mode = 'n', keys = '<Leader>o', desc = '+Other' },
{ mode = 'n', keys = '<Leader>s', desc = '+Session' },
{ mode = 'n', keys = '<Leader>t', desc = '+Terminal' },
{ mode = 'x', keys = '<Leader>g', desc = '+Git' },
{ mode = 'x', keys = '<Leader>z', desc = '+Notes' },
}
-- Comodities
vim.keymap.set({'n', 'x'}, '<Leader>y', '"y', { desc = "Yank" })
vim.keymap.set({'n', 'x'}, '<Leader>d', '"d', { desc = "Cut" })
-- Helpers for a more concise `<Leader>` mappings.
-- Most of the mappings use `<Cmd>...<CR>` string as a right hand side (RHS) in
-- an attempt to be more concise yet descriptive. See `:h <Cmd>`.
@@ -63,14 +59,20 @@ vim.keymap.set({'n', 'x'}, '<Leader>d', '"d', { desc = "Cut" })
local nmap_leader = function(suffix, rhs, desc)
vim.keymap.set('n', '<Leader>' .. suffix, rhs, { desc = desc })
end
local xmap_leader = function(suffix, rhs, desc)
vim.keymap.set('x', '<Leader>' .. suffix, rhs, { desc = desc })
end
local vmap_leader = function(suffix, rhs, desc)
vim.keymap.set('v', '<Leader>' .. suffix, rhs, { desc = desc })
end
-- a is for 'AI'
nmap_leader('ac', ':ClaudeCode<CR>', 'Toggle Claude')
nmap_leader('af', ':ClaudeCodeFocus<CR>', 'Focus Claude')
nmap_leader('ar', ':ClaudeCode --resume<CR>', 'Resume Claude')
nmap_leader('ac', ':lua require("opencode").toggle()<CR>', 'Toggle Opencode')
nmap_leader('af', ':lua require("opencode").select()<CR>', 'Execute Opencode action...')
nmap_leader('aa', ':luat require("opencode").ask("@this: ", { submit = true })', 'Ask Opencode')
-- b is for 'Buffer'. Common usage:
-- - `<Leader>bs` - create scratch (temporary) buffer
@@ -176,19 +178,13 @@ nmap_leader('oz', '<Cmd>lua MiniMisc.zoom()<CR>', 'Zoom toggle')
nmap_leader('om', '<Cmd>Mason<CR>', 'Open Mason')
nmap_leader('ou', '<Cmd>DepsUpdate<CR>', 'Update plugins')
-- s is for 'Session'. Common usage:
-- - `<Leader>sn` - start new session
-- - `<Leader>sr` - read previously started session
-- - `<Leader>sd` - delete previously started session
local session_new = 'MiniSessions.write(vim.fn.input("Session name: "))'
nmap_leader('sd', '<Cmd>lua MiniSessions.select("delete")<CR>', 'Delete')
nmap_leader('sn', '<Cmd>lua ' .. session_new .. '<CR>', 'New')
nmap_leader('sr', '<Cmd>lua MiniSessions.select("read")<CR>', 'Read')
nmap_leader('sw', '<Cmd>lua MiniSessions.write()<CR>', 'Write current')
-- t is for 'Terminal'
nmap_leader('tT', '<Cmd>horizontal term<CR>', 'Terminal (horizontal)')
nmap_leader('tt', '<Cmd>vertical term<CR>', 'Terminal (vertical)')
-- z if for notes and todos
nmap_leader('zz', "<Cmd>ZkNotes {sort={'modified'}}<CR>", 'Notes picker')
nmap_leader('zn', "<Cmd>ZkNew {title = vim.fn.input('Title: ')}<CR>", 'New note')
nmap_leader('zt', "<Cmd>ZkTags<CR>", 'Notes tags')
nmap_leader('zf', "<Cmd>ZkNotes {sort={'modified'}, match={vim.fn.input('Search: ')}}<CR>", 'Search')
vmap_leader('zm', "<Cmd>'<,'>ZkMatch<CR>", "Search match")
nmap_leader('zt', "<Cmd>e ~/notes/TODO.md<CR>", "Open TODOs")
-- stylua: ignore end