aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMathias Fußenegger <mfussenegger@users.noreply.github.com>2021-01-18 19:33:10 +0100
committerGitHub <noreply@github.com>2021-01-18 19:33:10 +0100
commit3f63100d5bc3bcaddccef4e5f95af9ea5cff1cc3 (patch)
tree25d275035f01286e6c191c95d8ce8856b12b1d88 /test
parent51936126d3281231ec8f971ebefd82a95f8dc0e6 (diff)
downloadrneovim-3f63100d5bc3bcaddccef4e5f95af9ea5cff1cc3.tar.gz
rneovim-3f63100d5bc3bcaddccef4e5f95af9ea5cff1cc3.tar.bz2
rneovim-3f63100d5bc3bcaddccef4e5f95af9ea5cff1cc3.zip
LSP: Fix nil settings handling in workspace/configuration (#13708)
The `workspace/configuration` handler could fail with the following error if `config.settings` is nil: runtime/lua/vim/lsp/util.lua:1432: attempt to index local 'settings' (a nil value)" This ensures that `config.settings` is always initialized to an empty table.
Diffstat (limited to 'test')
-rw-r--r--test/functional/plugin/lsp_spec.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua
index e8caa05260..41fdf845df 100644
--- a/test/functional/plugin/lsp_spec.lua
+++ b/test/functional/plugin/lsp_spec.lua
@@ -303,6 +303,21 @@ describe('LSP', function()
end;
}
end)
+ it('workspace/configuration returns NIL per section if client was started without config.settings', function()
+ fake_lsp_server_setup('workspace/configuration no settings')
+ eq({
+ NIL,
+ NIL,
+ }, exec_lua [[
+ local params = {
+ items = {
+ {section = 'foo'},
+ {section = 'bar'},
+ }
+ }
+ return vim.lsp.handlers['workspace/configuration'](nil, nil, params, TEST_RPC_CLIENT_ID)
+ ]])
+ end)
it('should verify capabilities sent', function()
local expected_callbacks = {