diff --git a/.config/nvim/lua/plugins/none-ls.lua b/.config/nvim/lua/plugins/none-ls.lua new file mode 100644 index 0000000..2ed07ca --- /dev/null +++ b/.config/nvim/lua/plugins/none-ls.lua @@ -0,0 +1,30 @@ +local augroup = vim.api.nvim_create_augroup("LspFormatting",{}) +local null_ls = require("null-ls") + +null_ls.setup({ + sources = { + null_ls.builtins.formatting.rustfmt, + null_ls.builtins.formatting.blue, + null_ls.builtins.formatting.gofmt, + null_ls.builtins.formatting.clang_format, + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.formatting.prettierd.with({ + filetypes = { "html", "json", "css", "js", "yaml", "markdown" }, + }), + }, + 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() + vim.lsp.buf.format({ bufnr = bufnr }) + end + }) + end + end, +})