diff options
author | kylo252 <[email protected]> | 2021-10-09 13:39:15 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-09 13:39:15 +0200 |
commit | efd82c87568a791b2f7fb9c94b763f2c1950dc8e (patch) | |
tree | b8f30b6b577eaf48dd5969de7c627820b2f2b807 /lua/lsp/null-ls | |
parent | 195b07a464d37328892a502cf7ce3690b6a5b2e4 (diff) |
feat: configure multiple filetypes per provider (#1725)
Diffstat (limited to 'lua/lsp/null-ls')
-rw-r--r-- | lua/lsp/null-ls/formatters.lua | 8 | ||||
-rw-r--r-- | lua/lsp/null-ls/init.lua | 10 | ||||
-rw-r--r-- | lua/lsp/null-ls/linters.lua | 10 |
3 files changed, 17 insertions, 11 deletions
diff --git a/lua/lsp/null-ls/formatters.lua b/lua/lsp/null-ls/formatters.lua index 636b0bde..d6455d5f 100644 --- a/lua/lsp/null-ls/formatters.lua +++ b/lua/lsp/null-ls/formatters.lua @@ -23,7 +23,7 @@ function M.list_available(filetype) return formatters end -function M.list_configured(formatter_configs, filetype) +function M.list_configured(formatter_configs) local formatters, errors = {}, {} for _, fmt_config in ipairs(formatter_configs) do @@ -42,7 +42,7 @@ function M.list_configured(formatter_configs, filetype) formatters[fmt_config.exe] = formatter.with { command = formatter_cmd, extra_args = fmt_config.args, - filetypes = { filetype }, + filetypes = fmt_config.filetypes, } end end @@ -51,12 +51,12 @@ function M.list_configured(formatter_configs, filetype) return { supported = formatters, unsupported = errors } end -function M.setup(formatter_configs, filetype) +function M.setup(formatter_configs) if vim.tbl_isempty(formatter_configs) then return end - local formatters_by_ft = M.list_configured(formatter_configs, filetype) + local formatters_by_ft = M.list_configured(formatter_configs) null_ls.register { sources = formatters_by_ft.supported } end diff --git a/lua/lsp/null-ls/init.lua b/lua/lsp/null-ls/init.lua index 3c8909af..0d030c22 100644 --- a/lua/lsp/null-ls/init.lua +++ b/lua/lsp/null-ls/init.lua @@ -15,10 +15,16 @@ function M:setup() require("lspconfig")["null-ls"].setup(lvim.lsp.null_ls.setup) for filetype, config in pairs(lvim.lang) do if not vim.tbl_isempty(config.formatters) then - formatters.setup(config.formatters, filetype) + vim.tbl_map(function(c) + c.filetypes = { filetype } + end, config.formatters) + formatters.setup(config.formatters) end if not vim.tbl_isempty(config.linters) then - linters.setup(config.linters, filetype) + vim.tbl_map(function(c) + c.filetypes = { filetype } + end, config.formatters) + linters.setup(config.linters) end end end diff --git a/lua/lsp/null-ls/linters.lua b/lua/lsp/null-ls/linters.lua index 34a78a65..e60411e6 100644 --- a/lua/lsp/null-ls/linters.lua +++ b/lua/lsp/null-ls/linters.lua @@ -23,7 +23,7 @@ function M.list_available(filetype) return linters end -function M.list_configured(linter_configs, filetype) +function M.list_configured(linter_configs) local linters, errors = {}, {} for _, lnt_config in pairs(linter_configs) do @@ -42,7 +42,7 @@ function M.list_configured(linter_configs, filetype) linters[lnt_config.exe] = linter.with { command = linter_cmd, extra_args = lnt_config.args, - filetypes = { filetype }, + filetypes = lnt_config.filetypes, } end end @@ -51,13 +51,13 @@ function M.list_configured(linter_configs, filetype) return { supported = linters, unsupported = errors } end -function M.setup(linter_configs, filetype) +function M.setup(linter_configs) if vim.tbl_isempty(linter_configs) then return end - local linters_by_ft = M.list_configured(linter_configs, filetype) - null_ls.register { sources = linters_by_ft.supported } + local linters = M.list_configured(linter_configs) + null_ls.register { sources = linters.supported } end return M |