From e1789bc54483d76ac9ddb40b633d1645c8281914 Mon Sep 17 00:00:00 2001 From: Johan Date: Fri, 21 Aug 2026 04:38:28 +0200 Subject: [PATCH] fix(lsp): check completionProvider key existence, not emptiness (#5157) completionProvider: {} is valid per the LSP spec (means completion enabled with default options). The old !empty() check incorrectly rejected empty objects, causing ALE to silently disable completion for servers that send completionProvider: {}. --- autoload/ale/lsp.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/autoload/ale/lsp.vim b/autoload/ale/lsp.vim index 5b961d30a..1aa349314 100644 --- a/autoload/ale/lsp.vim +++ b/autoload/ale/lsp.vim @@ -265,7 +265,9 @@ function! ale#lsp#UpdateCapabilities(conn_id, capabilities) abort let l:conn.capabilities.code_actions = 1 endif - if !empty(get(a:capabilities, 'completionProvider')) + let l:completion = get(a:capabilities, 'completionProvider', v:false) + + if type(l:completion) is v:t_dict || l:completion is v:true let l:conn.capabilities.completion = 1 endif