aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/client.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2025-01-24 13:01:25 +0000
committerLewis Russell <me@lewisr.dev>2025-01-27 16:37:50 +0000
commit6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41 (patch)
tree5695108458a60f19e56834e9889ea58fc9c8c32d /runtime/lua/vim/lsp/client.lua
parent83479b95abae84b4b2b4a0331503298ddc5ff47b (diff)
downloadrneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.tar.gz
rneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.tar.bz2
rneovim-6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41.zip
fix: resolve all remaining LuaLS diagnostics
Diffstat (limited to 'runtime/lua/vim/lsp/client.lua')
-rw-r--r--runtime/lua/vim/lsp/client.lua12
1 files changed, 7 insertions, 5 deletions
diff --git a/runtime/lua/vim/lsp/client.lua b/runtime/lua/vim/lsp/client.lua
index a082613bb0..253ccc48f4 100644
--- a/runtime/lua/vim/lsp/client.lua
+++ b/runtime/lua/vim/lsp/client.lua
@@ -904,18 +904,20 @@ end
function Client:_get_registration(method, bufnr)
bufnr = vim._resolve_bufnr(bufnr)
for _, reg in ipairs(self.registrations[method] or {}) do
- if not reg.registerOptions or not reg.registerOptions.documentSelector then
+ local regoptions = reg.registerOptions --[[@as {documentSelector:lsp.TextDocumentFilter[]}]]
+ if not regoptions or not regoptions.documentSelector then
return reg
end
- local documentSelector = reg.registerOptions.documentSelector
+ local documentSelector = regoptions.documentSelector
local language = self:_get_language_id(bufnr)
local uri = vim.uri_from_bufnr(bufnr)
local fname = vim.uri_to_fname(uri)
for _, filter in ipairs(documentSelector) do
+ local flang, fscheme, fpat = filter.language, filter.scheme, filter.pattern
if
- not (filter.language and language ~= filter.language)
- and not (filter.scheme and not vim.startswith(uri, filter.scheme .. ':'))
- and not (filter.pattern and not vim.glob.to_lpeg(filter.pattern):match(fname))
+ not (flang and language ~= flang)
+ and not (fscheme and not vim.startswith(uri, fscheme .. ':'))
+ and not (type(fpat) == 'string' and not vim.glob.to_lpeg(fpat):match(fname))
then
return reg
end