commit d837b6d50cbb7e90ac8f77a9e1ac2a69acae02c1
parent 96c494dec345f9a3dd2676048292267552e3f5f8
Author: Javier Lopez <graulopezjavier@gmail.com>
Date: Wed, 1 Jun 2022 09:10:10 -0500
fix(checkhealth): skip vim.health #18816
Problem:
https://github.com/neovim/neovim/pull/18720#issuecomment-1142614996
The vim.health module is detected as a healthcheck, which produces spurious errors:
vim: require("vim.health").check()
========================================================================
- ERROR: Failed to run healthcheck for "vim" plugin. Exception:
function health#check, line 20
Vim(eval):E5108: Error executing lua [string "luaeval()"]:1: attempt to call field 'check' (a nil value)
stack traceback:
[string "luaeval()"]:1: in main chunk
Solution:
Skip vim.health when discovering healthchecks.
Diffstat:
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/runtime/autoload/health.vim b/runtime/autoload/health.vim
@@ -171,6 +171,11 @@ function! s:get_healthcheck(plugin_names) abort
for v in values(healthchecks)
let output[v[0]] = v[1:]
endfor
+ try
+ " vim.health is not a healthcheck, skip it
+ call remove(output, 'vim')
+ catch
+ endtry
return output
endfunction
diff --git a/runtime/lua/vim/health.lua b/runtime/lua/vim/health.lua
@@ -41,6 +41,8 @@ M._complete = function()
vim.tbl_map(function(f)
unique[f] = true
end, names)
+ -- vim.health is this file, which is not a healthcheck
+ unique['vim'] = nil
return vim.tbl_keys(unique)
end
diff --git a/test/functional/plugin/health_spec.lua b/test/functional/plugin/health_spec.lua
@@ -5,7 +5,7 @@ local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local curbuf_contents = helpers.curbuf_contents
local command = helpers.command
-local eq = helpers.eq
+local eq, neq = helpers.eq, helpers.neq
local getcompletion = helpers.funcs.getcompletion
describe(':checkhealth', function()
@@ -37,6 +37,7 @@ describe(':checkhealth', function()
eq('nvim', getcompletion('nvim', 'checkhealth')[1])
eq('provider', getcompletion('prov', 'checkhealth')[1])
eq('vim.lsp', getcompletion('vim.ls', 'checkhealth')[1])
+ neq('vim', getcompletion('^vim', 'checkhealth')[1]) -- should not complete vim.health
end)
end)
@@ -242,6 +243,13 @@ describe('health.vim', function()
- ERROR: No healthcheck found for "non_existent_healthcheck" plugin.
]])
end)
+
+ it("does not use vim.health as a healtcheck", function()
+ -- vim.health is not a healthcheck
+ command("checkhealth vim")
+ helpers.expect([[
+ ERROR: No healthchecks found.]])
+ end)
end)
end)