diff options
author | Edmund Cape <edmund@Edmunds-MacBook-Pro.local> | 2022-01-19 13:30:20 -0500 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-02-09 10:18:22 +0800 |
commit | 300b009f47bc617faa1c445966e2085c455e0c45 (patch) | |
tree | 7e547e125071c89426dec2ff38d76d62ff7cf416 /runtime/autoload | |
parent | 07c97fa02d2f5be0e643f78428d56413895096cd (diff) | |
download | rneovim-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.vim | 9 |
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' |