mirror of
https://github.com/neovim/neovim.git
synced 2026-04-19 14:00:49 +00:00
feat(lua): vim.text.indent()
Problem: Indenting text is a common task in plugins/scripts for presentation/formatting, yet vim has no way of doing it (especially "dedent", and especially non-buffer text). Solution: Introduce `vim.text.indent()`. It sets the *exact* indentation because that's a more difficult (and thus more useful) task than merely "increasing the current indent" (which is somewhat easy with a `gsub()` one-liner).
This commit is contained in:
@@ -609,12 +609,13 @@ function M._new_argv(...)
|
||||
return args, env, io_extra
|
||||
end
|
||||
|
||||
--- Dedents string arguments and inserts the resulting text into the current buffer.
|
||||
--- @param ... string
|
||||
function M.insert(...)
|
||||
nvim_feed('i')
|
||||
for _, v in ipairs({ ... }) do
|
||||
local escaped = v:gsub('<', '<lt>')
|
||||
M.feed(escaped)
|
||||
M.feed(escaped) -- This also dedents :P
|
||||
end
|
||||
nvim_feed('<ESC>')
|
||||
end
|
||||
@@ -812,6 +813,7 @@ function M.rmdir(path)
|
||||
end
|
||||
end
|
||||
|
||||
--- @deprecated Use `t.pcall_err()` to check failure, or `n.command()` to check success.
|
||||
function M.exc_exec(cmd)
|
||||
M.command(([[
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user