From 9d0051e6b4170851ebcc09e7ff44097818c8e1dc Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 17 Sep 2023 04:54:00 -0400 Subject: start using willruggiano/neovim.nix --- plugins/null-ls.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 plugins/null-ls.lua (limited to 'plugins/null-ls.lua') diff --git a/plugins/null-ls.lua b/plugins/null-ls.lua new file mode 100644 index 0000000..a2a71f1 --- /dev/null +++ b/plugins/null-ls.lua @@ -0,0 +1,50 @@ +return function() + local null_ls = require("null-ls") + local diagnostics = null_ls.builtins.diagnostics + local formatting = null_ls.builtins.formatting + + 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", {}) + + null_ls.setup({ + 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() + lsp_formatting(bufnr) + end, + }) + end + end, + sources = { + diagnostics.actionlint, + diagnostics.alex, + diagnostics.codespell, + diagnostics.deadnix, + diagnostics.pylint, + diagnostics.shellcheck, + diagnostics.statix, + formatting.alejandra, + formatting.beautysh, + formatting.codespell, + formatting.just, + formatting.nimpretty, + formatting.prettier, + formatting.rustfmt, + formatting.shellharden, + formatting.stylua, + formatting.yapf, + }, + }) +end -- cgit v1.2.3