Something went wrong. Try again.
A floating `vim.ui.input` buffer that auto-resizes to fit its contents.
Something went wrong. Try again.
1.5 kB · 61 lines
Lua
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162local M = {}
---@param options table<string, any>---@param opts vim.api.keyset.optionfunction M.set_options(options, opts) for k, v in pairs(options) do vim.api.nvim_set_option_value(k, v, opts) endend
---@param option string---@param winnr integerfunction M.set_option_if_globally_enabled(option, winnr) if vim.api.nvim_get_option_value(option, { scope = "global" }) then vim.api.nvim_set_option_value(option, true, { win = winnr }) endend
---@param value number---@param min number---@param max number---@return numberfunction M.clamp(value, min, max) return math.min(math.max(value, min), max)end
---@param text string---@param width integer---@return string[]function M.split_wrapped_lines(text, width) if text == "" then return {} end
---@type string[] local lines = {} local textlen = vim.fn.strchars(text, true)
local i = 0 while i < textlen do local len = i + width <= textlen and width or textlen - i local new_line = vim.fn.strcharpart(text, i, len)
table.insert(lines, new_line) i = i + len end
return linesend
---@param winnr integer---@param bufnr integer---@return integerfunction M.get_linenr_width(winnr, bufnr) local line_count = vim.api.nvim_buf_line_count(bufnr) local line_digits = math.floor(math.log10(math.max(1, line_count))) + 1 local numberwidth = vim.api.nvim_get_option_value("numberwidth", { win = winnr }) return math.max(line_digits, numberwidth)end
return M