formatters.lua 861 B

123456789101112131415161718192021222324252627282930313233
  1. local M = {}
  2. local Log = require "lvim.core.log"
  3. local null_ls = require "null-ls"
  4. local services = require "lvim.lsp.null-ls.services"
  5. local method = null_ls.methods.FORMATTING
  6. function M.list_registered(filetype)
  7. local registered_providers = services.list_registered_providers_names(filetype)
  8. return registered_providers[method] or {}
  9. end
  10. function M.list_supported(filetype)
  11. local s = require "null-ls.sources"
  12. local supported_formatters = s.get_supported(filetype, "formatting")
  13. table.sort(supported_formatters)
  14. return supported_formatters
  15. end
  16. function M.setup(formatter_configs)
  17. if vim.tbl_isempty(formatter_configs) then
  18. return
  19. end
  20. local registered = services.register_sources(formatter_configs, method)
  21. if #registered > 0 then
  22. Log:debug("Registered the following formatters: " .. unpack(registered))
  23. end
  24. end
  25. return M