all repos

gopher.nvim @ v0.1.3

Minimalistic plugin for Go development

gopher.nvim/lua/gopher/health.lua(view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
local health = vim.health or require "health"
local utils = require "gopher._utils"
local c = require("gopher.config").config.commands

local requried = "Gopher.nvim will not work without it!"
local M = {
  _required = {
    plugins = {
      { lib = "plenary", help = requried },
      { lib = "nvim-treesitter", help = requried },
      { lib = "dap", help = "Required for set upping debugger" },
    },
    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)" },
    },
  },
}

function M.check()
  health.report_start "Required plugins"
  for _, plugin in ipairs(M._required.plugins) do
    if utils.lualib_is_found(plugin.lib) then
      health.report_ok(plugin.lib .. " installed.")
    else
      health.report_error(plugin.lib .. " not found. " .. plugin.help)
    end
  end

  health.report_start "Required go tools"
  for _, binary in ipairs(M._required.binarys) do
    if utils.binary_is_found(binary.bin) then
      health.report_ok(binary.bin .. " installed")
    else
      health.report_warn(binary.bin .. " is not installed but " .. binary.help)
    end
  end
end

return M