vim-strip-trailing-whitespace
vim-strip-trailing-whitespace copied to clipboard
Neovim: Error with undo without EOL
Hello 😃 I get the error:
Error executing lua callback: [string ":lua"]:1: Vim(call):E16: Invalid range: call s:RemoveRange(a:start, a:end - 1)
How to reproduce:
function! ReverseLines() range
let lines = reverse(getline(a:firstline, a:lastline))
silent execute a:firstline . ',' . a:lastline . 'delete _'
silent execute (a:firstline - 1) . 'put =lines'
endfunction
command! -bar -range=% Reproduce <line1>,<line2> call ReverseLines()
- Use the
Reproducecommand on the two selected lines with0and1 - Press undo by
u
no-error
0
1
error
0
1
NVIM v0.5.0-360-g1f479fffb
VIM 8.2 (p236) — works fine
Thanks again, this is definitely in the same vein as #4. The offending line is here. Will try fixing, if I get the time to do so.
I have thought about a workaround but don't think there's a surefire way: You have to make the line number be valid for calling Vim script functions not to error, but there's no way to restore the invalid line number that the calling code might be expecting (and so the cursor would move).
I also hit this error when using vimspector