diff options
author | Luc Sinet <[email protected]> | 2021-08-13 22:32:56 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-08-14 01:02:56 +0430 |
commit | 70d139ac2771fac9b072aaebe505f9ac77480b2a (patch) | |
tree | f914460477982486f20bb00676f8a36c89618635 /lua/lsp/null-ls/init.lua | |
parent | 53869f00be7eda020088342e6e1a160ef5fc2a53 (diff) |
[Refactor/Bugfix] Improve null ls handler (#1277)
Diffstat (limited to 'lua/lsp/null-ls/init.lua')
-rw-r--r-- | lua/lsp/null-ls/init.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lua/lsp/null-ls/init.lua b/lua/lsp/null-ls/init.lua new file mode 100644 index 00000000..8691982e --- /dev/null +++ b/lua/lsp/null-ls/init.lua @@ -0,0 +1,44 @@ +local M = {} + +function M.list_supported_provider_names(filetype) + local names = {} + + local formatters = require "lsp.null-ls.formatters" + local linters = require "lsp.null-ls.linters" + + vim.list_extend(names, formatters.list_supported_names(filetype)) + vim.list_extend(names, linters.list_supported_names(filetype)) + + return names +end + +function M.list_unsupported_provider_names(filetype) + local names = {} + + local formatters = require "lsp.null-ls.formatters" + local linters = require "lsp.null-ls.linters" + + vim.list_extend(names, formatters.list_unsupported_names(filetype)) + vim.list_extend(names, linters.list_unsupported_names(filetype)) + + return names +end + +-- TODO: for linters and formatters with spaces and '-' replace with '_' +function M.setup(filetype, options) + options = options or {} + + local ok, _ = pcall(require, "null-ls") + if not ok then + require("core.log"):get_default().error "Missing null-ls dependency" + return + end + + local formatters = require "lsp.null-ls.formatters" + local linters = require "lsp.null-ls.linters" + + formatters.setup(filetype, options) + linters.setup(filetype, options) +end + +return M |