-
Notifications
You must be signed in to change notification settings - Fork 18.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conform: autoformat on save only for specified filetypes #694
Conversation
@dam9000 nice! |
@fredrikaverpil right, there are multiple ways to customize the |
dca3a7f
to
3e7f2bb
Compare
I like this idea but honestly have no opinion and don't quite understand what "intensive" means in this context. |
@feoh I said "intrusive" not "intensive". English is not my primary language so maybe the term used was not the best choice although I think it describes my feeling exactly:
By that I mean the situation I was put in - I updated the kickstart config to the newest version (after the rewrite), went to edit my usual source code files and was taken by surprise that they all got reformatted, that was an unexpected and unwelcome change. I don't know if any editor out there enables "reformat on save" by default, that surely has to be something that a person will want to enable explicitly, only after he makes sure that the formatting style matches the expectation. So I first needed to find out what exactly is causing the reformat and then find out a way to limit it to only lua and that resulted in this PR. |
your English is fantastic as always! My reading comprehension was at fault :-) to be honest I haven't been bitten by this yet in personally when I'm programming I really appreciate having my code auto format for me on save but perhaps I'm in the minority. In any case, thank you for your contribution and I'm going to leave this one for others to comment and or possibly act on. |
I think I would rather just link the recipes in the init.lua for people to go explore. I think for starting off, it's nice that it just always applies the LSP formatting if you have an LSP installed. For many languages this is just "the right" choice IMO. What do you think @dam9000 ? |
Maybe it can be nice for when you are starting a project from scratch. But when editing existing code the style will likely not match and if the files are in git then you get a bunch of diffs all over the place. Also some languages such python have a standardized coding style while for C/C++ there are uncounted number of styles and each person (or team) will defend the style that they prefer. So for C and C++ I think this should definitely not be enabled by default. In my view this should be a opt-in as no other editor that I'm aware of has this enabled by default, I checked: sublime, jetbrains, vs, vs code. Also I expect most people trying out Neovim/kickstart will already have some existing projects so let's not take them by surprise with such default behaviour. |
What if we do the reverse, and we make it easy to disable a language (we don't have to populate the list with anything, we can just show them that they would need to add it)? I think this might be a nice middle ground? |
3e7f2bb
to
63d58df
Compare
foce pushed: reversed the logic and add c, cpp to the default disabled filetypes |
local disable_filetypes = { c = true, cpp = true }
return {
timeout_ms = 500,
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
} |
Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
63d58df
to
ae770ca
Compare
force pushed: changed as suggested, and tested that it works as expected. |
For what it's worth I love this idea :) |
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
* upstream/master: (72 commits) README: wrap long lines (nvim-lua#784) Update README.md (nvim-lua#781) Add nvim-nio as dependency for nvim-dap-ui (nvim-lua#774) Some suggestions and capitalised a few words (nvim-lua#771) feat: add linter plugin (nvim-lua#699) assign table to filetype in lua_ls config comment (nvim-lua#770) README: additional install recipes for various OS (nvim-lua#767) conform: disable autoformat on save for specified filetypes (nvim-lua#694) Update README.md (nvim-lua#763) fix: disable ts indenting for Ruby doc: add note about advanced luasnip features Move friendly snippets to dependencies of LuaSnip (nvim-lua#759) Add <C-b>/<C-f> cmp mapping to scroll cmp docs (nvim-lua#750) doc: add info about timeoutlen (nvim-lua#691) Revert "Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)" (nvim-lua#755) Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696) Added folke/neodev.nvim for proper nvim api completion and annotation (nvim-lua#754) chore: rename <C-T> to <C-t> for consistency (nvim-lua#719) feat: allow treesitter defaults to be overwritten from custom directory (nvim-lua#732) README.md: update neo-tree example - remove legacy setting (nvim-lua#744) ...
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
commit 5e258d2 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Wed Apr 17 21:25:54 2024 +0200 Move plugin examples from README to optional plugin files (nvim-lua#831) * Move autopairs example from README to an optional plugin * Move neo-tree example from README to an optional plugin commit 5540527 Author: Vladislav Grechannik <52157081+VlaDexa@users.noreply.github.com> Date: Wed Apr 17 20:04:55 2024 +0200 Enable inlay hints for the supporting servers (nvim-lua#843) commit 6d6b3f3 Author: Chris Patti <feoh@feoh.org> Date: Wed Apr 17 14:02:24 2024 -0400 Fix: nvim-lua#847 - add prefer_git to treesitter config (nvim-lua#856) commit fabeb86 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Wed Apr 17 15:59:14 2024 +0200 Comment about nerd font selection. Fixes nvim-lua#853 (nvim-lua#854) commit e2bfa0c Author: rdvm <git@rvm.dev> Date: Tue Apr 16 10:29:27 2024 -0500 Arch, btw (nvim-lua#852) * Arch, btw * Add unzip * Add unzip for Fedora and --needed arg for Arch commit 2377390 Author: Viet <51826956+hoangvietdo@users.noreply.github.com> Date: Tue Apr 9 05:13:22 2024 +0900 Update README (nvim-lua#832) commit c4363e4 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Thu Apr 4 16:31:37 2024 +0200 Add a pull request template (nvim-lua#825) commit 19afab1 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Mon Apr 1 16:36:32 2024 +0200 README: move backup and paths from external deps to install section (nvim-lua#819) commit d605b84 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Mon Apr 1 02:00:11 2024 +0200 Don't lazy load conform plugin (nvim-lua#818) commit 1175f6d Author: Damjan 9000 <damjan.9000@gmail.com> Date: Sun Mar 31 19:36:43 2024 +0200 Add a keymap space-f to format buffer using conform (nvim-lua#817) This works also for visual range selection Copied from conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md commit 93fde05 Author: Chris Patti <feoh@feoh.org> Date: Wed Mar 27 11:22:28 2024 -0400 Add instructions to quit :lazy. Fixes nvim-lua#761 commit 2877a60 Author: Liu Qisheng <81770798+Saplyn@users.noreply.github.com> Date: Wed Mar 27 22:16:48 2024 +0800 fix nvim-lua#799 (nvim-lua#800) Add `'luadoc'`, to the `ensure_installed` of `nvim-treesitter/nvim-treesitter` commit dbba54c Author: Damjan 9000 <damjan.9000@gmail.com> Date: Thu Mar 21 20:47:55 2024 +0100 README: wrap long lines (nvim-lua#784) commit 4c02e29 Author: E <2061889+bozoputer@users.noreply.github.com> Date: Wed Mar 20 14:27:18 2024 -0400 Update README.md (nvim-lua#781) The recommended step of forking the repo coming sequentially after the step instructing users to clone the current repo doesn't make sense. This commit orders the install instructions in a manner that's more logical. commit 773e482 Author: José Miguel Sarasola <alosarjos@gmail.com> Date: Mon Mar 18 22:38:14 2024 +0100 Add nvim-nio as dependency for nvim-dap-ui (nvim-lua#774) It's a dependency now commit 65a5ac4 Author: Togglebit <74262215+togglebyte@users.noreply.github.com> Date: Mon Mar 18 18:35:53 2024 +0100 Some suggestions and capitalised a few words (nvim-lua#771) commit 8e24ca3 Author: Fredrik Averpil <fredrik.averpil@gmail.com> Date: Mon Mar 18 15:00:48 2024 +0100 feat: add linter plugin (nvim-lua#699) commit b81115d Author: Shane Crowley <66971213+edibotopic@users.noreply.github.com> Date: Mon Mar 18 13:57:48 2024 +0000 assign table to filetype in lua_ls config comment (nvim-lua#770) commit a222805 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Sun Mar 17 21:22:58 2024 +0100 README: additional install recipes for various OS (nvim-lua#767) commit ea4335f Author: Damjan 9000 <damjan.9000@gmail.com> Date: Fri Mar 15 21:53:33 2024 +0100 conform: disable autoformat on save for specified filetypes (nvim-lua#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md commit da1271d Author: stgpepper <74211382+stgpepper@users.noreply.github.com> Date: Fri Mar 15 22:51:41 2024 +0200 Update README.md (nvim-lua#763) Added file text to code block for consistency since the other plugin had file also inside code block. commit 7892c0c Author: TJ DeVries <devries.timothyj@gmail.com> Date: Fri Mar 15 11:35:07 2024 -0400 fix: disable ts indenting for Ruby Tree-sitter indenting for ruby is pretty terrible. But the fix requires a few steps, so showed those and documented how you could do that for other languages as well (with the tricky part being the additional_vim_regex_highlighting trick) commit 5ac4b58 Author: TJ DeVries <devries.timothyj@gmail.com> Date: Fri Mar 15 11:18:43 2024 -0400 doc: add note about advanced luasnip features commit 2f494e5 Author: Vladislav Grechannik <52157081+VlaDexa@users.noreply.github.com> Date: Fri Mar 15 15:35:42 2024 +0100 Move friendly snippets to dependencies of LuaSnip (nvim-lua#759) Co-authored-by: TJ DeVries <devries.timothyj@gmail.com> commit 452e3a7 Author: Rafael Zasas <42390827+RafaelZasas@users.noreply.github.com> Date: Fri Mar 15 16:12:41 2024 +0200 Add <C-b>/<C-f> cmp mapping to scroll cmp docs (nvim-lua#750) commit 7715b7c Author: TLW <58749948+TinyLittleWheatley@users.noreply.github.com> Date: Fri Mar 15 17:24:49 2024 +0330 doc: add info about timeoutlen (nvim-lua#691) Add separate comment for `timeoutlen` option `timeoutlen` option was under unrelated comment with `updatetime` option. commit b529bc3 Author: Chris Patti <feoh@feoh.org> Date: Tue Mar 12 18:09:47 2024 -0400 Revert "Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)" (nvim-lua#755) This reverts commit d8a1dbc. commit d8a1dbc Author: James Karefylakis <jamylak@users.noreply.github.com> Date: Wed Mar 13 08:12:35 2024 +1100 Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696) * Use cmp-nvim-lua as nvim-cmp source for neovim Lua API * Move the dependency to a more suitable place commit 000a5c4 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Tue Mar 12 22:06:12 2024 +0100 Added folke/neodev.nvim for proper nvim api completion and annotation (nvim-lua#754) Fixes nvim-lua#692 `neodev` configures Lua LSP for your Neovim config, runtime and plugins used for completion, annotations and signatures of Neovim apis With neodev, there's no more need to manually set lua_ls workspace settings which don't seem to work properly anyway as currently nvim api completion does not work. commit cb1f16b Author: Chiller Dragon <chillerdragon@gmail.com> Date: Tue Mar 12 07:20:39 2024 +0800 chore: rename <C-T> to <C-t> for consistency (nvim-lua#719) commit c0d6f98 Author: Ryan Baumgardner <26423650+rbaumgardner93@users.noreply.github.com> Date: Mon Mar 11 19:18:45 2024 -0400 feat: allow treesitter defaults to be overwritten from custom directory (nvim-lua#732) commit 8de494f Author: Damjan 9000 <damjan.9000@gmail.com> Date: Mon Mar 11 22:52:18 2024 +0100 README.md: update neo-tree example - remove legacy setting (nvim-lua#744) commit 3cfccc0 Author: name.tar.xz <54463026+name-tar-xz@users.noreply.github.com> Date: Sun Mar 10 01:55:08 2024 +0530 use init for colorscheme (nvim-lua#715) commit 8fae679 Author: Nora Ayesha <160715982+noraayesha@users.noreply.github.com> Date: Sat Mar 9 02:26:32 2024 +0600 Fix typos and whatnot (nvim-lua#731) commit 66e2a5a Author: Damjan 9000 <damjan.9000@gmail.com> Date: Wed Mar 6 17:49:44 2024 +0100 Make the Nerd Font an optional requirement (nvim-lua#716) commit f764b7b Author: Ryan Winchester <ryanwinchester@users.noreply.github.com> Date: Tue Mar 5 21:19:06 2024 -0400 Add more detail to colorscheme comment (nvim-lua#713) commit b83b2b0 Author: Chiller Dragon <chillerdragon@gmail.com> Date: Mon Mar 4 21:47:45 2024 +0800 chore: link new installation youtube video (nvim-lua#678) commit a02abdb Author: Chiller Dragon <chillerdragon@gmail.com> Date: Mon Mar 4 21:47:11 2024 +0800 chore: remove trailing spaces from readme (nvim-lua#679) commit c3127f1 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Mon Mar 4 14:16:50 2024 +0100 Change statusline location to LINE:COLUMN (nvim-lua#689) commit c9122e8 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Mon Mar 4 01:32:06 2024 +0100 fix: checkhealth reported nvim version (nvim-lua#685) commit e6710a4 Author: TJ DeVries <devries.timothyj@gmail.com> Date: Sun Mar 3 03:13:16 2024 -0500 fix: add note in readme for custom plugins commit 23fc4e5 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Sun Mar 3 03:12:55 2024 +0100 README.md: updated windows install instructions (nvim-lua#674) commit b99af2d Author: Taulant Aliraj <tau141@gmail.com> Date: Sun Mar 3 02:07:58 2024 +0000 feat: use VimEnter event instead of VeryLazy (nvim-lua#673) commit 94a9364 Author: Nhan Luu <62146587+nhld@users.noreply.github.com> Date: Sat Mar 2 04:07:34 2024 +0700 chore: fix typos (nvim-lua#666) commit 38828dc Author: Anton Kastritskii <halloy52@gmail.com> Date: Thu Feb 29 18:14:36 2024 +0000 feat: enable lua lsp snipppets (nvim-lua#660) commit b58666d Author: TJ DeVries <devries.timothyj@gmail.com> Date: Thu Feb 29 12:08:01 2024 -0500 fixup: updated some style stuff commit 465d6f2 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Wed Feb 28 19:23:13 2024 +0100 Change mini.statusline location format to LINE:COLUMN (nvim-lua#659) Default mini.statusline location format is: 'cursor line | total lines │ cursor column | total columns' commit 18b919c Author: brxxlstxrs <92815065+brxxlstxrs@users.noreply.github.com> Date: Tue Feb 27 21:08:37 2024 +0300 add plugin specs docstring, remove lazy.nvim configuration (empty) table (nvim-lua#652) commit af4fd23 Author: TJ DeVries <devries.timothyj@gmail.com> Date: Mon Feb 26 10:46:31 2024 -0500 fixup: change comment to reflect auto_install commit 1c89b02 Author: TJ DeVries <devries.timothyj@gmail.com> Date: Mon Feb 26 10:45:32 2024 -0500 fixup: add autocommand link for help and description commit 8b5d48a Author: TJ DeVries <devries.timothyj@gmail.com> Date: Mon Feb 26 10:03:53 2024 -0500 rewrite: slimmer, trimmer and more lazy kickstart.nvim (nvim-lua#635) We've removed over 1/3 of the code that was in kickstart previously, and more than doubled the amount of comments explaining every line of code (to the best of my ability). kickstart now properly uses many of the lazy.nvim config and loading idioms, which should be really helpful for people moving both to modular configs, as well as extending the kickstart config in one file. Additional features: - Beautiful ascii art - Added some documentation that explains what is an LSP, what is telescope, etc - There is now a `:checkhealth` for kickstart, which checks some basic information and adds useful information for maintainers (for people cloning the repo). - Improved LSP configuration and tool installation, for easier first time startup - Changed init.lua ordering, so that it moves from simple options to complicated config ``` ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Lua 1 108 404 298 ------------------------------------------------------------------------------- ``` commit 7af594f Author: rgarber11 <rg.1029384756@gmail.com> Date: Mon Feb 5 13:49:19 2024 -0500 Add Build Step to LuaSnip (nvim-lua#611) commit 5d2d81b Author: Chris Patti <feoh@feoh.org> Date: Sat Feb 3 19:15:25 2024 -0500 Fixes nvim-lua#607. Add hints for new neovim users to learn how to learn. (nvim-lua#615) commit bc4ad12 Author: Micah Effiong <52747707+micaiah-effiong@users.noreply.github.com> Date: Fri Feb 2 21:24:46 2024 +0100 feat: added contexts for code action - source fix-all errors (nvim-lua#599) * feat: added contexts for code action - source fix-all errors * fix: resolve stylua checks * fix: resolve stylua checks commit c3ae716 Author: Damjan 9000 <damjan.9000@gmail.com> Date: Thu Feb 1 17:01:46 2024 +0100 issue: nvim-lua#594 stylua workflow only on official kickstart repo (nvim-lua#609) Only run the github stylua workflow check on the official kickstart repo (nvim-lua/kickstart.nvim) so that it's not enforced on any other forks. As suggested by: @zwergius commit b115814 Author: Nazar <63452145+Tokarak@users.noreply.github.com> Date: Mon Jan 29 18:52:50 2024 +0000 Add Onedark Style (nvim-lua#590) * Add style options to Onedark setup (init.lua) * stylua init.lua * Load onedark through `require` * Improve commenting commit deaafcf Author: Victor Bertin <83238030+v-bertin@users.noreply.github.com> Date: Mon Jan 29 13:48:14 2024 +0100 Set status line theme to the global colorscheme (nvim-lua#600)
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
…#694) Provide a method to disable autoformat on save lsp fallback for specified filetypes. By default disable for C/C++ as an example, because it does not have a well standardized coding style. Based on conform recipe: https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
Fixes: #686
Enable the autoformat on save only for specified filetypes.
By default this is only for lua, similar as LSP is by default only enabled for lua.
Based on conform recipe:
https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md
In my view having the autoformat on save enabled by default for all filetypes is a bit too intrusive, hence this PR.