From 459b86865e9e81235c9db3be553d107adac5f72f Mon Sep 17 00:00:00 2001 From: orip Date: Sun, 12 Apr 2026 19:38:37 +0300 Subject: [PATCH 1/4] Use stylua as an lsp formatter instead of an external formatter --- init.lua | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index b56ce298..dea2fccf 100644 --- a/init.lua +++ b/init.lua @@ -616,6 +616,8 @@ require('lazy').setup({ -- Special Lua Config, as recommended by neovim help docs lua_ls = { on_init = function(client) + client.server_capabilities.documentFormattingProvider = false -- Disable formatting (formatting is done by stylua) + if client.workspace_folders then local path = client.workspace_folders[1].name if path ~= vim.fn.stdpath 'config' and (vim.uv.fs_stat(path .. '/.luarc.json') or vim.uv.fs_stat(path .. '/.luarc.jsonc')) then return end @@ -637,8 +639,11 @@ require('lazy').setup({ }, }) end, + ---@type lspconfig.settings.lua_ls settings = { - Lua = {}, + Lua = { + format = { enable = false }, -- Disable formatting (formatting is done by stylua) + }, }, }, } @@ -671,7 +676,7 @@ require('lazy').setup({ keys = { { 'f', - function() require('conform').format { async = true, lsp_format = 'fallback' } end, + function() require('conform').format { async = true } end, mode = '', desc = '[F]ormat buffer', }, @@ -688,14 +693,15 @@ require('lazy').setup({ if disable_filetypes[vim.bo[bufnr].filetype] then return nil else - return { - timeout_ms = 500, - lsp_format = 'fallback', - } + return { timeout_ms = 500 } end end, + default_format_opts = { + lsp_format = 'fallback', -- Use external formatters if configured below, otherwise use LSP formatting. Set to `false` to disable LSP formatting entirely. + }, + -- You can also specify external formatters in here. formatters_by_ft = { - lua = { 'stylua' }, + -- rust = { 'rustfmt' }, -- Conform can also run multiple formatters sequentially -- python = { "isort", "black" }, -- From ce353a9b0e3c47d27784509217200818f522329e Mon Sep 17 00:00:00 2001 From: orip Date: Sun, 12 Apr 2026 22:33:59 +0300 Subject: [PATCH 2/4] Change format_on_save to a whitelist instead of a blacklist --- init.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index dea2fccf..600258db 100644 --- a/init.lua +++ b/init.lua @@ -686,14 +686,15 @@ require('lazy').setup({ opts = { notify_on_error = false, format_on_save = function(bufnr) - -- Disable "format_on_save lsp_fallback" for languages that don't - -- have a well standardized coding style. You can add additional - -- languages here or re-enable it for the disabled ones. - local disable_filetypes = { c = true, cpp = true } - if disable_filetypes[vim.bo[bufnr].filetype] then - return nil - else + -- You can specify filetypes to autoformat on save here: + local enabled_filetypes = { + -- lua = true, + -- python = true, + } + if enabled_filetypes[vim.bo[bufnr].filetype] then return { timeout_ms = 500 } + else + return nil end end, default_format_opts = { From 9b4fbc5021551188965d7cba54874fd1496d6ed2 Mon Sep 17 00:00:00 2001 From: orip Date: Sat, 18 Apr 2026 13:19:06 +0300 Subject: [PATCH 3/4] Fix conflicts between built-in incremental selection and mini.ai keymaps closes #1996 closes #1992 --- init.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 600258db..13727202 100644 --- a/init.lua +++ b/init.lua @@ -845,9 +845,16 @@ require('lazy').setup({ -- -- Examples: -- - va) - [V]isually select [A]round [)]paren - -- - yinq - [Y]ank [I]nside [N]ext [Q]uote + -- - yinq - [Y]ank [I]nside [I]next [Q]uote -- - ci' - [C]hange [I]nside [']quote - require('mini.ai').setup { n_lines = 500 } + require('mini.ai').setup { + -- NOTE: Avoid conflicts with the built-in incremental selection mappings on Neovim>=0.12 (see `:help treesitter-incremental-selection`) + mappings = { + around_next = 'aa', + inside_next = 'ii', + }, + n_lines = 500, + } -- Add/delete/replace surroundings (brackets, quotes, etc.) -- From 4b065ad2f71935b8b053d26a65735f40bdc85969 Mon Sep 17 00:00:00 2001 From: orip Date: Wed, 22 Apr 2026 17:59:57 +0300 Subject: [PATCH 4/4] Fix mini.ai example --- init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 13727202..8d1f19a1 100644 --- a/init.lua +++ b/init.lua @@ -845,7 +845,7 @@ require('lazy').setup({ -- -- Examples: -- - va) - [V]isually select [A]round [)]paren - -- - yinq - [Y]ank [I]nside [I]next [Q]uote + -- - yiiq - [Y]ank [I]nside [I]+1 [Q]uote -- - ci' - [C]hange [I]nside [']quote require('mini.ai').setup { -- NOTE: Avoid conflicts with the built-in incremental selection mappings on Neovim>=0.12 (see `:help treesitter-incremental-selection`)