autoload/lsp/completion.vim | 9 +++++++++ diff --git a/autoload/lsp/completion.vim b/autoload/lsp/completion.vim index e50f2a01b25cda21ce59ab17d8701150d74d1190..5932990412450cfcc246da3c98897e920e0660e3 100644 --- a/autoload/lsp/completion.vim +++ b/autoload/lsp/completion.vim @@ -78,11 +78,14 @@ if cItems->empty() return endif + lspserver.completeItemsIsIncomplete = false + var items: list> if cItems->type() == v:t_list items = cItems else items = cItems.items + lspserver.completeItemsIsIncomplete = cItems.isIncomplete endif # Get the keyword prefix before the current cursor column. @@ -301,6 +304,12 @@ count += 1 endwhile var res: list> = lspserver.completeItems + + # Don't attempt to filter on the items, when "isIncomplete" is set + if lspserver.completeItemsIsIncomplete + return res->empty() ? v:none : res + endif + return res->empty() ? v:none : res->filter((i, v) => v.word =~# '^' .. lspserver.omniCompleteKeyword) endif enddef