Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local health = vim.health or require "health"
 | 
						|
local start = health.start or health.report_start
 | 
						|
local ok = health.ok or health.report_ok
 | 
						|
local warn = health.warn or health.report_warn
 | 
						|
local error = health.error or health.report_error
 | 
						|
local info = health.info or health.report_info
 | 
						|
 | 
						|
local extension_module = require "telescope._extensions"
 | 
						|
local extension_info = require("telescope").extensions
 | 
						|
local is_win = vim.api.nvim_call_function("has", { "win32" }) == 1
 | 
						|
 | 
						|
local optional_dependencies = {
 | 
						|
  {
 | 
						|
    finder_name = "live-grep",
 | 
						|
    package = {
 | 
						|
      {
 | 
						|
        name = "rg",
 | 
						|
        url = "[BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)",
 | 
						|
        optional = false,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
  {
 | 
						|
    finder_name = "find-files",
 | 
						|
    package = {
 | 
						|
      {
 | 
						|
        name = "fd",
 | 
						|
        binaries = { "fdfind", "fd" },
 | 
						|
        url = "[sharkdp/fd](https://github.com/sharkdp/fd)",
 | 
						|
        optional = true,
 | 
						|
      },
 | 
						|
    },
 | 
						|
  },
 | 
						|
}
 | 
						|
 | 
						|
local required_plugins = {
 | 
						|
  { lib = "plenary", optional = false },
 | 
						|
  {
 | 
						|
    lib = "nvim-treesitter",
 | 
						|
    optional = true,
 | 
						|
    info = "",
 | 
						|
  },
 | 
						|
}
 | 
						|
 | 
						|
local check_binary_installed = function(package)
 | 
						|
  local binaries = package.binaries or { package.name }
 | 
						|
  for _, binary in ipairs(binaries) do
 | 
						|
    local found = vim.fn.executable(binary) == 1
 | 
						|
    if not found and is_win then
 | 
						|
      binary = binary .. ".exe"
 | 
						|
      found = vim.fn.executable(binary) == 1
 | 
						|
    end
 | 
						|
    if found then
 | 
						|
      local handle = io.popen(binary .. " --version")
 | 
						|
      local binary_version = handle:read "*a"
 | 
						|
      handle:close()
 | 
						|
      return true, binary_version
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
local function lualib_installed(lib_name)
 | 
						|
  local res, _ = pcall(require, lib_name)
 | 
						|
  return res
 | 
						|
end
 | 
						|
 | 
						|
local M = {}
 | 
						|
 | 
						|
M.check = function()
 | 
						|
  -- Required lua libs
 | 
						|
  start "Checking for required plugins"
 | 
						|
  for _, plugin in ipairs(required_plugins) do
 | 
						|
    if lualib_installed(plugin.lib) then
 | 
						|
      ok(plugin.lib .. " installed.")
 | 
						|
    else
 | 
						|
      local lib_not_installed = plugin.lib .. " not found."
 | 
						|
      if plugin.optional then
 | 
						|
        warn(("%s %s"):format(lib_not_installed, plugin.info))
 | 
						|
      else
 | 
						|
        error(lib_not_installed)
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  -- external dependencies
 | 
						|
  -- TODO: only perform checks if user has enabled dependency in their config
 | 
						|
  start "Checking external dependencies"
 | 
						|
 | 
						|
  for _, opt_dep in pairs(optional_dependencies) do
 | 
						|
    for _, package in ipairs(opt_dep.package) do
 | 
						|
      local installed, version = check_binary_installed(package)
 | 
						|
      if not installed then
 | 
						|
        local err_msg = ("%s: not found."):format(package.name)
 | 
						|
        if package.optional then
 | 
						|
          warn(("%s %s"):format(err_msg, ("Install %s for extended capabilities"):format(package.url)))
 | 
						|
        else
 | 
						|
          error(
 | 
						|
            ("%s %s"):format(
 | 
						|
              err_msg,
 | 
						|
              ("`%s` finder will not function without %s installed."):format(opt_dep.finder_name, package.url)
 | 
						|
            )
 | 
						|
          )
 | 
						|
        end
 | 
						|
      else
 | 
						|
        local eol = version:find "\n"
 | 
						|
        local ver = eol and version:sub(0, eol - 1) or "(unknown version)"
 | 
						|
        ok(("%s: found %s"):format(package.name, ver))
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  -- Extensions
 | 
						|
  start "===== Installed extensions ====="
 | 
						|
 | 
						|
  local installed = {}
 | 
						|
  for extension_name, _ in pairs(extension_info) do
 | 
						|
    installed[#installed + 1] = extension_name
 | 
						|
  end
 | 
						|
  table.sort(installed)
 | 
						|
 | 
						|
  for _, installed_ext in ipairs(installed) do
 | 
						|
    local extension_healthcheck = extension_module._health[installed_ext]
 | 
						|
 | 
						|
    start(string.format("Telescope Extension: `%s`", installed_ext))
 | 
						|
    if extension_healthcheck then
 | 
						|
      extension_healthcheck()
 | 
						|
    else
 | 
						|
      info "No healthcheck provided"
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
return M
 |