fix: ask api (#1641)
This commit is contained in:
@@ -144,9 +144,10 @@ function M.ask(opts)
|
|||||||
close_on_submit = true,
|
close_on_submit = true,
|
||||||
win_opts = {
|
win_opts = {
|
||||||
border = Config.windows.ask.border,
|
border = Config.windows.ask.border,
|
||||||
title = { { "ask", "FloatTitle" } },
|
title = { { "Avante Ask", "FloatTitle" } },
|
||||||
},
|
},
|
||||||
start_insert = Config.windows.ask.start_insert,
|
start_insert = Config.windows.ask.start_insert,
|
||||||
|
default_value = opts.question,
|
||||||
})
|
})
|
||||||
prompt_input:open()
|
prompt_input:open()
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ local Utils = require("avante.utils")
|
|||||||
---@field spinner_index integer
|
---@field spinner_index integer
|
||||||
---@field spinner_timer uv_timer_t | nil
|
---@field spinner_timer uv_timer_t | nil
|
||||||
---@field spinner_active boolean
|
---@field spinner_active boolean
|
||||||
|
---@field default_value string | nil
|
||||||
local PromptInput = {}
|
local PromptInput = {}
|
||||||
PromptInput.__index = PromptInput
|
PromptInput.__index = PromptInput
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ PromptInput.__index = PromptInput
|
|||||||
---@field cancel_callback? fun():nil
|
---@field cancel_callback? fun():nil
|
||||||
---@field close_on_submit? boolean
|
---@field close_on_submit? boolean
|
||||||
---@field win_opts? table
|
---@field win_opts? table
|
||||||
|
---@field default_value? string
|
||||||
|
|
||||||
---@param opts? PromptInputOptions
|
---@param opts? PromptInputOptions
|
||||||
function PromptInput:new(opts)
|
function PromptInput:new(opts)
|
||||||
@@ -40,6 +42,7 @@ function PromptInput:new(opts)
|
|||||||
obj.cancel_callback = opts.cancel_callback
|
obj.cancel_callback = opts.cancel_callback
|
||||||
obj.close_on_submit = opts.close_on_submit or false
|
obj.close_on_submit = opts.close_on_submit or false
|
||||||
obj.win_opts = opts.win_opts
|
obj.win_opts = opts.win_opts
|
||||||
|
obj.default_value = opts.default_value
|
||||||
obj.spinner_chars = {
|
obj.spinner_chars = {
|
||||||
"⡀",
|
"⡀",
|
||||||
"⠄",
|
"⠄",
|
||||||
@@ -114,12 +117,19 @@ function PromptInput:open()
|
|||||||
api.nvim_set_option_value("cursorline", true, { win = winid })
|
api.nvim_set_option_value("cursorline", true, { win = winid })
|
||||||
api.nvim_set_option_value("modifiable", true, { buf = bufnr })
|
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:show_shortcuts_hints()
|
||||||
|
|
||||||
self:setup_keymaps()
|
self:setup_keymaps()
|
||||||
self:setup_autocmds()
|
self:setup_autocmds()
|
||||||
|
|
||||||
if self.start_insert then vim.cmd([[startinsert]]) end
|
if self.start_insert then vim.cmd([[startinsert!]]) end
|
||||||
end
|
end
|
||||||
|
|
||||||
function PromptInput:close()
|
function PromptInput:close()
|
||||||
|
|||||||
Reference in New Issue
Block a user