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.
This commit is contained in:
Mathias Fußenegger
2021-01-18 19:33:10 +01:00
committed by GitHub
parent 51936126d3
commit 3f63100d5b
3 changed files with 18 additions and 0 deletions

View File

@@ -229,6 +229,7 @@ local function validate_client_config(config)
before_init = { config.before_init, "f", true };
offset_encoding = { config.offset_encoding, "s", true };
flags = { config.flags, "t", true };
settings = { config.settings, "t", true };
}
-- TODO(remove-callbacks)
@@ -458,6 +459,7 @@ function lsp.start_client(config)
local cmd, cmd_args, offset_encoding = cleaned_config.cmd, cleaned_config.cmd_args, cleaned_config.offset_encoding
config.flags = config.flags or {}
config.settings = config.settings or {}
local client_id = next_client_id()