aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/text_spec.lua
diff options
context:
space:
mode:
authorArtem Krinitsyn <arkriny@arkriny.com>2026-07-26 13:24:39 +0300
committerGitHub <noreply@github.com>2026-07-26 06:24:39 -0400
commitdec3d8215dfa5d1ffd3a7d1d06559290db3cffcf (patch)
tree6dd1d39d61615b1b34c27d6c0799b003f3eb7186 /test/functional/lua/text_spec.lua
parent6539bd66028524412655f55a0e8f00f58d3bac97 (diff)
downloadrneovim-dec3d8215dfa5d1ffd3a7d1d06559290db3cffcf.tar.gz
rneovim-dec3d8215dfa5d1ffd3a7d1d06559290db3cffcf.tar.bz2
rneovim-dec3d8215dfa5d1ffd3a7d1d06559290db3cffcf.zip
fix(text): indent() ignores `expandtab` when indent unchanged #40932
Problem: After expanding tabs with the `expandtab` option, if the old indent matches the requested one, `vim.text.indent()` returns the input unchanged. The optimization path assumes that if old_indent == size, the input wouldn't be changed, which is not correct when old_indent is formed by expanded tabs. Solution: Apply the optimization only when `expandtab` is not set.
Diffstat (limited to 'test/functional/lua/text_spec.lua')
-rw-r--r--test/functional/lua/text_spec.lua2
1 files changed, 2 insertions, 0 deletions
diff --git a/test/functional/lua/text_spec.lua b/test/functional/lua/text_spec.lua
index a4a41dc862..9e80f81bc5 100644
--- a/test/functional/lua/text_spec.lua
+++ b/test/functional/lua/text_spec.lua
@@ -47,6 +47,8 @@ describe('vim.text', function()
{ ' \n \nfoo\n\nbar\nbaz\n \n', 1 },
{ vim.text.indent(0, ' \n \n foo\n\n bar\n baz\n \n') }
)
+ -- Tabs expand when old indent matches new indent #40932.
+ eq({ ' a', 2 }, { vim.text.indent(2, '\t a', { expandtab = 1 }) })
end)
it('real-world cases', function()