aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/text.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 /runtime/lua/vim/text.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 'runtime/lua/vim/text.lua')
-rw-r--r--runtime/lua/vim/text.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/lua/vim/text.lua b/runtime/lua/vim/text.lua
index ba038bacf8..3bdb058e30 100644
--- a/runtime/lua/vim/text.lua
+++ b/runtime/lua/vim/text.lua
@@ -190,7 +190,7 @@ function M.indent(size, text, opts)
old_indent = old_indent or 0
prefix = prefix and prefix or ' '
- if old_indent == size then
+ if not opts.expandtab and old_indent == size then
-- Optimization: if the indent is the same, return the text unchanged.
return text, old_indent
end