diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2025-02-21 02:02:32 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2025-02-26 23:06:22 +0100 |
commit | be1fbe38b31b6046d396407c4efbf238941c6b08 (patch) | |
tree | 697a429f5ac903d766c2faaf5044fa7a16eeea77 /runtime/lua/vim/health.lua | |
parent | f4921e2b7deb4812414998a521c33f920f571c20 (diff) | |
download | rneovim-be1fbe38b31b6046d396407c4efbf238941c6b08.tar.gz rneovim-be1fbe38b31b6046d396407c4efbf238941c6b08.tar.bz2 rneovim-be1fbe38b31b6046d396407c4efbf238941c6b08.zip |
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).
Diffstat (limited to 'runtime/lua/vim/health.lua')
-rw-r--r-- | runtime/lua/vim/health.lua | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/runtime/lua/vim/health.lua b/runtime/lua/vim/health.lua index a265e2b901..0d42e8fed6 100644 --- a/runtime/lua/vim/health.lua +++ b/runtime/lua/vim/health.lua @@ -186,18 +186,13 @@ local function get_healthcheck(plugin_names) return healthchecks end ---- Indents lines *except* line 1 of a string if it contains newlines. +--- Indents lines *except* line 1 of a multiline string. --- --- @param s string --- @param columns integer --- @return string local function indent_after_line1(s, columns) - local lines = vim.split(s, '\n') - local indent = string.rep(' ', columns) - for i = 2, #lines do - lines[i] = indent .. lines[i] - end - return table.concat(lines, '\n') + return (vim.text.indent(columns, s):gsub('^%s+', '')) end --- Changes ':h clipboard' to ':help |clipboard|'. |