diff options
author | Lewis Russell <lewis6991@gmail.com> | 2025-01-24 13:01:25 +0000 |
---|---|---|
committer | Lewis Russell <me@lewisr.dev> | 2025-01-27 16:37:50 +0000 |
commit | 6aa42e8f92bd8bea49b7b2accfe4ab67a5344e41 (patch) | |
tree | 5695108458a60f19e56834e9889ea58fc9c8c32d /runtime/lua/vim/lsp/client.lua | |
parent | 83479b95abae84b4b2b4a0331503298ddc5ff47b (diff) | |
download | rneovim-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.lua | 12 |
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 |