mirror of https://github.com/folke/neoconf.nvim
86 lines
2.4 KiB
Lua
86 lines
2.4 KiB
Lua
local M = {}
|
|
|
|
local health_start = vim.health.start or vim.health.report_start
|
|
local health_ok = vim.health.ok or vim.health.report_ok
|
|
local health_warn = vim.health.warn or vim.health.report_warn
|
|
local health_error = vim.health.error or vim.health.report_error
|
|
local health_info = vim.health.info or vim.health.report_info
|
|
|
|
function M.check()
|
|
health_start("neoconf.nvim")
|
|
|
|
local function info(msg, ...)
|
|
health_info(msg:format(...))
|
|
end
|
|
|
|
local function ok(msg, ...)
|
|
health_ok(msg:format(...))
|
|
end
|
|
|
|
local function warn(msg, ...)
|
|
health_warn(msg:format(...))
|
|
end
|
|
|
|
local function error(msg, ...)
|
|
health_warn(msg:format(...))
|
|
end
|
|
|
|
if pcall(vim.treesitter.get_string_parser, "", "jsonc") then
|
|
ok("**jsonc** parser for tree-sitter is installed")
|
|
else
|
|
warn("**jsonc** parser for tree-sitter is not installed. Jsonc highlighting might be broken")
|
|
end
|
|
|
|
if pcall(require, "neodev") then
|
|
warn("**neodev.nvim** is installed. lazydev.nvim is a much faster and better replacement for neodev")
|
|
end
|
|
|
|
if pcall(require, "lazydev") then
|
|
ok("**lazydev.nvim** is installed")
|
|
else
|
|
warn("**lazydev.nvim** is not installed. You won't get any proper completion for your Neovim config.")
|
|
end
|
|
|
|
local _, lspconfig = pcall(require, "lspconfig.util")
|
|
|
|
if lspconfig then
|
|
ok("**lspconfig** is installed")
|
|
local available = lspconfig.available_servers()
|
|
if vim.tbl_contains(available, "jsonls") then
|
|
ok("**lspconfig jsonls** is installed")
|
|
else
|
|
warn("**lspconfig jsonls** is not installed? You won't get any auto completion in your settings files")
|
|
end
|
|
if vim.tbl_contains(available, "lua_ls") then
|
|
ok("**lspconfig lua_ls** is installed")
|
|
else
|
|
warn("**lspconfig lua_ls** is not installed? You won't get any auto completion in your lua settings files")
|
|
end
|
|
else
|
|
error("**lspconfig** not installed?")
|
|
end
|
|
end
|
|
|
|
function M.check_setup()
|
|
local util = require("neoconf.util")
|
|
if vim.fn.has("nvim-0.7.2") == 0 then
|
|
util.error("**neoconf.nvim** requires Neovim >= 0.7.2")
|
|
end
|
|
local lsputil = package.loaded["lspconfig.util"]
|
|
if lsputil then
|
|
if #lsputil.available_servers() == 0 then
|
|
return true
|
|
else
|
|
util.error(
|
|
[[Setup `require("neoconf").setup()` should be run **BEFORE** setting up any lsp server with lspconfig]]
|
|
)
|
|
end
|
|
else
|
|
-- lspconfig has not ben loaded yet
|
|
-- so all is good
|
|
return true
|
|
end
|
|
end
|
|
|
|
return M
|