diff options
Diffstat (limited to 'runtime/lua/vim/lsp/completion.lua')
-rw-r--r-- | runtime/lua/vim/lsp/completion.lua | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/runtime/lua/vim/lsp/completion.lua b/runtime/lua/vim/lsp/completion.lua index 2e6d82b367..b935c48d3c 100644 --- a/runtime/lua/vim/lsp/completion.lua +++ b/runtime/lua/vim/lsp/completion.lua @@ -235,14 +235,20 @@ function M._lsp_to_complete_items(result, prefix, client_id) return {} end - local matches = prefix == '' and function() - return true - end or function(item) - if item.filterText then - return next(vim.fn.matchfuzzy({ item.filterText }, prefix)) + ---@type fun(item: lsp.CompletionItem):boolean + local matches + if prefix == '' then + matches = function(_) + return true + end + else + ---@param item lsp.CompletionItem + matches = function(item) + local text = item.filterText or item.label + return next(vim.fn.matchfuzzy({ text }, prefix)) ~= nil end - return true end + local candidates = {} for _, item in ipairs(items) do if matches(item) then |