aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-10-16 17:03:48 +0100
committerLewis Russell <me@lewisr.dev>2024-10-17 16:53:52 +0100
commit3f3e4837d5f7d2d9cb1c89bd3a5b2ee8a730772a (patch)
tree54dc9c0e06c7436d18b1863e5b26272dc1948d78 /runtime/lua/vim/lsp.lua
parentfa6ab0d90958516d0bc1ed62839d85405ad08fa8 (diff)
downloadrneovim-3f3e4837d5f7d2d9cb1c89bd3a5b2ee8a730772a.tar.gz
rneovim-3f3e4837d5f7d2d9cb1c89bd3a5b2ee8a730772a.tar.bz2
rneovim-3f3e4837d5f7d2d9cb1c89bd3a5b2ee8a730772a.zip
perf(validate): use lighter version
- Also fix `vim.validate()` for PUC Lua when showing errors for values that aren't string or number.
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua32
1 files changed, 12 insertions, 20 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 60677554ce..8a0eef418d 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -86,7 +86,7 @@ lsp._request_name_to_capability = {
---@param bufnr (integer|nil) Buffer number to resolve. Defaults to current buffer
---@return integer bufnr
local function resolve_bufnr(bufnr)
- validate({ bufnr = { bufnr, 'n', true } })
+ validate('bufnr', bufnr, 'number', true)
if bufnr == nil or bufnr == 0 then
return api.nvim_get_current_buf()
end
@@ -630,10 +630,8 @@ end
---@param client_id (integer) Client id
---@return boolean success `true` if client was attached successfully; `false` otherwise
function lsp.buf_attach_client(bufnr, client_id)
- validate({
- bufnr = { bufnr, 'n', true },
- client_id = { client_id, 'n' },
- })
+ validate('bufnr', bufnr, 'number', true)
+ validate('client_id', client_id, 'number')
bufnr = resolve_bufnr(bufnr)
if not api.nvim_buf_is_loaded(bufnr) then
log.warn(string.format('buf_attach_client called on unloaded buffer (id: %d): ', bufnr))
@@ -669,10 +667,8 @@ end
---@param bufnr integer Buffer handle, or 0 for current
---@param client_id integer Client id
function lsp.buf_detach_client(bufnr, client_id)
- validate({
- bufnr = { bufnr, 'n', true },
- client_id = { client_id, 'n' },
- })
+ validate('bufnr', bufnr, 'number', true)
+ validate('client_id', client_id, 'number')
bufnr = resolve_bufnr(bufnr)
local client = all_clients[client_id]
@@ -773,7 +769,7 @@ end
---@param filter? vim.lsp.get_clients.Filter
---@return vim.lsp.Client[]: List of |vim.lsp.Client| objects
function lsp.get_clients(filter)
- validate({ filter = { filter, 't', true } })
+ validate('filter', filter, 'table', true)
filter = filter or {}
@@ -870,12 +866,10 @@ api.nvim_create_autocmd('VimLeavePre', {
---cancel all the requests. You could instead
---iterate all clients and call their `cancel_request()` methods.
function lsp.buf_request(bufnr, method, params, handler, on_unsupported)
- validate({
- bufnr = { bufnr, 'n', true },
- method = { method, 's' },
- handler = { handler, 'f', true },
- on_unsupported = { on_unsupported, 'f', true },
- })
+ validate('bufnr', bufnr, 'number', true)
+ validate('method', method, 'string')
+ validate('handler', handler, 'function', true)
+ validate('on_unsupported', on_unsupported, 'function', true)
bufnr = resolve_bufnr(bufnr)
local method_supported = false
@@ -992,10 +986,8 @@ end
---
---@return boolean success true if any client returns true; false otherwise
function lsp.buf_notify(bufnr, method, params)
- validate({
- bufnr = { bufnr, 'n', true },
- method = { method, 's' },
- })
+ validate('bufnr', bufnr, 'number', true)
+ validate('method', method, 'string')
local resp = false
for _, client in ipairs(lsp.get_clients({ bufnr = bufnr })) do
if client.rpc.notify(method, params) then