mirror of
https://github.com/neovim/neovim.git
synced 2025-12-07 15:14:04 +00:00
refactor(checkhealth)!: rename to vim.health, move logic to Lua #18720
- Complete function: There was lots of unnecessary C code for the complete function, therefore moving it to Lua and use all the plumbing we have in place to retrieve the results. - Moving the module: It's important we keep nvim lua modules name spaced, avoids conflict with plugins, luarocks, etc.
This commit is contained in:
@@ -49,6 +49,7 @@ for k, v in pairs({
|
||||
diagnostic = true,
|
||||
keymap = true,
|
||||
ui = true,
|
||||
health = true,
|
||||
}) do
|
||||
vim._submodules[k] = v
|
||||
end
|
||||
|
||||
47
runtime/lua/vim/health.lua
Normal file
47
runtime/lua/vim/health.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
local M = {}
|
||||
|
||||
function M.report_start(msg)
|
||||
vim.fn['health#report_start'](msg)
|
||||
end
|
||||
|
||||
function M.report_info(msg)
|
||||
vim.fn['health#report_info'](msg)
|
||||
end
|
||||
|
||||
function M.report_ok(msg)
|
||||
vim.fn['health#report_ok'](msg)
|
||||
end
|
||||
|
||||
function M.report_warn(msg, ...)
|
||||
vim.fn['health#report_warn'](msg, ...)
|
||||
end
|
||||
|
||||
function M.report_error(msg, ...)
|
||||
vim.fn['health#report_error'](msg, ...)
|
||||
end
|
||||
|
||||
local path2name = function(path)
|
||||
if path:match('%.lua$') then
|
||||
-- Lua: transform "../lua/vim/lsp/health.lua" into "vim.lsp"
|
||||
return path:gsub('.-lua[%\\%/]', '', 1):gsub('[%\\%/]', '.'):gsub('%.health.-$', '')
|
||||
else
|
||||
-- Vim: transform "../autoload/health/provider.vim" into "provider"
|
||||
return vim.fn.fnamemodify(path, ':t:r')
|
||||
end
|
||||
end
|
||||
|
||||
local PATTERNS = { '/autoload/health/*.vim', '/lua/**/**/health.lua', '/lua/**/**/health/init.lua' }
|
||||
-- :checkhealth completion function used by ex_getln.c get_healthcheck_names()
|
||||
M._complete = function()
|
||||
local names = vim.tbl_flatten(vim.tbl_map(function(pattern)
|
||||
return vim.tbl_map(path2name, vim.api.nvim_get_runtime_file(pattern, true))
|
||||
end, PATTERNS))
|
||||
-- Remove duplicates
|
||||
local unique = {}
|
||||
vim.tbl_map(function(f)
|
||||
unique[f] = true
|
||||
end, names)
|
||||
return vim.tbl_keys(unique)
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user