From e1a0781f9de7d90554ea572cd220d72f823be3dc Mon Sep 17 00:00:00 2001 From: "Wilson E. Alvarez" Date: Tue, 14 Mar 2023 16:55:28 -0400 Subject: Fix `ale#util#GetBufferContents` and propagate use (#4457) * Use newline characters instead in ale#util#GetBufferContents * Propagate use of ale#util#GetBufferContents * Add ale#util#GetContentBuffer test --- autoload/ale/lsp/message.vim | 8 ++------ autoload/ale/util.vim | 2 +- test/lsp/test_lsp_client_messages.vader | 3 +++ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/autoload/ale/lsp/message.vim b/autoload/ale/lsp/message.vim index c2238dec..9d5b6228 100644 --- a/autoload/ale/lsp/message.vim +++ b/autoload/ale/lsp/message.vim @@ -52,28 +52,24 @@ function! ale#lsp#message#Exit() abort endfunction function! ale#lsp#message#DidOpen(buffer, language_id) abort - let l:lines = getbufline(a:buffer, 1, '$') - return [1, 'textDocument/didOpen', { \ 'textDocument': { \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ 'languageId': a:language_id, \ 'version': ale#lsp#message#GetNextVersionID(), - \ 'text': join(l:lines, "\n") . "\n", + \ 'text': ale#util#GetBufferContents(a:buffer), \ }, \}] endfunction function! ale#lsp#message#DidChange(buffer) abort - let l:lines = getbufline(a:buffer, 1, '$') - " For changes, we simply send the full text of the document to the server. return [1, 'textDocument/didChange', { \ 'textDocument': { \ 'uri': ale#util#ToURI(expand('#' . a:buffer . ':p')), \ 'version': ale#lsp#message#GetNextVersionID(), \ }, - \ 'contentChanges': [{'text': join(l:lines, "\n") . "\n"}] + \ 'contentChanges': [{'text': ale#util#GetBufferContents(a:buffer)}] \}] endfunction diff --git a/autoload/ale/util.vim b/autoload/ale/util.vim index c884076a..2dc71ce5 100644 --- a/autoload/ale/util.vim +++ b/autoload/ale/util.vim @@ -542,7 +542,7 @@ function! ale#util#SetBufferContents(buffer, lines) abort endfunction function! ale#util#GetBufferContents(buffer) abort - return join(getbufline(a:buffer, 1, '$'), '\n') . '\n' + return join(getbufline(a:buffer, 1, '$'), "\n") . "\n" endfunction function! ale#util#ToURI(resource) abort diff --git a/test/lsp/test_lsp_client_messages.vader b/test/lsp/test_lsp_client_messages.vader index 4d897b51..077a4c91 100644 --- a/test/lsp/test_lsp_client_messages.vader +++ b/test/lsp/test_lsp_client_messages.vader @@ -36,6 +36,9 @@ Given typescript(A TypeScript file with 3 lines): bar() baz() +Execute(ale#util#GetBufferContents() should return correctly formatted newlines): + AssertEqual "foo()\nbar()\nbaz()\n", ale#util#GetBufferContents(bufnr('')) + Execute(ale#lsp#message#DidOpen() should return correct messages): let g:ale_lsp_next_version_id = 12 AssertEqual -- cgit v1.2.3