feat: add health checker
This commit is contained in:
parent
8bb8c14e8b
commit
f507a37a72
3 changed files with 55 additions and 0 deletions
3
autoload/health/gopher.vim
Normal file
3
autoload/health/gopher.vim
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
function! health#gopher#check()
|
||||||
|
lua require"gopher.health".check()
|
||||||
|
endfunction
|
||||||
|
|
@ -19,4 +19,21 @@ return {
|
||||||
|
|
||||||
return s:sub(1, n)
|
return s:sub(1, n)
|
||||||
end,
|
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
35
lua/gopher/health.lua
Normal 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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue