init.lua 1017 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. local M = {}
  2. local Log = require "lvim.core.log"
  3. local formatters = require "lvim.lsp.null-ls.formatters"
  4. local linters = require "lvim.lsp.null-ls.linters"
  5. function M:setup()
  6. local status_ok, null_ls = pcall(require, "null-ls")
  7. if not status_ok then
  8. Log:error "Missing null-ls dependency"
  9. return
  10. end
  11. null_ls.config()
  12. local default_opts = require("lvim.lsp").get_common_opts()
  13. if vim.tbl_isempty(lvim.lsp.null_ls.setup or {}) then
  14. lvim.lsp.null_ls.setup = default_opts
  15. end
  16. require("lspconfig")["null-ls"].setup(lvim.lsp.null_ls.setup)
  17. for filetype, config in pairs(lvim.lang) do
  18. if not vim.tbl_isempty(config.formatters) then
  19. vim.tbl_map(function(c)
  20. c.filetypes = { filetype }
  21. end, config.formatters)
  22. formatters.setup(config.formatters)
  23. end
  24. if not vim.tbl_isempty(config.linters) then
  25. vim.tbl_map(function(c)
  26. c.filetypes = { filetype }
  27. end, config.formatters)
  28. linters.setup(config.linters)
  29. end
  30. end
  31. end
  32. return M