chore(keymaps): add toggle options (#204)
Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
This commit is contained in:
parent
46ec0a50a7
commit
305d972849
lua/avante
@ -107,6 +107,10 @@ M.defaults = {
|
|||||||
normal = "<CR>",
|
normal = "<CR>",
|
||||||
insert = "<C-s>",
|
insert = "<C-s>",
|
||||||
},
|
},
|
||||||
|
toggle = {
|
||||||
|
debug = "<leader>ad",
|
||||||
|
hint = "<leader>ah",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
windows = {
|
windows = {
|
||||||
wrap = true, -- similar to vim.o.wrap
|
wrap = true, -- similar to vim.o.wrap
|
||||||
@ -118,7 +122,6 @@ M.defaults = {
|
|||||||
},
|
},
|
||||||
--- @class AvanteConflictUserConfig
|
--- @class AvanteConflictUserConfig
|
||||||
diff = {
|
diff = {
|
||||||
debug = false,
|
|
||||||
autojump = true,
|
autojump = true,
|
||||||
---@type string | fun(): any
|
---@type string | fun(): any
|
||||||
list_opener = "copen",
|
list_opener = "copen",
|
||||||
|
@ -329,7 +329,7 @@ local function register_cursor_move_events(bufnr)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local hint = string.format(
|
local hint = string.format(
|
||||||
" [Press <%s> for OURS, <%s> for THEIRS, <%s> for BOTH, <%s> for PREV, <%s> for NEXT] ",
|
"[<%s> for OURS, <%s> for THEIRS, <%s> for BOTH, <%s> for PREV, <%s> for NEXT]",
|
||||||
Config.diff.mappings.ours,
|
Config.diff.mappings.ours,
|
||||||
Config.diff.mappings.theirs,
|
Config.diff.mappings.theirs,
|
||||||
Config.diff.mappings.both,
|
Config.diff.mappings.both,
|
||||||
|
@ -43,6 +43,25 @@ end
|
|||||||
H.keymaps = function()
|
H.keymaps = function()
|
||||||
vim.keymap.set({ "n", "v" }, Config.mappings.ask, M.toggle, { noremap = true })
|
vim.keymap.set({ "n", "v" }, Config.mappings.ask, M.toggle, { noremap = true })
|
||||||
vim.keymap.set("n", Config.mappings.refresh, M.refresh, { noremap = true })
|
vim.keymap.set("n", Config.mappings.refresh, M.refresh, { noremap = true })
|
||||||
|
|
||||||
|
Utils.toggle_map("n", Config.mappings.toggle.debug, {
|
||||||
|
name = "debug",
|
||||||
|
get = function()
|
||||||
|
return Config.debug
|
||||||
|
end,
|
||||||
|
set = function(state)
|
||||||
|
Config.override({ debug = state })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
Utils.toggle_map("n", Config.mappings.toggle.hint, {
|
||||||
|
name = "hint",
|
||||||
|
get = function()
|
||||||
|
return Config.hints.enabled
|
||||||
|
end,
|
||||||
|
set = function(state)
|
||||||
|
Config.override({ hints = { enabled = state } })
|
||||||
|
end,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
H.autocmds = function()
|
H.autocmds = function()
|
||||||
|
@ -43,7 +43,7 @@ end
|
|||||||
function Selection:show_hints_popup()
|
function Selection:show_hints_popup()
|
||||||
self:close_hints_popup()
|
self:close_hints_popup()
|
||||||
|
|
||||||
local hint_text = string.format(" [Ask %s] ", Config.mappings.ask)
|
local hint_text = string.format(" [%s: ask avante] ", Config.mappings.ask)
|
||||||
|
|
||||||
local virt_text_line = self:get_virt_text_line()
|
local virt_text_line = self:get_virt_text_line()
|
||||||
|
|
||||||
|
@ -492,7 +492,7 @@ function Sidebar:on_mount()
|
|||||||
|
|
||||||
current_apply_extmark_id =
|
current_apply_extmark_id =
|
||||||
api.nvim_buf_set_extmark(self.result.bufnr, CODEBLOCK_KEYBINDING_NAMESPACE, block.start_line, -1, {
|
api.nvim_buf_set_extmark(self.result.bufnr, CODEBLOCK_KEYBINDING_NAMESPACE, block.start_line, -1, {
|
||||||
virt_text = { { " [Press <A> to Apply these patches] ", "Keyword" } },
|
virt_text = { { " [<A>: apply patch] ", "Keyword" } },
|
||||||
virt_text_pos = "right_align",
|
virt_text_pos = "right_align",
|
||||||
hl_group = "Keyword",
|
hl_group = "Keyword",
|
||||||
priority = PRIORITY,
|
priority = PRIORITY,
|
||||||
@ -1366,9 +1366,8 @@ function Sidebar:create_input()
|
|||||||
local function show_hint()
|
local function show_hint()
|
||||||
close_hint() -- Close the existing hint window
|
close_hint() -- Close the existing hint window
|
||||||
|
|
||||||
local hint_text = "Press "
|
local hint_text = vim.fn.mode() ~= "i" and Config.mappings.submit.normal
|
||||||
.. (vim.fn.mode() ~= "i" and Config.mappings.submit.normal or Config.mappings.submit.insert)
|
or Config.mappings.submit.insert .. ": submit"
|
||||||
.. " to submit"
|
|
||||||
|
|
||||||
local buf = api.nvim_create_buf(false, true)
|
local buf = api.nvim_create_buf(false, true)
|
||||||
api.nvim_buf_set_lines(buf, 0, -1, false, { hint_text })
|
api.nvim_buf_set_lines(buf, 0, -1, false, { hint_text })
|
||||||
|
@ -24,6 +24,25 @@ M.has = function(plugin)
|
|||||||
return require("lazy.core.config").plugins[plugin] ~= nil
|
return require("lazy.core.config").plugins[plugin] ~= nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@alias _ToggleSet fun(state: boolean): nil
|
||||||
|
---@alias _ToggleGet fun(): boolean
|
||||||
|
---
|
||||||
|
---@param lhs string
|
||||||
|
---@param toggle {name: string, set: _ToggleSet, get: _ToggleGet}
|
||||||
|
---@param mode? string | string[]
|
||||||
|
M.toggle_map = function(mode, lhs, toggle)
|
||||||
|
vim.keymap.set(mode or { "n" }, lhs, function()
|
||||||
|
toggle.set(not toggle.get())
|
||||||
|
local state = toggle.get()
|
||||||
|
if state then
|
||||||
|
M.info("enabled: " .. toggle.name, { title = "Avante" })
|
||||||
|
else
|
||||||
|
M.warn("disabled: " .. toggle.name, { title = "Avante" })
|
||||||
|
end
|
||||||
|
return state
|
||||||
|
end, { desc = "toggle(avante): " .. toggle.name })
|
||||||
|
end
|
||||||
|
|
||||||
---@param str string
|
---@param str string
|
||||||
---@param opts? {suffix?: string, prefix?: string}
|
---@param opts? {suffix?: string, prefix?: string}
|
||||||
function M.trim(str, opts)
|
function M.trim(str, opts)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user