From 2d2e425d25b02b93ef3e4ce4cb0a3edc30903fa5 Mon Sep 17 00:00:00 2001 From: Ahmed Kamal Date: Sat, 9 Nov 2024 00:05:00 +1100 Subject: [PATCH] feat(eslint): add option to disable eslint auto format (#4225) ## Description This adds an option to disable eslint's autoformatting. The reasons for not wanting an auto format by eslint are: 1. It is generally not recommended to use a linter as a formatter as highlighted by https://typescript-eslint.io/users/what-about-formatting/#:~:text=We%20recommend%20against%20using%20ESLint,dprint%2C%20or%20an%20equivalent%20instead 2. A personal preference not to have a linter change my code which I'm sure other people share. 3. As highlighted in the link above, eslint auto format can be quite slow. I would even argue that this should be the default, but I've left it as is in order not to break anyone's config or ruffle anyone's feathers. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/linting/eslint.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lua/lazyvim/plugins/extras/linting/eslint.lua b/lua/lazyvim/plugins/extras/linting/eslint.lua index df6e79dd..01f134e2 100644 --- a/lua/lazyvim/plugins/extras/linting/eslint.lua +++ b/lua/lazyvim/plugins/extras/linting/eslint.lua @@ -1,3 +1,10 @@ +if lazyvim_docs then + -- Set to false to disable auto format + vim.g.lazyvim_eslint_auto_format = true +end + +local auto_format = vim.g.lazyvim_eslint_auto_format == nil or vim.g.lazyvim_eslint_auto_format + return { { "neovim/nvim-lspconfig", @@ -9,11 +16,16 @@ return { settings = { -- helps eslint find the eslintrc when it's placed in a subfolder instead of the cwd root workingDirectories = { mode = "auto" }, + format = auto_format, }, }, }, setup = { eslint = function() + if not auto_format then + return + end + local function get_client(buf) return LazyVim.lsp.get_clients({ name = "eslint", bufnr = buf })[1] end