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:
Justin M. Keyes
2025-02-21 02:02:32 +01:00
parent f4921e2b7d
commit be1fbe38b3
31 changed files with 533 additions and 331 deletions

View File

@@ -2041,11 +2041,11 @@ describe('float window', function()
[2:----------------------------------------]|*6
[3:----------------------------------------]|
## grid 2
neeed some dummy |
background text |
to show the effect |
of color blending |
of border shadow |
neeed some dummy |
background text |
to show the effect |
of color blending |
of border shadow |
^ |
## grid 3
|
@@ -2065,11 +2065,11 @@ describe('float window', function()
}}
else
screen:expect{grid=[[
neeed some dummy |
background text |
to {1: halloj! }{23:e}ffect |
of {1: BORDAA }{24:n}ding |
of {23:b}{24:order sha}dow |
neeed some dummy |
background text |
to sh{1: halloj! }{23:f}ect |
of co{1: BORDAA }{24:i}ng |
of bo{23:r}{24:der shado}w |
^ |
|
]]}