summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/getchoo/lsp/config/null_ls.lua
diff options
context:
space:
mode:
authorseth <[email protected]>2022-08-24 15:37:06 -0400
committerseth <[email protected]>2022-08-24 15:37:06 -0400
commit8fef927ede6733c20a53c4b0c13d2ab4cb08b604 (patch)
treec5eae97847773355ffd3f2afcc84c7c9c2a5b387 /.config/nvim/lua/getchoo/lsp/config/null_ls.lua
parentee45c4211d79dfb3b62531cc4f974ac3932e5131 (diff)
refactor lsp config
Diffstat (limited to '.config/nvim/lua/getchoo/lsp/config/null_ls.lua')
-rw-r--r--.config/nvim/lua/getchoo/lsp/config/null_ls.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/.config/nvim/lua/getchoo/lsp/config/null_ls.lua b/.config/nvim/lua/getchoo/lsp/config/null_ls.lua
new file mode 100644
index 0000000..dd091a9
--- /dev/null
+++ b/.config/nvim/lua/getchoo/lsp/config/null_ls.lua
@@ -0,0 +1,38 @@
+local sources = require("getchoo.lsp.config.sources")
+
+local M = {}
+
+-- only use null-ls for formatting
+
+--- for neovim >= 8
+--- local lsp_formatting = function(bufnr)
+--- vim.lsp.buf.format({
+--- filter = function(client)
+--- return client.name == "null-ls"
+--- end,
+--- bufnr = bufnr,
+--- })
+--- end
+
+local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
+local formatting_on_attach = function(client, bufnr)
+ if client.supports_method("textDocument/formatting") then
+ vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
+ vim.api.nvim_create_autocmd("BufWritePre", {
+ group = augroup,
+ buffer = bufnr,
+ callback = function()
+ local params = require("vim.lsp.util").make_formatting_params({})
+ client.request("textDocument/formatting", params, nil, bufnr)
+ -- lsp_formatting(bufnr) -- neovim >= 8
+ end,
+ })
+ end
+end
+
+M.config = {
+ on_attach = formatting_on_attach,
+ sources = sources.null_ls,
+}
+
+return M