fix: ask api (#1641)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user