diff options
| author | Artem Krinitsyn <arkriny@arkriny.com> | 2026-07-26 13:24:39 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-26 06:24:39 -0400 |
| commit | dec3d8215dfa5d1ffd3a7d1d06559290db3cffcf (patch) | |
| tree | 6dd1d39d61615b1b34c27d6c0799b003f3eb7186 /runtime/lua/vim | |
| parent | 6539bd66028524412655f55a0e8f00f58d3bac97 (diff) | |
| download | rneovim-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')
| -rw-r--r-- | runtime/lua/vim/text.lua | 2 |
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 |