local M = {} return M -- function Ask(msg) -- vim.cmd.echohl('Question') -- vim.cmd.echo('"' .. msg .. '"') -- vim.cmd.echohl() -- end -- -- function Confirm(msg) -- Ask(msg .. ' [Y/n] ') -- -- local answer = vim.fn.getchar() -- return answer ~= 110 and answer ~= 27 and answer ~= 37 -- 'n', , -- end -- -- function Input(prompt, last) -- local buffer = '' -- while true do -- vim.cmd('redraw | echo') -- vim.api.nvim_echo({ -- { prompt, 'Question' }, -- last and { last, 'Visual' } or { buffer, 'Normal' }, -- }, false, {}) -- -- local character = vim.fn.getchar() -- if pcall(function(char) -- if vim.fn.keytrans(char) ~= '' then -- error() -- end -- end, character) then -- last = nil -- buffer = vim.fn.slice(buffer, 0, -1) -- elseif character == 27 then -- vim.cmd('redraw | echo') -- return nil -- elseif character == 13 then -- return last or buffer -- elseif -- (character == 32 or pcall(function(char) -- if vim.fn.keytrans(char) ~= '' then -- error() -- end -- end, character)) and last -- then -- buffer = last -- if character == 32 then -- buffer = buffer .. ' ' -- end -- last = nil -- else -- last = nil -- buffer = buffer .. vim.fn.nr2char(character) -- end -- end -- end -- -- vim.ui.input = function(opts, after) -- local prompt = (opts.prompt or 'Enter input') .. ' > ' -- if prompt == 'Compile command: ' then -- prompt = 'Enter command' -- end -- local last = opts.default or '' -- -- return (after or function(x) -- print('Unhandled data: ' .. x) -- end)(Input(prompt, last)) -- end