From 8fef927ede6733c20a53c4b0c13d2ab4cb08b604 Mon Sep 17 00:00:00 2001 From: seth Date: Wed, 24 Aug 2022 15:37:06 -0400 Subject: refactor lsp config --- .config/nvim/lua/getchoo/lsp/config/null_ls.lua | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .config/nvim/lua/getchoo/lsp/config/null_ls.lua (limited to '.config/nvim/lua/getchoo/lsp/config/null_ls.lua') 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 -- cgit v1.2.3