all repos

gopher.nvim @ 9d6bc761d43c6821ff61ca8aa20cf73b94748201

Minimalistic plugin for Go development
3 files changed, 52 insertions(+), 29 deletions(-)
healthcheck: refactoring, remove deprecation wanings (#35)

* refactor(checkhealth): remove deprecation warnings, complete rewrite

* refactor(checkhealth): rename util file

* style(healthchecker): reformat lua in vim file

* refactor(health): move all report function into table
Author: Smirnov Oleksandr ss2316544@gmail.com
Committed by: GitHub noreply@github.com
Committed at: 2023-07-17 18:31:21 +0300
Parent: 03cabf6
M autoload/health/gopher.vim

@@ -1,3 +1,3 @@

function! health#gopher#check() - lua require"gopher.health".check() + lua require("gopher.health").check() endfunction
M lua/gopher/health.lua

@@ -1,44 +1,67 @@

-local c = require("gopher.config").config.commands +local health = {} +local cmd = require("gopher.config").config.commands +local u = require "gopher._utils.health" -local requried_for_work_msg = "Gopher.nvim will not work without it!" -local M = { - _required = { - plugins = { - { lib = "plenary", help = requried_for_work_msg }, - { lib = "nvim-treesitter", help = requried_for_work_msg }, - { lib = "dap", help = "Required for set upping debugger" }, +local _h = vim.health or require "health" +local h = { + start = _h.start or _h.report_start, + ok = _h.ok or _h.report_ok, + warn = _h.warn or _h.report_warn, + error = _h.error or _h.report_error, + info = _h.info or _h.report_info, +} + +local deps = { + plugin = { + { lib = "dap", msg = "required for `gopher.dap`", optional = true }, + { lib = "plenary", msg = "required for everyting in gopher.nvim", optional = false }, + { lib = "nvim-treesitter", msg = "required for everyting in gopher.nvim", optional = false }, + }, + bin = { + { + bin = cmd.go, + msg = "required for :GoGet, :GoMod, :GoGenerate, :GoWork, :GoInstallDeps", + optional = false, }, - binarys = { - { bin = c.go, help = "required for GoMod, GoGet, GoGenerate command" }, - { bin = c.gomodifytags, help = "required for modify struct tags" }, - { bin = c.impl, help = "required for interface implementing" }, - { bin = c.gotests, help = "required for test(s) generation" }, - { bin = c.dlv, help = "required for debugger(nvim-dap)" }, + { bin = cmd.gomodifytags, msg = "required for :GoTagAdd, :GoTagRm", optional = false }, + { bin = cmd.impl, msg = "required for :GoImpl", optional = false }, + { bin = cmd.iferr, msg = "required for :GoIfErr", optional = false }, + { + bin = cmd.gotests, + msg = "required for :GoTestAdd, :GoTestsAll, :GoTestsExp", + optional = false, }, + { bin = cmd.dlv, msg = "required for debugging, (nvim-dap, `gopher.dap`)", optional = true }, }, } -function M.check() - local health = vim.health or require "health" - local u = require "gopher._utils._health" - - health.report_start "Required plugins" - for _, plugin in ipairs(M._required.plugins) do +function health.check() + h.start "required plugins" + for _, plugin in ipairs(deps.plugin) do if u.lualib_is_found(plugin.lib) then - health.report_ok(plugin.lib .. " installed.") + h.ok(plugin.lib .. " installed") else - health.report_error(plugin.lib .. " not found. " .. plugin.help) + if plugin.optional then + h.warn(plugin.lib .. " not found, " .. plugin.msg) + else + h.error(plugin.lib .. " not found, " .. plugin.msg) + end end end - health.report_start "Required go tools" - for _, binary in ipairs(M._required.binarys) do - if u.binary_is_found(binary.bin) then - health.report_ok(binary.bin .. " installed") + h.start "required binaries" + h.info "all those binaries can be installed by `:GoInstallDeps`" + for _, bin in ipairs(deps.bin) do + if u.binary_is_found(bin.bin) then + h.ok(bin.bin .. " installed") else - health.report_warn(binary.bin .. " is not installed but " .. binary.help) + if bin.optional then + h.warn(bin.bin .. " not found, " .. bin.msg) + else + h.error(bin.bin .. " not found, " .. bin.msg) + end end end end -return M +return health