aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload
diff options
context:
space:
mode:
authorEdmund Cape <edmund@Edmunds-MacBook-Pro.local>2022-01-19 13:30:20 -0500
committerzeertzjq <zeertzjq@outlook.com>2022-02-09 10:18:22 +0800
commit300b009f47bc617faa1c445966e2085c455e0c45 (patch)
tree7e547e125071c89426dec2ff38d76d62ff7cf416 /runtime/autoload
parent07c97fa02d2f5be0e643f78428d56413895096cd (diff)
downloadrneovim-300b009f47bc617faa1c445966e2085c455e0c45.tar.gz
rneovim-300b009f47bc617faa1c445966e2085c455e0c45.tar.bz2
rneovim-300b009f47bc617faa1c445966e2085c455e0c45.zip
fix(healthcheck): handle empty reports
Diffstat (limited to 'runtime/autoload')
-rw-r--r--runtime/autoload/health.vim9
1 files changed, 8 insertions, 1 deletions
diff --git a/runtime/autoload/health.vim b/runtime/autoload/health.vim
index 1d462ad02c..ec030adf04 100644
--- a/runtime/autoload/health.vim
+++ b/runtime/autoload/health.vim
@@ -21,10 +21,17 @@ function! health#check(plugin_names) abort
throw 'healthcheck_not_found'
endif
eval type == 'v' ? call(func, []) : luaeval(func)
+ " in the event the healthcheck doesn't return anything
+ " (the plugin author should avoid this possibility)
+ if len(s:output) == 0
+ throw 'healthcheck_no_return_value'
+ endif
catch
let s:output = [] " Clear the output
if v:exception =~# 'healthcheck_not_found'
call health#report_error('No healthcheck found for "'.name.'" plugin.')
+ elseif v:exception =~# 'healthcheck_no_return_value'
+ call health#report_error('The healthcheck report for "'.name.'" plugin is empty.')
else
call health#report_error(printf(
\ "Failed to run healthcheck for \"%s\" plugin. Exception:\n%s\n%s",
@@ -127,7 +134,7 @@ endfunction " }}}
" From a path return a list [{name}, {func}, {type}] representing a healthcheck
function! s:filepath_to_healthcheck(path) abort
- if a:path =~# 'vim$'
+ if a:path =~# 'vim$'
let name = matchstr(a:path, '\zs[^\/]*\ze\.vim$')
let func = 'health#'.name.'#check'
let type = 'v'