mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
fix: remove vim.lsp._with_extend
Not used anywhere.
This commit is contained in:
parent
bdfba8598b
commit
5c245ec3e9
@ -1279,44 +1279,6 @@ function lsp.with(handler, override_config)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Helper function to use when implementing a handler.
|
|
||||||
--- This will check that all of the keys in the user configuration
|
|
||||||
--- are valid keys and make sense to include for this handler.
|
|
||||||
---
|
|
||||||
--- Will error on invalid keys (i.e. keys that do not exist in the options)
|
|
||||||
--- @param name string
|
|
||||||
--- @param options table<string,any>
|
|
||||||
--- @param user_config table<string,any>
|
|
||||||
function lsp._with_extend(name, options, user_config)
|
|
||||||
user_config = user_config or {}
|
|
||||||
|
|
||||||
local resulting_config = {} --- @type table<string,any>
|
|
||||||
for k, v in pairs(user_config) do
|
|
||||||
if options[k] == nil then
|
|
||||||
error(
|
|
||||||
debug.traceback(
|
|
||||||
string.format(
|
|
||||||
'Invalid option for `%s`: %s. Valid options are:\n%s',
|
|
||||||
name,
|
|
||||||
k,
|
|
||||||
vim.inspect(vim.tbl_keys(options))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
resulting_config[k] = v
|
|
||||||
end
|
|
||||||
|
|
||||||
for k, v in pairs(options) do
|
|
||||||
if resulting_config[k] == nil then
|
|
||||||
resulting_config[k] = v
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return resulting_config
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Registry for client side commands.
|
--- Registry for client side commands.
|
||||||
--- This is an extension point for plugins to handle custom commands which are
|
--- This is an extension point for plugins to handle custom commands which are
|
||||||
--- not part of the core language server protocol specification.
|
--- not part of the core language server protocol specification.
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
local t = require('test.testutil')
|
|
||||||
local n = require('test.functional.testnvim')()
|
|
||||||
|
|
||||||
local eq = t.eq
|
|
||||||
local exec_lua = n.exec_lua
|
|
||||||
local pcall_err = t.pcall_err
|
|
||||||
local matches = t.matches
|
|
||||||
|
|
||||||
describe('lsp-handlers', function()
|
|
||||||
describe('vim.lsp._with_extend', function()
|
|
||||||
it('should return a table with the default keys', function()
|
|
||||||
eq(
|
|
||||||
{ hello = 'world' },
|
|
||||||
exec_lua(function()
|
|
||||||
return vim.lsp._with_extend('test', { hello = 'world' })
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
end)
|
|
||||||
|
|
||||||
it('should override with config keys', function()
|
|
||||||
eq(
|
|
||||||
{ hello = 'universe', other = true },
|
|
||||||
exec_lua(function()
|
|
||||||
return vim.lsp._with_extend(
|
|
||||||
'test',
|
|
||||||
{ other = true, hello = 'world' },
|
|
||||||
{ hello = 'universe' }
|
|
||||||
)
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
end)
|
|
||||||
|
|
||||||
it('should not allow invalid keys', function()
|
|
||||||
matches(
|
|
||||||
'.*Invalid option for `test`.*',
|
|
||||||
pcall_err(exec_lua, function()
|
|
||||||
return vim.lsp._with_extend('test', { hello = 'world' }, { invalid = true })
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
end)
|
|
Loading…
Reference in New Issue
Block a user