init.lua 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. local M = {}
  2. function M.list_supported_provider_names(filetype)
  3. local names = {}
  4. local formatters = require "lsp.null-ls.formatters"
  5. local linters = require "lsp.null-ls.linters"
  6. vim.list_extend(names, formatters.list_supported_names(filetype))
  7. vim.list_extend(names, linters.list_supported_names(filetype))
  8. return names
  9. end
  10. function M.list_unsupported_provider_names(filetype)
  11. local names = {}
  12. local formatters = require "lsp.null-ls.formatters"
  13. local linters = require "lsp.null-ls.linters"
  14. vim.list_extend(names, formatters.list_unsupported_names(filetype))
  15. vim.list_extend(names, linters.list_unsupported_names(filetype))
  16. return names
  17. end
  18. -- TODO: for linters and formatters with spaces and '-' replace with '_'
  19. function M.setup(filetype, options)
  20. options = options or {}
  21. local ok, _ = pcall(require, "null-ls")
  22. if not ok then
  23. require("core.log"):error "Missing null-ls dependency"
  24. return
  25. end
  26. local formatters = require "lsp.null-ls.formatters"
  27. local linters = require "lsp.null-ls.linters"
  28. formatters.setup(filetype, options)
  29. linters.setup(filetype, options)
  30. end
  31. return M