2021-08-13 22:32:56 +02:00
|
|
|
local M = {}
|
|
|
|
|
2021-10-10 21:07:41 +02:00
|
|
|
local Log = require "lvim.core.log"
|
|
|
|
local formatters = require "lvim.lsp.null-ls.formatters"
|
|
|
|
local linters = require "lvim.lsp.null-ls.linters"
|
2021-10-03 16:13:46 +02:00
|
|
|
|
|
|
|
function M:setup()
|
|
|
|
local status_ok, null_ls = pcall(require, "null-ls")
|
|
|
|
if not status_ok then
|
|
|
|
Log:error "Missing null-ls dependency"
|
2021-08-13 22:32:56 +02:00
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2021-10-03 16:13:46 +02:00
|
|
|
null_ls.config()
|
2021-10-14 18:58:56 +02:00
|
|
|
local default_opts = require("lvim.lsp").get_common_opts()
|
|
|
|
|
|
|
|
if vim.tbl_isempty(lvim.lsp.null_ls.setup or {}) then
|
|
|
|
lvim.lsp.null_ls.setup = default_opts
|
|
|
|
end
|
|
|
|
|
2021-10-04 23:09:40 +02:00
|
|
|
require("lspconfig")["null-ls"].setup(lvim.lsp.null_ls.setup)
|
2021-10-08 08:57:11 +02:00
|
|
|
for filetype, config in pairs(lvim.lang) do
|
|
|
|
if not vim.tbl_isempty(config.formatters) then
|
2021-10-09 13:39:15 +02:00
|
|
|
vim.tbl_map(function(c)
|
|
|
|
c.filetypes = { filetype }
|
|
|
|
end, config.formatters)
|
|
|
|
formatters.setup(config.formatters)
|
2021-10-03 16:13:46 +02:00
|
|
|
end
|
2021-10-08 08:57:11 +02:00
|
|
|
if not vim.tbl_isempty(config.linters) then
|
2021-10-09 13:39:15 +02:00
|
|
|
vim.tbl_map(function(c)
|
|
|
|
c.filetypes = { filetype }
|
|
|
|
end, config.formatters)
|
|
|
|
linters.setup(config.linters)
|
2021-10-03 16:13:46 +02:00
|
|
|
end
|
|
|
|
end
|
2021-08-13 22:32:56 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
return M
|