Neovim: Error with undo without EOL
AlexMasterov opened this issue ยท 2 comments
AlexMasterov commented
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
Reproduce
command on the two selected lines with0
and1
- Press undo by
u
no-error
0
1
error
0
1
NVIM v0.5.0-360-g1f479fffb
VIM 8.2 (p236) โ works fine
axelf4 commented
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).
mellery451 commented
I also hit this error when using vimspector