diff --git a/lua/avante/api.lua b/lua/avante/api.lua index d1f11b0..b559cd4 100644 --- a/lua/avante/api.lua +++ b/lua/avante/api.lua @@ -111,8 +111,9 @@ function M.ask(opts) end local has_question = opts.question ~= nil and opts.question ~= "" + local new_chat = opts.new_chat == true - if Utils.is_sidebar_buffer(0) and not has_question then + if Utils.is_sidebar_buffer(0) and not has_question and not new_chat then require("avante").close_sidebar() return false end @@ -127,7 +128,7 @@ function M.ask(opts) sidebar:close({ goto_code_win = false }) end require("avante").open_sidebar(opts) - if opts.new_chat then sidebar:new_chat() end + if new_chat then sidebar:new_chat() end if opts.without_selection then sidebar.code.selection = nil sidebar.file_selector:reset() diff --git a/lua/avante/config.lua b/lua/avante/config.lua index ea299ca..336e90f 100644 --- a/lua/avante/config.lua +++ b/lua/avante/config.lua @@ -435,6 +435,7 @@ M._defaults = { }, -- NOTE: The following will be safely set by avante.nvim ask = "aa", + new_ask = "an", edit = "ae", refresh = "ar", focus = "af", diff --git a/lua/avante/init.lua b/lua/avante/init.lua index 7fd1769..b197925 100644 --- a/lua/avante/init.lua +++ b/lua/avante/init.lua @@ -57,6 +57,12 @@ end function H.keymaps() vim.keymap.set({ "n", "v" }, "(AvanteAsk)", function() require("avante.api").ask() end, { noremap = true }) + vim.keymap.set( + { "n", "v" }, + "(AvanteAskNew)", + function() require("avante.api").ask({ new_chat = true }) end, + { noremap = true } + ) vim.keymap.set( { "n", "v" }, "(AvanteChat)", @@ -88,6 +94,12 @@ function H.keymaps() function() require("avante.api").ask() end, { desc = "avante: ask" } ) + Utils.safe_keymap_set( + { "n", "v" }, + Config.mappings.new_ask, + function() require("avante.api").ask({ new_chat = true }) end, + { desc = "avante: create new ask" } + ) Utils.safe_keymap_set( "v", Config.mappings.edit,