- make apply and apply_all mappings configurable - fixed bug where apply mapping was not unbound in unbind_apply_key - allow apply_all mapping to be pressed anywhere in the sidebar fixes #528
This commit is contained in:
parent
e010c5541e
commit
347d9be730
@ -246,6 +246,8 @@ _See [config.lua#L9](./lua/avante/config.lua) for the full config_
|
|||||||
insert = "<C-s>",
|
insert = "<C-s>",
|
||||||
},
|
},
|
||||||
sidebar = {
|
sidebar = {
|
||||||
|
apply_all = "A",
|
||||||
|
apply_cursor = "a",
|
||||||
switch_windows = "<Tab>",
|
switch_windows = "<Tab>",
|
||||||
reverse_switch_windows = "<S-Tab>",
|
reverse_switch_windows = "<S-Tab>",
|
||||||
},
|
},
|
||||||
|
@ -151,6 +151,8 @@ Respect and use existing conventions, libraries, etc that are already present in
|
|||||||
suggestion = "<leader>as",
|
suggestion = "<leader>as",
|
||||||
},
|
},
|
||||||
sidebar = {
|
sidebar = {
|
||||||
|
apply_all = "A",
|
||||||
|
apply_cursor = "a",
|
||||||
switch_windows = "<Tab>",
|
switch_windows = "<Tab>",
|
||||||
reverse_switch_windows = "<S-Tab>",
|
reverse_switch_windows = "<S-Tab>",
|
||||||
},
|
},
|
||||||
|
@ -682,7 +682,16 @@ function Sidebar:on_mount(opts)
|
|||||||
|
|
||||||
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 = { { " [<a>: apply this, <A>: apply all] ", "AvanteInlineHint" } },
|
virt_text = {
|
||||||
|
{
|
||||||
|
string.format(
|
||||||
|
" [<%s>: apply this, <%s>: apply all] ",
|
||||||
|
Config.mappings.sidebar.apply_cursor,
|
||||||
|
Config.mappings.sidebar.apply_all
|
||||||
|
),
|
||||||
|
"AvanteInlineHint",
|
||||||
|
},
|
||||||
|
},
|
||||||
virt_text_pos = "right_align",
|
virt_text_pos = "right_align",
|
||||||
hl_group = "AvanteInlineHint",
|
hl_group = "AvanteInlineHint",
|
||||||
priority = PRIORITY,
|
priority = PRIORITY,
|
||||||
@ -692,19 +701,15 @@ function Sidebar:on_mount(opts)
|
|||||||
local function bind_apply_key()
|
local function bind_apply_key()
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
"n",
|
"n",
|
||||||
"a",
|
Config.mappings.sidebar.apply_cursor,
|
||||||
function() self:apply(true) end,
|
function() self:apply(true) end,
|
||||||
{ buffer = self.result.bufnr, noremap = true, silent = true }
|
{ buffer = self.result.bufnr, noremap = true, silent = true }
|
||||||
)
|
)
|
||||||
vim.keymap.set(
|
|
||||||
"n",
|
|
||||||
"A",
|
|
||||||
function() self:apply(false) end,
|
|
||||||
{ buffer = self.result.bufnr, noremap = true, silent = true }
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function unbind_apply_key() pcall(vim.keymap.del, "n", "A", { buffer = self.result.bufnr }) end
|
local function unbind_apply_key()
|
||||||
|
pcall(vim.keymap.del, "n", Config.mappings.sidebar.apply_cursor, { buffer = self.result.bufnr })
|
||||||
|
end
|
||||||
|
|
||||||
---@type AvanteCodeblock[]
|
---@type AvanteCodeblock[]
|
||||||
local codeblocks = {}
|
local codeblocks = {}
|
||||||
@ -739,7 +744,13 @@ function Sidebar:on_mount(opts)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function bind_jump_keys()
|
local function bind_sidebar_keys()
|
||||||
|
vim.keymap.set(
|
||||||
|
"n",
|
||||||
|
Config.mappings.sidebar.apply_all,
|
||||||
|
function() self:apply(false) end,
|
||||||
|
{ buffer = self.result.bufnr, noremap = true, silent = true }
|
||||||
|
)
|
||||||
vim.keymap.set(
|
vim.keymap.set(
|
||||||
"n",
|
"n",
|
||||||
Config.mappings.jump.next,
|
Config.mappings.jump.next,
|
||||||
@ -754,8 +765,9 @@ function Sidebar:on_mount(opts)
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function unbind_jump_keys()
|
local function unbind_sidebar_keys()
|
||||||
if self.result and self.result.bufnr and api.nvim_buf_is_valid(self.result.bufnr) then
|
if self.result and self.result.bufnr and api.nvim_buf_is_valid(self.result.bufnr) then
|
||||||
|
pcall(vim.keymap.del, "n", Config.mappings.sidebar.apply_all, { buffer = self.result.bufnr })
|
||||||
pcall(vim.keymap.del, "n", Config.mappings.jump.next, { buffer = self.result.bufnr })
|
pcall(vim.keymap.del, "n", Config.mappings.jump.next, { buffer = self.result.bufnr })
|
||||||
pcall(vim.keymap.del, "n", Config.mappings.jump.prev, { buffer = self.result.bufnr })
|
pcall(vim.keymap.del, "n", Config.mappings.jump.prev, { buffer = self.result.bufnr })
|
||||||
end
|
end
|
||||||
@ -780,7 +792,7 @@ function Sidebar:on_mount(opts)
|
|||||||
buffer = self.result.bufnr,
|
buffer = self.result.bufnr,
|
||||||
callback = function(ev)
|
callback = function(ev)
|
||||||
codeblocks = parse_codeblocks(ev.buf)
|
codeblocks = parse_codeblocks(ev.buf)
|
||||||
bind_jump_keys()
|
bind_sidebar_keys()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -789,13 +801,13 @@ function Sidebar:on_mount(opts)
|
|||||||
callback = function()
|
callback = function()
|
||||||
if not self.result or not self.result.bufnr or not api.nvim_buf_is_valid(self.result.bufnr) then return end
|
if not self.result or not self.result.bufnr or not api.nvim_buf_is_valid(self.result.bufnr) then return end
|
||||||
codeblocks = parse_codeblocks(self.result.bufnr)
|
codeblocks = parse_codeblocks(self.result.bufnr)
|
||||||
bind_jump_keys()
|
bind_sidebar_keys()
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
api.nvim_create_autocmd("BufLeave", {
|
api.nvim_create_autocmd("BufLeave", {
|
||||||
buffer = self.result.bufnr,
|
buffer = self.result.bufnr,
|
||||||
callback = function() unbind_jump_keys() end,
|
callback = function() unbind_sidebar_keys() end,
|
||||||
})
|
})
|
||||||
|
|
||||||
self:render_result()
|
self:render_result()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user