fix: ask api (#1641)

This commit is contained in:
yetone
2025-03-19 14:14:57 +08:00
committed by GitHub
parent abca1a4ea3
commit 55d5dfa8cd
2 changed files with 13 additions and 2 deletions

View File

@@ -144,9 +144,10 @@ function M.ask(opts)
close_on_submit = true,
win_opts = {
border = Config.windows.ask.border,
title = { { "ask", "FloatTitle" } },
title = { { "Avante Ask", "FloatTitle" } },
},
start_insert = Config.windows.ask.start_insert,
default_value = opts.question,
})
prompt_input:open()
return true

View File

@@ -17,6 +17,7 @@ local Utils = require("avante.utils")
---@field spinner_index integer
---@field spinner_timer uv_timer_t | nil
---@field spinner_active boolean
---@field default_value string | nil
local PromptInput = {}
PromptInput.__index = PromptInput
@@ -26,6 +27,7 @@ PromptInput.__index = PromptInput
---@field cancel_callback? fun():nil
---@field close_on_submit? boolean
---@field win_opts? table
---@field default_value? string
---@param opts? PromptInputOptions
function PromptInput:new(opts)
@@ -40,6 +42,7 @@ function PromptInput:new(opts)
obj.cancel_callback = opts.cancel_callback
obj.close_on_submit = opts.close_on_submit or false
obj.win_opts = opts.win_opts
obj.default_value = opts.default_value
obj.spinner_chars = {
"",
"",
@@ -114,12 +117,19 @@ function PromptInput:open()
api.nvim_set_option_value("cursorline", true, { win = winid })
api.nvim_set_option_value("modifiable", true, { buf = bufnr })
local default_value_lines = {}
if self.default_value then default_value_lines = vim.split(self.default_value, "\n") end
if #default_value_lines > 0 then
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, default_value_lines)
api.nvim_win_set_cursor(winid, { #default_value_lines, #default_value_lines[#default_value_lines] })
end
self:show_shortcuts_hints()
self:setup_keymaps()
self:setup_autocmds()
if self.start_insert then vim.cmd([[startinsert]]) end
if self.start_insert then vim.cmd([[startinsert!]]) end
end
function PromptInput:close()