From 6c23ba8ea3b7b9dceedd4666846ca6c3ec10c57b Mon Sep 17 00:00:00 2001 From: juancwu <46619361+juancwu@users.noreply.github.com> Date: Tue, 17 Jan 2023 16:07:47 -0500 Subject: [PATCH] add: setup file for null-ls --- .config/nvim/after/plugin/null-ls.rc.lua | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .config/nvim/after/plugin/null-ls.rc.lua diff --git a/.config/nvim/after/plugin/null-ls.rc.lua b/.config/nvim/after/plugin/null-ls.rc.lua new file mode 100644 index 0000000..549834c --- /dev/null +++ b/.config/nvim/after/plugin/null-ls.rc.lua @@ -0,0 +1,42 @@ +local status, null_ls = pcall(require, "null-ls") +if not status then + return +end + +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + +local lsp_formatting = function(bufnr) + vim.lsp.buf.format({ + filter = function(client) + return client.name == "null-ls" + end, + bufnr = bufnr, + }) +end + +null_ls.setup({ + sources = { + null_ls.builtins.formatting.prettierd, + null_ls.builtins.formatting.autopep8, + null_ls.builtins.formatting.stylua, + }, + 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, +}) + +vim.api.nvim_create_user_command("DisableLspFormatting", function() + vim.api.nvim_clear_autocmds({ group = augroup, buffer = 0 }) +end, { nargs = 0 })