From 0c79182e0317d61809773aecc73bec195a8f0d75 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Wed, 26 Apr 2023 22:05:04 +0200 Subject: [PATCH] move to mason_null_ls --- after/plugin/autocmd.lua | 11 ++++++ after/plugin/bcr.lua | 4 --- lua/custom/plugins/formatter.lua | 38 -------------------- lua/custom/plugins/nullls.lua | 59 ++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 42 deletions(-) delete mode 100644 lua/custom/plugins/formatter.lua create mode 100644 lua/custom/plugins/nullls.lua diff --git a/after/plugin/autocmd.lua b/after/plugin/autocmd.lua index 023c94a..a9ee641 100644 --- a/after/plugin/autocmd.lua +++ b/after/plugin/autocmd.lua @@ -26,6 +26,17 @@ vim.api.nvim_create_autocmd('FileType', { group = '_general', }) +vim.api.nvim_create_autocmd('BufWritePre', { + callback = function() + vim.lsp.buf.format({ + filter = function(client) + return client.name ~= "tsserver" + end + }) + end, + group = "_general", +}) + vim.api.nvim_create_autocmd('FileType', { pattern = 'gitcommit,markdown', command = 'setlocal wrap spell', diff --git a/after/plugin/bcr.lua b/after/plugin/bcr.lua index e237d2b..33c4544 100644 --- a/after/plugin/bcr.lua +++ b/after/plugin/bcr.lua @@ -28,10 +28,6 @@ vim.api.nvim_create_autocmd('LspAttach', { if client.name ~= 'tsserver' then return end - - vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) - vim.cmd 'EslintFixAll' - end, { desc = 'Format current buffer with Eslint' }) end, group = '_bcr', }) diff --git a/lua/custom/plugins/formatter.lua b/lua/custom/plugins/formatter.lua deleted file mode 100644 index 89deb32..0000000 --- a/lua/custom/plugins/formatter.lua +++ /dev/null @@ -1,38 +0,0 @@ -return { - "mhartington/formatter.nvim", - lazy = false, - init = function() - vim.api.nvim_create_augroup('_formatter', { clear = true }); - vim.api.nvim_create_autocmd('BufWritePost', { - command = 'FormatWrite', - group = '_formatter', - }) - end, - opts = function() - local filetypes = require('formatter.filetypes') - return { - logging = false, - log_level = vim.log.levels.WARN, - filetype = { - lua = { - filetypes.lua.stylua, - }, - javascript = { - filetypes.javascript.eslint_d, - }, - javascriptreact = { - filetypes.javascript.eslint_d, - }, - json = { - filetypes.json.prettierd, - }, - rust = { - filetypes.rust.rustfmt, - }, - ['*'] = { - filetypes.any.remove_trailing_whitespace, - }, - }, - } - end -} diff --git a/lua/custom/plugins/nullls.lua b/lua/custom/plugins/nullls.lua new file mode 100644 index 0000000..f69b6a4 --- /dev/null +++ b/lua/custom/plugins/nullls.lua @@ -0,0 +1,59 @@ +return { + "jay-babu/mason-null-ls.nvim", + lazy = false, + -- event = { "BufReadPre", "BufNewFile" }, + dependencies = { + "williamboman/mason.nvim", + "jose-elias-alvarez/null-ls.nvim", + }, + config = function () + require("mason").setup() + require("mason-null-ls").setup({ + ensure_installed = { 'stylua', 'jq', 'eslint_d' }, + automatic_setup = false, + automatic_installation = false, + }) + local nls = require('null-ls') + local diagnostics = nls.builtins.diagnostics + local formatting = nls.builtins.formatting + local code_actions = nls.builtins.code_actions + local h = require("null-ls.helpers") + local u = require("null-ls.utils") + + local function eslint_d_cwd(params) + return u.root_pattern( + -- https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-file-formats + ".eslintrc", + ".eslintrc.js", + ".eslintrc.cjs", + ".eslintrc.yaml", + ".eslintrc.yml", + ".eslintrc.json" + -- do not respect package.json + -- "package.json", + )(params.bufname) + end + require("null-ls").setup({ + debug = true, + sources = { + -- Anything not supported by mason. + diagnostics.eslint_d.with({ + cwd = h.cache.by_bufnr(eslint_d_cwd), + -- not sure how to scope this only to bcr's locales + extra_filetypes = { "json" }, + }), + formatting.eslint_d.with({ + cwd = h.cache.by_bufnr(eslint_d_cwd), + -- not sure how to scope this only to bcr's locales + extra_filetypes = { "json" }, + }), + code_actions.eslint_d.with({ + cwd = h.cache.by_bufnr(eslint_d_cwd), + -- not sure how to scope this only to bcr's locales + extra_filetypes = { "json" }, + }), + code_actions.refactoring, + }, + }) + end, +}