2022-07-10 20:07:33 +00:00
|
|
|
-- The prefix that will be before the search text for the user
|
|
|
|
|
local prompt_prefix = ">> "
|
|
|
|
|
|
|
|
|
|
local prompt = {}
|
|
|
|
|
|
2022-07-24 11:50:30 +00:00
|
|
|
prompt.suffix = ""
|
2022-07-10 20:07:33 +00:00
|
|
|
prompt.value = ""
|
|
|
|
|
|
|
|
|
|
prompt.text = function()
|
2022-07-24 11:50:30 +00:00
|
|
|
return prompt.value .. prompt.suffix
|
2022-07-10 20:07:33 +00:00
|
|
|
end
|
|
|
|
|
prompt.update = function()
|
2022-07-24 11:50:30 +00:00
|
|
|
vim.api.nvim_echo({
|
|
|
|
|
{ prompt_prefix, "None" },
|
|
|
|
|
{ prompt.value:sub(1, -2), "None" },
|
|
|
|
|
{ prompt.value:sub(-1, -1), "Underlined" },
|
|
|
|
|
{ prompt.suffix, "None" },
|
|
|
|
|
}, false, {})
|
2022-07-10 20:07:33 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
prompt.input = function(char)
|
|
|
|
|
if char == "BACKSPACE" then
|
|
|
|
|
prompt.value = string.sub(prompt.value, 0, -2)
|
2022-07-24 11:50:30 +00:00
|
|
|
elseif char == "LEFT" then
|
|
|
|
|
if #prompt.value > 0 then
|
|
|
|
|
prompt.suffix = prompt.value:sub(-1, -1) .. prompt.suffix
|
|
|
|
|
prompt.value = prompt.value:sub(1, -2)
|
|
|
|
|
end
|
|
|
|
|
elseif char == "RIGHT" then
|
|
|
|
|
if #prompt.suffix > 0 then
|
|
|
|
|
prompt.value = prompt.value .. prompt.suffix:sub(1, 1)
|
|
|
|
|
prompt.suffix = prompt.suffix:sub(2, -1)
|
|
|
|
|
end
|
|
|
|
|
elseif char == "DELETE_WORD" then
|
|
|
|
|
prompt.value = prompt.value:match "(.*)%s+.*$"
|
|
|
|
|
if prompt.value == nil then
|
|
|
|
|
prompt.value = ""
|
|
|
|
|
end
|
2022-07-10 20:07:33 +00:00
|
|
|
elseif char == "\\\\" then
|
|
|
|
|
prompt.value = prompt.value .. "\\"
|
|
|
|
|
else
|
|
|
|
|
prompt.value = prompt.value .. char
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
prompt.update()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
prompt.set = function(value)
|
|
|
|
|
prompt.value = value
|
2022-07-24 11:50:30 +00:00
|
|
|
prompt.suffix = ""
|
2022-07-10 20:07:33 +00:00
|
|
|
prompt.update()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
prompt.destroy = function()
|
|
|
|
|
prompt.value = ""
|
2022-07-24 11:50:30 +00:00
|
|
|
prompt.suffix = ""
|
2022-07-10 20:07:33 +00:00
|
|
|
vim.notify ""
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return prompt
|