aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/lsp_settings.vim9
1 files changed, 6 insertions, 3 deletions
diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim
index dcf4a3d..ee25582 100644
--- a/plugin/lsp_settings.vim
+++ b/plugin/lsp_settings.vim
@@ -206,19 +206,22 @@ function! s:vimlsp_load_or_suggest(ft) abort
endif
if !s:executable(l:command)
let l:script = printf('%s/%s.vim', s:checkers_dir, l:server.command)
- if !filereadable(l:script) || get(l:server, 'disabled', 0) == 1
+ if !filereadable(l:script) || has_key(l:server, 'fallback')
continue
endif
+ let l:server['fallback'] = ''
try
exe 'source' l:script
let l:command = LspCheckCommand()
+ let l:server['fallback'] = l:command
catch
- continue
finally
- let l:server['disabled'] = 1
if exists('*LspCheckCommand')
delfunction LspCheckCommand
endif
+ if empty(l:server['fallback'])
+ continue
+ endif
endtry
endif
let l:script = printf('%s/%s.vim', s:settings_dir, l:server.command)