aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-11-21 12:45:52 +0100
committerGitHub <noreply@github.com>2019-11-21 12:45:52 +0100
commitcc5487e32f6fc6d0034634a1f9e736968afb4450 (patch)
treea54d57e5883dc781992da4ada7f7a7931f9b0e8e /runtime/lua/vim/lsp.lua
parent525bb1b55d8771939f0a9d72a532abc8f2134445 (diff)
parent76e0a8bd935b27270f8f6a594c3025bc494f4422 (diff)
downloadrneovim-cc5487e32f6fc6d0034634a1f9e736968afb4450.tar.gz
rneovim-cc5487e32f6fc6d0034634a1f9e736968afb4450.tar.bz2
rneovim-cc5487e32f6fc6d0034634a1f9e736968afb4450.zip
Merge pull request #11433 from bfredl/lspeol
lsp: transmit "\n" after last line when 'eol' is set
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua13
1 files changed, 10 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 9dbe03dace..0c1a145c04 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -23,7 +23,6 @@ local lsp = {
-- format_rpc_error = lsp_rpc.format_rpc_error;
}
--- TODO consider whether 'eol' or 'fixeol' should change the nvim_buf_get_lines that send.
-- TODO improve handling of scratch buffers with LSP attached.
local function resolve_bufnr(bufnr)
@@ -175,6 +174,14 @@ local function validate_client_config(config)
}
end
+local function buf_get_full_text(bufnr)
+ local text = table.concat(nvim_buf_get_lines(bufnr, 0, -1, true), '\n')
+ if nvim_buf_get_option(bufnr, 'eol') then
+ text = text .. '\n'
+ end
+ return text
+end
+
local function text_document_did_open_handler(bufnr, client)
if not client.resolved_capabilities.text_document_open_close then
return
@@ -188,7 +195,7 @@ local function text_document_did_open_handler(bufnr, client)
uri = vim.uri_from_bufnr(bufnr);
-- TODO make sure our filetypes are compatible with languageId names.
languageId = nvim_buf_get_option(bufnr, 'filetype');
- text = table.concat(nvim_buf_get_lines(bufnr, 0, -1, false), '\n');
+ text = buf_get_full_text(bufnr);
}
}
client.notify('textDocument/didOpen', params)
@@ -551,7 +558,7 @@ do
end)
local full_changes = once(function()
return {
- text = table.concat(nvim_buf_get_lines(bufnr, 0, -1, false), "\n");
+ text = buf_get_full_text(bufnr);
};
end)
local uri = vim.uri_from_bufnr(bufnr)