feat: add health checker

This commit is contained in:
Smirnov Olexander 2022-06-06 23:53:50 +03:00
parent 8bb8c14e8b
commit f507a37a72
3 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,3 @@
function! health#gopher#check()
lua require"gopher.health".check()
endfunction

View file

@ -19,4 +19,21 @@ return {
return s:sub(1, n)
end,
---@param lib string
---@return boolean
lualib_is_found = function(lib)
local is_found, _ = pcall(require, lib)
return is_found
end,
---@param bin string
---@return boolean
binary_is_found = function(bin)
if vim.fn.executable(bin) == 1 then
return true
end
return false
end,
}

35
lua/gopher/health.lua Normal file
View file

@ -0,0 +1,35 @@
local utils = require "gopher._utils"
local M = {
_required = {
plugins = {
{ lib = "plenary" },
{ lib = "nvim-treesitter" },
},
binarys = {
{ bin = "go", help = "required for GoMod command" },
{ bin = "gomodifytags", help = "required for modify struct tags" },
},
},
}
function M.check()
vim.health.report_start "Required plugins"
for _, plugin in ipairs(M._required.plugins) do
if utils.lualib_is_found(plugin.lib) then
vim.health.report_ok(plugin.lib .. " installed.")
else
vim.health.report_error(plugin.lib .. " not found. Gopher.nvim will not work without it!")
end
end
vim.health.report_start "Required go tools"
for _, binary in ipairs(M._required.binarys) do
if utils.binary_is_found(binary.bin) then
vim.health.report_ok(binary.bin .. " installed")
else
vim.health.report_warn(binary.bin .. " is not installed but " .. binary.help)
end
end
end
return M