From 3f63100d5bc3bcaddccef4e5f95af9ea5cff1cc3 Mon Sep 17 00:00:00 2001 From: Mathias Fußenegger Date: Mon, 18 Jan 2021 19:33:10 +0100 Subject: 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. --- test/functional/plugin/lsp_spec.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'test/functional/plugin') 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 = { -- cgit