summaryrefslogtreecommitdiff
path: root/lua/lsp/null-ls/init.lua
diff options
context:
space:
mode:
authorLuc Sinet <[email protected]>2021-08-13 22:32:56 +0200
committerGitHub <[email protected]>2021-08-14 01:02:56 +0430
commit70d139ac2771fac9b072aaebe505f9ac77480b2a (patch)
treef914460477982486f20bb00676f8a36c89618635 /lua/lsp/null-ls/init.lua
parent53869f00be7eda020088342e6e1a160ef5fc2a53 (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.lua44
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