Merge pull request #3358 from lukaswozniak/master

Improves fixer performance for large buffers
This commit is contained in:
w0rp 2020-11-21 16:40:29 +00:00 committed by GitHub
commit b8aaff2cf7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 3 deletions

View File

@ -486,7 +486,7 @@ function! ale#util#Input(message, value) abort
endfunction endfunction
function! ale#util#HasBuflineApi() abort function! ale#util#HasBuflineApi() abort
return exists('*deletebufline') && exists('*setbufline') return exists('*deletebufline') && exists('*appendbufline') && exists('*getpos') && exists('*setpos')
endfunction endfunction
" Sets buffer contents to lines " Sets buffer contents to lines
@ -507,8 +507,11 @@ function! ale#util#SetBufferContents(buffer, lines) abort
" Use a Vim API for setting lines in other buffers, if available. " Use a Vim API for setting lines in other buffers, if available.
if l:has_bufline_api if l:has_bufline_api
call setbufline(a:buffer, 1, l:new_lines) let l:save_cursor = getpos('.')
call deletebufline(a:buffer, l:first_line_to_remove, '$') call deletebufline(a:buffer, 1, '$')
call appendbufline(a:buffer, 1, l:new_lines)
call deletebufline(a:buffer, 1, 1)
call setpos('.', l:save_cursor)
" Fall back on setting lines the old way, for the current buffer. " Fall back on setting lines the old way, for the current buffer.
else else
let l:old_line_length = line('$') let l:old_line_length = line('$')