From b9d38f692015fecaa72d55282b74a3d601e4c9fa Mon Sep 17 00:00:00 2001 From: "Md. Iftakhar Awal Chowdhury" <42291930+AtifChy@users.noreply.github.com> Date: Fri, 3 Oct 2025 00:52:41 +0600 Subject: [PATCH 01/60] fix(keymaps): update deprecated diagnostic keymap to latest api change (#6574) ## Description refectors deprecated `diagnostic_goto` calls to newer `vim.diagnostic.jump` API. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/config/keymaps.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index 938a2333..5709aa6f 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -120,10 +120,12 @@ end, { desc = "Format" }) -- diagnostic local diagnostic_goto = function(next, severity) - local go = next and vim.diagnostic.goto_next or vim.diagnostic.goto_prev - severity = severity and vim.diagnostic.severity[severity] or nil return function() - go({ severity = severity }) + vim.diagnostic.jump({ + count = (next and 1 or -1) * vim.v.count1, + severity = severity and vim.diagnostic.severity[severity] or nil, + float = true, + }) end end map("n", "cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" }) From c220e04cd65b56331622dcf0ddcc6fe9d104dce9 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 8 Oct 2025 21:26:13 +0200 Subject: [PATCH 02/60] ci: update test scripts --- scripts/test | 4 ++-- tests/minit.lua | 8 +++++++- vim.toml | 21 --------------------- vim.yml | 19 +++++++++++++++++++ 4 files changed, 28 insertions(+), 24 deletions(-) delete mode 100644 vim.toml create mode 100644 vim.yml diff --git a/scripts/test b/scripts/test index ffbb5405..354a1a1c 100755 --- a/scripts/test +++ b/scripts/test @@ -1,3 +1,3 @@ -#!/bin/env bash +#!/usr/bin/env bash -nvim -l tests/minit.lua --minitest +nvim -l tests/minit.lua --minitest "$@" diff --git a/tests/minit.lua b/tests/minit.lua index 41907e75..c1d7c473 100644 --- a/tests/minit.lua +++ b/tests/minit.lua @@ -1,7 +1,13 @@ #!/usr/bin/env -S nvim -l vim.env.LAZY_STDPATH = ".tests" -load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"))() +vim.env.LAZY_PATH = vim.fs.normalize("~/projects/lazy.nvim") + +if vim.fn.isdirectory(vim.env.LAZY_PATH) then + loadfile(vim.env.LAZY_PATH .. "/bootstrap.lua")() +else + load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"), "bootstrap.lua")() +end -- Setup lazy.nvim require("lazy.minit").setup({ diff --git a/vim.toml b/vim.toml deleted file mode 100644 index df7e67e6..00000000 --- a/vim.toml +++ /dev/null @@ -1,21 +0,0 @@ -[selene] -base = "lua51" -name = "vim" - -[vim] -any = true - -[jit] -any = true - -[assert] -any = true - -[describe] -any = true - -[it] -any = true - -[before_each.args] -any = true diff --git a/vim.yml b/vim.yml new file mode 100644 index 00000000..eb58a874 --- /dev/null +++ b/vim.yml @@ -0,0 +1,19 @@ +base: lua51 +lua_versions: + - luajit + +globals: + Snacks: + any: true + vim: + any: true + jit: + any: true + assert: + any: true + describe: + any: true + it: + any: true + before_each: + any: true From 8546f6232ecb1305a4ef9df281bad3512ba09da5 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 8 Oct 2025 21:32:23 +0200 Subject: [PATCH 03/60] ci: update minit.lua --- tests/minit.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/minit.lua b/tests/minit.lua index c1d7c473..37d7e1c8 100644 --- a/tests/minit.lua +++ b/tests/minit.lua @@ -3,7 +3,7 @@ vim.env.LAZY_STDPATH = ".tests" vim.env.LAZY_PATH = vim.fs.normalize("~/projects/lazy.nvim") -if vim.fn.isdirectory(vim.env.LAZY_PATH) then +if vim.fn.isdirectory(vim.env.LAZY_PATH) == 1 then loadfile(vim.env.LAZY_PATH .. "/bootstrap.lua")() else load(vim.fn.system("curl -s https://raw.githubusercontent.com/folke/lazy.nvim/main/bootstrap.lua"), "bootstrap.lua")() From 74f3c7c36d5e46cc548e5a006b417653baf0a2ca Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Wed, 8 Oct 2025 19:33:56 +0000 Subject: [PATCH 04/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 091b0880..e55c8280 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 02 +*LazyVim.txt* For Neovim Last change: 2025 October 08 ============================================================================== Table of Contents *LazyVim-table-of-contents* From a3e52dd346ea35db5521b66e46dca95d32f00cb4 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 9 Oct 2025 00:12:43 +0200 Subject: [PATCH 05/60] feat(sidekick): changed default keymaps for sidekick. Please check updated docs at sidekick.nvim --- lua/lazyvim/plugins/extras/ai/sidekick.lua | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/lua/lazyvim/plugins/extras/ai/sidekick.lua b/lua/lazyvim/plugins/extras/ai/sidekick.lua index 6e80ba47..52597b0e 100644 --- a/lua/lazyvim/plugins/extras/ai/sidekick.lua +++ b/lua/lazyvim/plugins/extras/ai/sidekick.lua @@ -56,6 +56,12 @@ return { -- nes is also useful in normal mode { "", LazyVim.cmp.map({ "ai_nes" }, ""), mode = { "n" }, expr = true }, { "a", "", desc = "+ai", mode = { "n", "v" } }, + { + "", + function() require("sidekick.cli").toggle() end, + desc = "Sidekick Toggle", + mode = { "n", "t", "i", "x" }, + }, { "aa", function() require("sidekick.cli").toggle() end, @@ -74,6 +80,11 @@ return { mode = { "x", "n" }, desc = "Send This", }, + { + "af", + function() require("sidekick.cli").send({ msg = "{file}" }) end, + desc = "Send File", + }, { "av", function() require("sidekick.cli").send({ msg = "{selection}" }) end, @@ -86,18 +97,6 @@ return { mode = { "n", "x" }, desc = "Sidekick Select Prompt", }, - { - "", - function() require("sidekick.cli").focus() end, - mode = { "n", "x", "i", "t" }, - desc = "Sidekick Switch Focus", - }, - -- Example of a keybinding to open Claude directly - { - "ac", - function() require("sidekick.cli").toggle({ name = "claude", focus = true }) end, - desc = "Sidekick Claude Toggle", - }, }, }, } From aa2c43633adee0f80faf8d743d6476ea4f8ba5ca Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Thu, 9 Oct 2025 14:46:25 +0300 Subject: [PATCH 06/60] fix(xtras): load `copilot-native` before `blink` (#6588) ## Description `blink` Extra loads earlier than `copilot-native` Extra and that causes `ghost_text.enabled = vim.g.ai_cmp` to wrongly evaluate to `true` even though `copilot-native` explicitly sets `vim.g.ai_cmp = false`. I also changed the order of `blink` and `typescript` so that `blink` comes logically right after `copilot-native`, hope that is not a problem. If it is, feel free to revert the order and just keep the change about `copilot-native`. ## Related Issue(s) None, I was just trying to create a toggle mapping to disable/enable both NES and inline_completion and even though they were disabled, I could see ghost_text from blink. ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/xtras.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/xtras.lua b/lua/lazyvim/plugins/xtras.lua index 19a5c6da..5db08ef1 100644 --- a/lua/lazyvim/plugins/xtras.lua +++ b/lua/lazyvim/plugins/xtras.lua @@ -5,8 +5,9 @@ local prios = { ["lazyvim.plugins.extras.coding.nvim-cmp"] = 2, ["lazyvim.plugins.extras.editor.neo-tree"] = 2, ["lazyvim.plugins.extras.ui.edgy"] = 3, - ["lazyvim.plugins.extras.lang.typescript"] = 5, + ["lazyvim.plugins.extras.ai.copilot-native"] = 4, ["lazyvim.plugins.extras.coding.blink"] = 5, + ["lazyvim.plugins.extras.lang.typescript"] = 5, ["lazyvim.plugins.extras.formatting.prettier"] = 10, -- default core extra priority is 20 -- default priority is 50 From 92ff787e739a17df6e5ba4c505d3e3521ad47e52 Mon Sep 17 00:00:00 2001 From: Vlad <52591095+MeanderingProgrammer@users.noreply.github.com> Date: Thu, 9 Oct 2025 04:47:01 -0700 Subject: [PATCH 07/60] chore(render-markdown): use API to toggle (#6558) ## Description The `state` module in `render-markdown` is not expected to be accessed outside of the package and may be refactored in the future. Prevent any breaking changes in LazyVim by using the public API which was updated here: https://github.com/MeanderingProgrammer/render-markdown.nvim/commit/accaa600ba59022171275adf6640dda13004bd6f ## Related Issue(s) None ## Screenshots N/A ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/markdown.lua | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/markdown.lua b/lua/lazyvim/plugins/extras/lang/markdown.lua index 33e9e457..ac5405e3 100644 --- a/lua/lazyvim/plugins/extras/lang/markdown.lua +++ b/lua/lazyvim/plugins/extras/lang/markdown.lua @@ -113,17 +113,8 @@ return { require("render-markdown").setup(opts) Snacks.toggle({ name = "Render Markdown", - get = function() - return require("render-markdown.state").enabled - end, - set = function(enabled) - local m = require("render-markdown") - if enabled then - m.enable() - else - m.disable() - end - end, + get = require("render-markdown").get, + set = require("render-markdown").set, }):map("um") end, }, From a205ef889f329172edba33960f77830c37088d2d Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Thu, 9 Oct 2025 11:47:28 +0000 Subject: [PATCH 08/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index e55c8280..4398c40a 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 08 +*LazyVim.txt* For Neovim Last change: 2025 October 09 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 94c4603b6838fbe75343b6e3342b4343744157dc Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 9 Oct 2025 18:08:27 +0200 Subject: [PATCH 09/60] fix(blink): disable blink left/right key in the cmdline --- lua/lazyvim/plugins/extras/coding/blink.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/coding/blink.lua b/lua/lazyvim/plugins/extras/coding/blink.lua index 790808b1..d5b9a57b 100644 --- a/lua/lazyvim/plugins/extras/coding/blink.lua +++ b/lua/lazyvim/plugins/extras/coding/blink.lua @@ -85,7 +85,11 @@ return { cmdline = { enabled = true, - keymap = { preset = "cmdline" }, + keymap = { + preset = "cmdline", + [""] = false, + [""] = false, + }, completion = { list = { selection = { preselect = false } }, menu = { From 4efd0e2bea2a387d6fcdea8cf36a62049e8bafed Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 9 Oct 2025 22:08:13 +0200 Subject: [PATCH 10/60] fix(terminal): term toggle keymaps now only work for snacks terminals. Closes #6573 --- lua/lazyvim/config/keymaps.lua | 8 ++------ lua/lazyvim/plugins/util.lua | 2 ++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index 5709aa6f..d8d7a10f 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -189,12 +189,8 @@ map("n", "L", function() LazyVim.news.changelog() end, { desc = "LazyVim -- floating terminal map("n", "fT", function() Snacks.terminal() end, { desc = "Terminal (cwd)" }) map("n", "ft", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" }) -map("n", "", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" }) -map("n", "", function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" }) - --- Terminal Mappings -map("t", "", "close", { desc = "Hide Terminal" }) -map("t", "", "close", { desc = "which_key_ignore" }) +map({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "Terminal (Root Dir)" }) +map({"n","t"}, "",function() Snacks.terminal(nil, { cwd = LazyVim.root() }) end, { desc = "which_key_ignore" }) -- windows map("n", "-", "s", { desc = "Split Window Below", remap = true }) diff --git a/lua/lazyvim/plugins/util.lua b/lua/lazyvim/plugins/util.lua index 8d8aa220..0357c3fb 100644 --- a/lua/lazyvim/plugins/util.lua +++ b/lua/lazyvim/plugins/util.lua @@ -23,6 +23,8 @@ return { nav_j = { "", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" }, nav_k = { "", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" }, nav_l = { "", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" }, + hide_slash = { "", "hide", desc = "Hide Terminal", mode = { "t", "n" } }, + hide_underscore = { "", "hide", desc = "which_key_ignore", mode = { "t", "n" } }, }, }, }, From 0e8069c78ee92279055236388df8c2019476767a Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 10 Oct 2025 06:45:12 +0200 Subject: [PATCH 11/60] feat(treesitter): added support for `disable` langs to indent/highlight/folds. Closes #6608 --- lua/lazyvim/plugins/treesitter.lua | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 78f1b3b2..b53e9c37 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -21,12 +21,13 @@ return { event = { "LazyFile", "VeryLazy" }, cmd = { "TSUpdate", "TSInstall", "TSLog", "TSUninstall" }, opts_extend = { "ensure_installed" }, + ---@alias lazyvim.TSFeat { enable?: boolean, disable?: string[] } ---@class lazyvim.TSConfig: TSConfig opts = { -- LazyVim config for treesitter - indent = { enable = true }, - highlight = { enable = true }, - folds = { enable = true }, + indent = { enable = true }, ---@type lazyvim.TSFeat + highlight = { enable = true }, ---@type lazyvim.TSFeat + folds = { enable = true }, ---@type lazyvim.TSFeat ensure_installed = { "bash", "c", @@ -99,22 +100,32 @@ return { vim.api.nvim_create_autocmd("FileType", { group = vim.api.nvim_create_augroup("lazyvim_treesitter", { clear = true }), callback = function(ev) - if not LazyVim.treesitter.have(ev.match) then + local ft, lang = ev.match, vim.treesitter.language.get_lang(ev.match) + if not LazyVim.treesitter.have(ft) then return end + ---@param feat string + ---@param query string + local function enabled(feat, query) + local f = opts[feat] or {} ---@type lazyvim.TSFeat + return f.enable ~= false + and not vim.tbl_contains(f.disable or {}, lang) + and LazyVim.treesitter.have(ft, query) + end + -- highlighting - if vim.tbl_get(opts, "highlight", "enable") ~= false then + if enabled("highlight", "highlights") then pcall(vim.treesitter.start) end -- indents - if vim.tbl_get(opts, "indent", "enable") ~= false and LazyVim.treesitter.have(ev.match, "indents") then + if enabled("indent", "indents") then LazyVim.set_default("indentexpr", "v:lua.LazyVim.treesitter.indentexpr()") end -- folds - if vim.tbl_get(opts, "folds", "enable") ~= false and LazyVim.treesitter.have(ev.match, "folds") then + if enabled("folds", "folds") then if LazyVim.set_default("foldmethod", "expr") then LazyVim.set_default("foldexpr", "v:lua.LazyVim.treesitter.foldexpr()") end From c1aef3b62a21e0525c12681e28a64a2b7950d7d6 Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Fri, 10 Oct 2025 04:46:21 +0000 Subject: [PATCH 12/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 4398c40a..ec2f0a19 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 09 +*LazyVim.txt* For Neovim Last change: 2025 October 10 ============================================================================== Table of Contents *LazyVim-table-of-contents* From e8c5fa7eae06539c883699507caeadb46d74f401 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 10 Oct 2025 20:57:42 +0200 Subject: [PATCH 13/60] fix(treesiter): check that `disable` options are tables --- lua/lazyvim/plugins/treesitter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index b53e9c37..5106da4e 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -110,7 +110,7 @@ return { local function enabled(feat, query) local f = opts[feat] or {} ---@type lazyvim.TSFeat return f.enable ~= false - and not vim.tbl_contains(f.disable or {}, lang) + and not (type(f.disable) == "table" and vim.tbl_contains(f.disable, lang)) and LazyVim.treesitter.have(ft, query) end From f8b062b130177f07d3c1c13b642402d42e980df5 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 11 Oct 2025 00:05:16 +0200 Subject: [PATCH 14/60] feat(sidekick): added `ad` to close/detach a terminal/session --- lua/lazyvim/plugins/extras/ai/sidekick.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lua/lazyvim/plugins/extras/ai/sidekick.lua b/lua/lazyvim/plugins/extras/ai/sidekick.lua index 52597b0e..5b2c0976 100644 --- a/lua/lazyvim/plugins/extras/ai/sidekick.lua +++ b/lua/lazyvim/plugins/extras/ai/sidekick.lua @@ -74,6 +74,11 @@ return { -- require("sidekick.cli").select({ filter = { installed = true } }) desc = "Select CLI", }, + { + "ad", + function() require("sidekick.cli").close() end, + desc = "Detach a CLI Session", + }, { "at", function() require("sidekick.cli").send({ msg = "{this}" }) end, From 049db39de0f272e8368a4b3881ac5a13f0d04b09 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 11 Oct 2025 08:16:17 +0200 Subject: [PATCH 15/60] fix(sidekick): only add copilot to lspconfig when `opts.nes.enabled ~= false` --- lua/lazyvim/plugins/extras/ai/sidekick.lua | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lua/lazyvim/plugins/extras/ai/sidekick.lua b/lua/lazyvim/plugins/extras/ai/sidekick.lua index 5b2c0976..71e76eb4 100644 --- a/lua/lazyvim/plugins/extras/ai/sidekick.lua +++ b/lua/lazyvim/plugins/extras/ai/sidekick.lua @@ -4,11 +4,13 @@ return { -- copilot-language-server { "neovim/nvim-lspconfig", - opts = { - servers = { - copilot = {}, - }, - }, + opts = function(_, opts) + local sk = LazyVim.opts("sidekick.nvim") ---@type sidekick.Config|{} + if vim.tbl_get(sk, "nes", "enabled") ~= false then + opts.servers = opts.servers or {} + opts.servers.copilot = opts.servers.copilot or {} + end + end, }, -- lualine From eaa3d4d428de8a78235515721dc200f8e98781e8 Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Sat, 11 Oct 2025 06:17:37 +0000 Subject: [PATCH 16/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index ec2f0a19..c64778ca 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 10 +*LazyVim.txt* For Neovim Last change: 2025 October 11 ============================================================================== Table of Contents *LazyVim-table-of-contents* From c2aa088300d908398eeb357685e5f215b396381a Mon Sep 17 00:00:00 2001 From: Zhizhen He Date: Sat, 11 Oct 2025 14:48:48 +0800 Subject: [PATCH 17/60] docs(README): bump Neovim requirement to 0.11.2 (#6611) ## Description Update neovim requirement in readme. ## Related Issue(s) ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- README-CN.md | 2 +- README-DE.md | 2 +- README-ES.md | 2 +- README-IT.md | 2 +- README-JP.md | 2 +- README-KO.md | 2 +- README-PT.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README-CN.md b/README-CN.md index 83e5abfd..67132e59 100644 --- a/README-CN.md +++ b/README-CN.md @@ -54,7 +54,7 @@ LazyVim 是一个基于 [💤 lazy.nvim](https://github.com/folke/lazy.nvim) 的 ## ⚡️ 环境要求 -- Neovim >= **0.9.0** (需要用 **LuaJIT** 构建) +- Neovim >= **0.11.2** (需要用 **LuaJIT** 构建) - Git >= **2.19.0** (用于部分克隆支持) - 一个 [Nerd Font](https://www.nerdfonts.com/) 字体 **_(可选)_** - 一个用于 `nvim-treesitter` 的 **C** 编译器。看 [这里](https://github.com/nvim-treesitter/nvim-treesitter#requirements) diff --git a/README-DE.md b/README-DE.md index c087d7c6..a46aba0a 100644 --- a/README-DE.md +++ b/README-DE.md @@ -56,7 +56,7 @@ und die Einfachheit von einem vorgefertigten Setup. ## ⚡️ Vorraussetzungen -- Neovim >= **0.8.0** (gebraucht um mit **LuaJIT** zu bauen) +- Neovim >= **0.11.2** (gebraucht um mit **LuaJIT** zu bauen) - Git >= **2.19.0** (um Teil-Klone zu unterstützen) - eine [Nerd Font](https://www.nerdfonts.com/) **_(optional)_** diff --git a/README-ES.md b/README-ES.md index 06e64f96..3dd7f108 100644 --- a/README-ES.md +++ b/README-ES.md @@ -52,7 +52,7 @@ LazyVim es una configuración de Neovim impulsada por [💤 lazy.nvim](https://g ## ⚡️ Requisitos -- Neovim >= **0.9.0** (debe ser compilado con **LuaJIT**) +- Neovim >= **0.11.2** (debe ser compilado con **LuaJIT**) - Git >= **2.19.0** (para soporte de clones parciales) - una [Fuente Nerd](https://www.nerdfonts.com/) **_(opcional)_** - un compilador **C** para `nvim-treesitter`. Consulta [aquí](https://github.com/nvim-treesitter/nvim-treesitter#requirements) diff --git a/README-IT.md b/README-IT.md index 3ab7419a..3bf82a9c 100644 --- a/README-IT.md +++ b/README-IT.md @@ -57,7 +57,7 @@ insieme alla comodità di un setup preconfigurato. ## ⚡️ Requisiti -- Neovim >= **0.9.0** (deve essere compilato con **LuaJIT**) +- Neovim >= **0.11.2** (deve essere compilato con **LuaJIT**) - Git >= **2.19.0** (per supportare cloni parziali) - a [Nerd Font](https://www.nerdfonts.com/) **_(opzionale)_** - un compilatore **C** per `nvim-treesitter`. Leggi [qui](https://github.com/nvim-treesitter/nvim-treesitter#requirements) diff --git a/README-JP.md b/README-JP.md index d81f2cb9..e7a2da3d 100644 --- a/README-JP.md +++ b/README-JP.md @@ -54,7 +54,7 @@ LazyVimは、ゼロから始めるか、あらかじめ作成されたディス ## ⚡️ 必要要件 -- Neovim >= **0.9.0** (**LuaJIT**でビルドされている必要があります) +- Neovim >= **0.11.2** (**LuaJIT**でビルドされている必要があります) - Git >= **2.19.0** (部分的なcloneサポートのため) - [Nerd Font](https://www.nerdfonts.com/) **_(任意)_** - `nvim-treesitter`用の**C**コンパイラ。詳細は[こちら](https://github.com/nvim-treesitter/nvim-treesitter#requirements) diff --git a/README-KO.md b/README-KO.md index 84d28017..25ac67ef 100644 --- a/README-KO.md +++ b/README-KO.md @@ -52,7 +52,7 @@ LazyVim은 [💤 lazy.nvim](https://github.com/folke/lazy.nvim)를 기반으로 ## ⚡️ 요구사항 -- **0.9.0**이상의 Neovim (LuaJIT과 함께 개발이 되어져있어야함니다.) +- **0.11.2**이상의 Neovim (LuaJIT과 함께 개발이 되어져있어야함니다.) - **2.19.0**이상의 Git (이것은 부분적인 클론기능을 지원하기 위함입니다.) - [Nerd Font](https://www.nerdfonts.com/) **_(옵션)_** - `nvim-treesitter`를 위한 **C** 컴파일러. [이 문서](https://github.com/nvim-treesitter/nvim-treesitter#requirements)를 확인해주시기바랍니다. diff --git a/README-PT.md b/README-PT.md index 65d8c625..67bd6fb1 100644 --- a/README-PT.md +++ b/README-PT.md @@ -57,7 +57,7 @@ como necessário, junto com a conveniência de um setup pré-configurado. ## ⚡️ Requesitos -- Neovim >= **0.9.0** (preciso fazer build com **LuaJIT**) +- Neovim >= **0.11.2** (preciso fazer build com **LuaJIT**) - Git >= **2.19.0** (para suporte parcial de clones) - uma [Nerd Font](https://www.nerdfonts.com/) **_(opcional)_** - um compilador de **C** para `nvim-treesitter`. Mais informações [aqui](https://github.com/nvim-treesitter/nvim-treesitter#requirements) From ebdcf1ba7ef18daa8c897c8922a5ef770e8bcffb Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 12 Oct 2025 14:26:05 +0200 Subject: [PATCH 18/60] perf(ansible): load on ft=yaml and run should only be mapped on ft=yaml.ansible --- lua/lazyvim/plugins/extras/lang/ansible.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/ansible.lua b/lua/lazyvim/plugins/extras/lang/ansible.lua index 0d20b02a..c093f278 100644 --- a/lua/lazyvim/plugins/extras/lang/ansible.lua +++ b/lua/lazyvim/plugins/extras/lang/ansible.lua @@ -19,13 +19,14 @@ return { }, { "mfussenegger/nvim-ansible", - ft = {}, + ft = { "yaml" }, keys = { { "ta", function() require("ansible").run() end, + ft = "yaml.ansible", desc = "Ansible Run Playbook/Role", silent = true, }, From cfc0ae0184a96d1e69b0742c3db3075f7e0ecf2c Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Sun, 12 Oct 2025 12:27:10 +0000 Subject: [PATCH 19/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index c64778ca..3c713e16 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 11 +*LazyVim.txt* For Neovim Last change: 2025 October 12 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 02b8dd3f4bd55f06be133471fad027f3131238f4 Mon Sep 17 00:00:00 2001 From: Vu Nhat Chuong Date: Tue, 14 Oct 2025 18:17:22 +0700 Subject: [PATCH 20/60] feat(gleam): add conform (#5640) ## Description Add conform.nvim formatter for gleam lanuage. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/gleam.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lua/lazyvim/plugins/extras/lang/gleam.lua b/lua/lazyvim/plugins/extras/lang/gleam.lua index 956d2882..a41a6054 100644 --- a/lua/lazyvim/plugins/extras/lang/gleam.lua +++ b/lua/lazyvim/plugins/extras/lang/gleam.lua @@ -17,4 +17,13 @@ return { }, }, }, + { + "conform.nvim", + optional = true, + opts = { + formatters_by_ft = { + gleam = { "gleam" }, + }, + }, + }, } From f8e8ea4b5e7f6d8db55f5c8dc223e0836beeeee6 Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Tue, 14 Oct 2025 11:18:24 +0000 Subject: [PATCH 21/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 3c713e16..0b80e343 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 12 +*LazyVim.txt* For Neovim Last change: 2025 October 14 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 2a1f3c370145c3465c0142deade3e3b2660ce829 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 15 Oct 2025 08:36:32 +0200 Subject: [PATCH 22/60] feat(treesitter): on windows, use `gcc` if available and `cl.exe` is not available for building parsers --- lua/lazyvim/plugins/treesitter.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 5106da4e..6256904d 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -59,6 +59,16 @@ return { config = function(_, opts) local TS = require("nvim-treesitter") + -- On Windows, use `gcc` if `cl` is not available, and `gcc` is. + if + not vim.env.CC + and vim.fn.has("win32") == 1 + and vim.fn.executable("cl") == 0 + and vim.fn.executable("gcc") == 1 + then + vim.env.CC = "gcc" + end + setmetatable(require("nvim-treesitter.install"), { __newindex = function(_, k) if k == "compilers" then From 413b9d5fa91c5bd5088b28c6d1764caa88542cb1 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 15 Oct 2025 08:37:11 +0200 Subject: [PATCH 23/60] feat(treesitter): better health checks for treesitter requirements --- lua/lazyvim/health.lua | 15 +++++++ lua/lazyvim/plugins/treesitter.lua | 4 +- lua/lazyvim/util/treesitter.lua | 71 +++++++++++++++++++++++------- 3 files changed, 71 insertions(+), 19 deletions(-) diff --git a/lua/lazyvim/health.lua b/lua/lazyvim/health.lua index d1632e75..7af6ad94 100644 --- a/lua/lazyvim/health.lua +++ b/lua/lazyvim/health.lua @@ -4,6 +4,7 @@ local start = vim.health.start or vim.health.report_start local ok = vim.health.ok or vim.health.report_ok local warn = vim.health.warn or vim.health.report_warn local error = vim.health.error or vim.health.report_error +local info = vim.health.info or vim.health.report_info function M.check() start("LazyVim") @@ -33,6 +34,20 @@ function M.check() warn(("`%s` is not installed"):format(name)) end end + + start("LazyVim nvim-treesitter") + local tsok, health = LazyVim.treesitter.check() + local keys = vim.tbl_keys(health) ---@type string[] + table.sort(keys) + for _, k in pairs(keys) do + (health[k] and ok or error)(("`%s` is %s"):format(k, health[k] and "installed" or "not installed")) + end + if not tsok then + info( + "See the requirements at [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements)" + ) + info("Run `:checkhealth nvim-treesitter` for more information.") + end end return M diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 6256904d..5ab47721 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -13,7 +13,7 @@ return { LazyVim.error("Please restart Neovim and run `:TSUpdate` to use the `nvim-treesitter` **main** branch.") return end - LazyVim.treesitter.ensure_treesitter_cli(function() + LazyVim.treesitter.build(function() TS.update(nil, { summary = true }) end) end, @@ -100,7 +100,7 @@ return { return not LazyVim.treesitter.have(lang) end, opts.ensure_installed or {}) if #install > 0 then - LazyVim.treesitter.ensure_treesitter_cli(function() + LazyVim.treesitter.build(function() TS.install(install, { summary = true }):await(function() LazyVim.treesitter.get_installed(true) -- refresh the installed langs end) diff --git a/lua/lazyvim/util/treesitter.lua b/lua/lazyvim/util/treesitter.lua index b1d647e8..d5c845fd 100644 --- a/lua/lazyvim/util/treesitter.lua +++ b/lua/lazyvim/util/treesitter.lua @@ -51,31 +51,68 @@ function M.indentexpr() return M.have(nil, "indents") and require("nvim-treesitter").indentexpr() or -1 end ----@param cb fun() -function M.ensure_treesitter_cli(cb) - if vim.fn.executable("tree-sitter") == 1 then - return cb() +---@return boolean ok, lazyvim.util.treesitter.Health health +function M.check() + local is_win = vim.fn.has("win32") == 1 + ---@param tool string + ---@param win boolean? + local function have(tool, win) + return (win == nil or is_win == win) and vim.fn.executable(tool) == 1 end - ---@param msg? string - local function fail(msg) - return LazyVim.error({ - "**treesitter-nvim** `main` requires the `tree-sitter` CLI executable to be installed.", - "Please install it manually from https://github.com/tree-sitter/tree-sitter/tree/master/crates/cli or", - "use your system package manager.", - "Run `:checkhealth nvim-treesitter` for more information.", - msg, - }) + ---@class lazyvim.util.treesitter.Health: table + local ret = { + ["tree-sitter (CLI)"] = have("tree-sitter"), + ["C compiler"] = vim.env.CC or have("cc", false) or have("cl", true), + tar = have("tar"), + curl = have("curl"), + node = have("node"), + } + local ok = true + for _, v in pairs(ret) do + ok = ok and v + end + return ok, ret +end + +---@param cb fun() +function M.build(cb) + M.ensure_treesitter_cli(function(_, err) + local ok, health = M.check() + if ok then + return cb() + else + local lines = { "Unmet requirements for **nvim-treesitter** `main`:" } + local keys = vim.tbl_keys(health) ---@type string[] + table.sort(keys) + for _, k in pairs(keys) do + lines[#lines + 1] = ("- %s `%s`"):format(health[k] and "✅" or "❌", k) + end + vim.list_extend(lines, { + "", + "See the requirements at [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements)", + "Run `:checkhealth nvim-treesitter` for more information.", + }) + vim.list_extend(lines, err and { "", err } or {}) + LazyVim.error(lines, { title = "LazyVim Treesitter" }) + end + end) +end + +---@param cb fun(ok:boolean, err?:string) +function M.ensure_treesitter_cli(cb) + if vim.fn.executable("tree-sitter") == 1 then + return cb(true) end -- try installing with mason if not pcall(require, "mason") then - return fail("`mason.nvim` is disabled in your config, so we cannot install it automatically.") + return cb(false, "`mason.nvim` is disabled in your config, so we cannot install it automatically.") end -- check again since we might have installed it already if vim.fn.executable("tree-sitter") == 1 then - return cb() + return cb(true) end local mr = require("mason-registry") @@ -88,9 +125,9 @@ function M.ensure_treesitter_cli(cb) vim.schedule_wrap(function(success) if success then LazyVim.info("Installed `tree-sitter-cli` with `mason.nvim`.") - cb() + cb(true) else - fail("Failed to install `tree-sitter-cli` with `mason.nvim`.") + cb(false, "Failed to install `tree-sitter-cli` with `mason.nvim`.") end end) ) From 37032dabd657ae567011e7ab4f881ecbf476eb76 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 15 Oct 2025 08:41:55 +0200 Subject: [PATCH 24/60] feat(treesitter): add installation instructions to get a C compiler on windows --- lua/lazyvim/health.lua | 3 +++ lua/lazyvim/util/treesitter.lua | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lua/lazyvim/health.lua b/lua/lazyvim/health.lua index 7af6ad94..2542c150 100644 --- a/lua/lazyvim/health.lua +++ b/lua/lazyvim/health.lua @@ -47,6 +47,9 @@ function M.check() "See the requirements at [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements)" ) info("Run `:checkhealth nvim-treesitter` for more information.") + if vim.fn.has("win32") == 1 and not health["C compiler"] then + info("Install a C compiler with `winget install --id=BrechtSanders.WinLibs.POSIX.UCRT -e`") + end end end diff --git a/lua/lazyvim/util/treesitter.lua b/lua/lazyvim/util/treesitter.lua index d5c845fd..23795005 100644 --- a/lua/lazyvim/util/treesitter.lua +++ b/lua/lazyvim/util/treesitter.lua @@ -93,6 +93,9 @@ function M.build(cb) "See the requirements at [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter/tree/main?tab=readme-ov-file#requirements)", "Run `:checkhealth nvim-treesitter` for more information.", }) + if vim.fn.has("win32") == 1 and not health["C compiler"] then + lines[#lines + 1] = "Install a C compiler with `winget install --id=BrechtSanders.WinLibs.POSIX.UCRT -e`" + end vim.list_extend(lines, err and { "", err } or {}) LazyVim.error(lines, { title = "LazyVim Treesitter" }) end From 144fe24be15007de0db036ba145514011d4d55d6 Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Wed, 15 Oct 2025 06:43:19 +0000 Subject: [PATCH 25/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 0b80e343..3da695fb 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 14 +*LazyVim.txt* For Neovim Last change: 2025 October 15 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 5effc77185f94f557809375b5650d427e7171c32 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 15 Oct 2025 19:43:42 +0200 Subject: [PATCH 26/60] fix(treesitter): better check on windows if microsoft build tools is installed --- lua/lazyvim/plugins/treesitter.lua | 10 ---------- lua/lazyvim/util/treesitter.lua | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 5ab47721..25223725 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -59,16 +59,6 @@ return { config = function(_, opts) local TS = require("nvim-treesitter") - -- On Windows, use `gcc` if `cl` is not available, and `gcc` is. - if - not vim.env.CC - and vim.fn.has("win32") == 1 - and vim.fn.executable("cl") == 0 - and vim.fn.executable("gcc") == 1 - then - vim.env.CC = "gcc" - end - setmetatable(require("nvim-treesitter.install"), { __newindex = function(_, k) if k == "compilers" then diff --git a/lua/lazyvim/util/treesitter.lua b/lua/lazyvim/util/treesitter.lua index 23795005..e8688a6f 100644 --- a/lua/lazyvim/util/treesitter.lua +++ b/lua/lazyvim/util/treesitter.lua @@ -51,6 +51,13 @@ function M.indentexpr() return M.have(nil, "indents") and require("nvim-treesitter").indentexpr() or -1 end +---@return string? +local function win_find_cl() + local path = "C:/Program Files (x86)/Microsoft Visual Studio" + local pattern = "*/*/VC/Tools/MSVC/*/bin/Hostx64/x64/cl.exe" + return vim.fn.globpath(path, pattern, true, true)[1] +end + ---@return boolean ok, lazyvim.util.treesitter.Health health function M.check() local is_win = vim.fn.has("win32") == 1 @@ -60,10 +67,17 @@ function M.check() return (win == nil or is_win == win) and vim.fn.executable(tool) == 1 end + local have_cc = vim.env.CC ~= nil or have("cc", false) or have("cl", true) or (is_win and win_find_cl() ~= nil) + + if not have_cc and is_win and vim.fn.executable("gcc") == 1 then + vim.env.CC = "gcc" + have_cc = true + end + ---@class lazyvim.util.treesitter.Health: table local ret = { ["tree-sitter (CLI)"] = have("tree-sitter"), - ["C compiler"] = vim.env.CC or have("cc", false) or have("cl", true), + ["C compiler"] = have_cc, tar = have("tar"), curl = have("curl"), node = have("node"), From 26c43a9b931f3ab04a8c449671250182ac9ddca6 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 17 Oct 2025 19:18:28 +0200 Subject: [PATCH 27/60] feat(sidekick): use `` in any snacks picker to send the (selected) results to an AI tool --- lua/lazyvim/plugins/extras/ai/sidekick.lua | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lua/lazyvim/plugins/extras/ai/sidekick.lua b/lua/lazyvim/plugins/extras/ai/sidekick.lua index 71e76eb4..d0451fce 100644 --- a/lua/lazyvim/plugins/extras/ai/sidekick.lua +++ b/lua/lazyvim/plugins/extras/ai/sidekick.lua @@ -106,4 +106,28 @@ return { }, }, }, + + { + "folke/snacks.nvim", + optional = true, + opts = { + picker = { + actions = { + sidekick_send = function(...) + return require("sidekick.cli.snacks").send(...) + end, + }, + win = { + input = { + keys = { + [""] = { + "sidekick_send", + mode = { "n", "i" }, + }, + }, + }, + }, + }, + }, + }, } From b90e9cb73a2d47981d50322f2f98d5b3bb95fbce Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Fri, 17 Oct 2025 17:19:47 +0000 Subject: [PATCH 28/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 3da695fb..464d854a 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 15 +*LazyVim.txt* For Neovim Last change: 2025 October 17 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 048056e9523268d6086d537e578e84e27175051d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 19:21:12 +0200 Subject: [PATCH 29/60] chore(main): release 15.8.0 (#6576) :robot: I have created a release *beep* *boop* --- ## [15.8.0](https://github.com/LazyVim/LazyVim/compare/v15.7.1...v15.8.0) (2025-10-17) ### Features * **gleam:** add conform ([#5640](https://github.com/LazyVim/LazyVim/issues/5640)) ([02b8dd3](https://github.com/LazyVim/LazyVim/commit/02b8dd3f4bd55f06be133471fad027f3131238f4)) * **sidekick:** added `ad` to close/detach a terminal/session ([f8b062b](https://github.com/LazyVim/LazyVim/commit/f8b062b130177f07d3c1c13b642402d42e980df5)) * **sidekick:** changed default keymaps for sidekick. Please check updated docs at sidekick.nvim ([a3e52dd](https://github.com/LazyVim/LazyVim/commit/a3e52dd346ea35db5521b66e46dca95d32f00cb4)) * **sidekick:** use `` in any snacks picker to send the (selected) results to an AI tool ([26c43a9](https://github.com/LazyVim/LazyVim/commit/26c43a9b931f3ab04a8c449671250182ac9ddca6)) * **treesitter:** add installation instructions to get a C compiler on windows ([37032da](https://github.com/LazyVim/LazyVim/commit/37032dabd657ae567011e7ab4f881ecbf476eb76)) * **treesitter:** added support for `disable` langs to indent/highlight/folds. Closes [#6608](https://github.com/LazyVim/LazyVim/issues/6608) ([0e8069c](https://github.com/LazyVim/LazyVim/commit/0e8069c78ee92279055236388df8c2019476767a)) * **treesitter:** better health checks for treesitter requirements ([413b9d5](https://github.com/LazyVim/LazyVim/commit/413b9d5fa91c5bd5088b28c6d1764caa88542cb1)) * **treesitter:** on windows, use `gcc` if available and `cl.exe` is not available for building parsers ([2a1f3c3](https://github.com/LazyVim/LazyVim/commit/2a1f3c370145c3465c0142deade3e3b2660ce829)) ### Bug Fixes * **blink:** disable blink left/right key in the cmdline ([94c4603](https://github.com/LazyVim/LazyVim/commit/94c4603b6838fbe75343b6e3342b4343744157dc)) * **keymaps:** update deprecated diagnostic keymap to latest api change ([#6574](https://github.com/LazyVim/LazyVim/issues/6574)) ([b9d38f6](https://github.com/LazyVim/LazyVim/commit/b9d38f692015fecaa72d55282b74a3d601e4c9fa)) * **sidekick:** only add copilot to lspconfig when `opts.nes.enabled ~= false` ([049db39](https://github.com/LazyVim/LazyVim/commit/049db39de0f272e8368a4b3881ac5a13f0d04b09)) * **terminal:** term toggle keymaps now only work for snacks terminals. Closes [#6573](https://github.com/LazyVim/LazyVim/issues/6573) ([4efd0e2](https://github.com/LazyVim/LazyVim/commit/4efd0e2bea2a387d6fcdea8cf36a62049e8bafed)) * **treesiter:** check that `disable` options are tables ([e8c5fa7](https://github.com/LazyVim/LazyVim/commit/e8c5fa7eae06539c883699507caeadb46d74f401)) * **treesitter:** better check on windows if microsoft build tools is installed ([5effc77](https://github.com/LazyVim/LazyVim/commit/5effc77185f94f557809375b5650d427e7171c32)) * **xtras:** load `copilot-native` before `blink` ([#6588](https://github.com/LazyVim/LazyVim/issues/6588)) ([aa2c436](https://github.com/LazyVim/LazyVim/commit/aa2c43633adee0f80faf8d743d6476ea4f8ba5ca)) ### Performance Improvements * **ansible:** load on ft=yaml and run should only be mapped on ft=yaml.ansible ([ebdcf1b](https://github.com/LazyVim/LazyVim/commit/ebdcf1ba7ef18daa8c897c8922a5ef770e8bcffb)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/.release-please-manifest.json | 2 +- CHANGELOG.md | 30 +++++++++++++++++++++++++++ lua/lazyvim/config/init.lua | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index 6cc4959a..57dbcf9a 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "15.7.1" + ".": "15.8.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c7935c1..ad7d465c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [15.8.0](https://github.com/LazyVim/LazyVim/compare/v15.7.1...v15.8.0) (2025-10-17) + + +### Features + +* **gleam:** add conform ([#5640](https://github.com/LazyVim/LazyVim/issues/5640)) ([02b8dd3](https://github.com/LazyVim/LazyVim/commit/02b8dd3f4bd55f06be133471fad027f3131238f4)) +* **sidekick:** added `ad` to close/detach a terminal/session ([f8b062b](https://github.com/LazyVim/LazyVim/commit/f8b062b130177f07d3c1c13b642402d42e980df5)) +* **sidekick:** changed default keymaps for sidekick. Please check updated docs at sidekick.nvim ([a3e52dd](https://github.com/LazyVim/LazyVim/commit/a3e52dd346ea35db5521b66e46dca95d32f00cb4)) +* **sidekick:** use `` in any snacks picker to send the (selected) results to an AI tool ([26c43a9](https://github.com/LazyVim/LazyVim/commit/26c43a9b931f3ab04a8c449671250182ac9ddca6)) +* **treesitter:** add installation instructions to get a C compiler on windows ([37032da](https://github.com/LazyVim/LazyVim/commit/37032dabd657ae567011e7ab4f881ecbf476eb76)) +* **treesitter:** added support for `disable` langs to indent/highlight/folds. Closes [#6608](https://github.com/LazyVim/LazyVim/issues/6608) ([0e8069c](https://github.com/LazyVim/LazyVim/commit/0e8069c78ee92279055236388df8c2019476767a)) +* **treesitter:** better health checks for treesitter requirements ([413b9d5](https://github.com/LazyVim/LazyVim/commit/413b9d5fa91c5bd5088b28c6d1764caa88542cb1)) +* **treesitter:** on windows, use `gcc` if available and `cl.exe` is not available for building parsers ([2a1f3c3](https://github.com/LazyVim/LazyVim/commit/2a1f3c370145c3465c0142deade3e3b2660ce829)) + + +### Bug Fixes + +* **blink:** disable blink left/right key in the cmdline ([94c4603](https://github.com/LazyVim/LazyVim/commit/94c4603b6838fbe75343b6e3342b4343744157dc)) +* **keymaps:** update deprecated diagnostic keymap to latest api change ([#6574](https://github.com/LazyVim/LazyVim/issues/6574)) ([b9d38f6](https://github.com/LazyVim/LazyVim/commit/b9d38f692015fecaa72d55282b74a3d601e4c9fa)) +* **sidekick:** only add copilot to lspconfig when `opts.nes.enabled ~= false` ([049db39](https://github.com/LazyVim/LazyVim/commit/049db39de0f272e8368a4b3881ac5a13f0d04b09)) +* **terminal:** term toggle keymaps now only work for snacks terminals. Closes [#6573](https://github.com/LazyVim/LazyVim/issues/6573) ([4efd0e2](https://github.com/LazyVim/LazyVim/commit/4efd0e2bea2a387d6fcdea8cf36a62049e8bafed)) +* **treesiter:** check that `disable` options are tables ([e8c5fa7](https://github.com/LazyVim/LazyVim/commit/e8c5fa7eae06539c883699507caeadb46d74f401)) +* **treesitter:** better check on windows if microsoft build tools is installed ([5effc77](https://github.com/LazyVim/LazyVim/commit/5effc77185f94f557809375b5650d427e7171c32)) +* **xtras:** load `copilot-native` before `blink` ([#6588](https://github.com/LazyVim/LazyVim/issues/6588)) ([aa2c436](https://github.com/LazyVim/LazyVim/commit/aa2c43633adee0f80faf8d743d6476ea4f8ba5ca)) + + +### Performance Improvements + +* **ansible:** load on ft=yaml and run should only be mapped on ft=yaml.ansible ([ebdcf1b](https://github.com/LazyVim/LazyVim/commit/ebdcf1ba7ef18daa8c897c8922a5ef770e8bcffb)) + ## [15.7.1](https://github.com/LazyVim/LazyVim/compare/v15.7.0...v15.7.1) (2025-10-02) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index 233328d5..8975fd79 100644 --- a/lua/lazyvim/config/init.lua +++ b/lua/lazyvim/config/init.lua @@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util") ---@class LazyVimConfig: LazyVimOptions local M = {} -M.version = "15.7.1" -- x-release-please-version +M.version = "15.8.0" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions From 62ce8a23d89fa766956447a3df01d9f3448e9a66 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 18 Oct 2025 06:38:43 +0200 Subject: [PATCH 30/60] fix(treesitter): reload lazyvim.tresitter.util to prevent issues with stale modules when upgrading --- lua/lazyvim/plugins/treesitter.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 25223725..20c383bd 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -13,6 +13,8 @@ return { LazyVim.error("Please restart Neovim and run `:TSUpdate` to use the `nvim-treesitter` **main** branch.") return end + -- make sure we're using the latest treesitter util + package.loaded["lazyvim.util.treesitter"] = nil LazyVim.treesitter.build(function() TS.update(nil, { summary = true }) end) From 23bdbc91ebd8737dae89d4a1a69c89f9195943a3 Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Sat, 18 Oct 2025 04:39:45 +0000 Subject: [PATCH 31/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index 464d854a..dd6610d3 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 17 +*LazyVim.txt* For Neovim Last change: 2025 October 18 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 561da43c435f330674c9b18bb335be7e1126d928 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 18 Oct 2025 08:34:17 +0200 Subject: [PATCH 32/60] chore(main): release 15.8.1 (#6641) :robot: I have created a release *beep* *boop* --- ## [15.8.1](https://github.com/LazyVim/LazyVim/compare/v15.8.0...v15.8.1) (2025-10-18) ### Bug Fixes * **treesitter:** reload lazyvim.tresitter.util to prevent issues with stale modules when upgrading ([62ce8a2](https://github.com/LazyVim/LazyVim/commit/62ce8a23d89fa766956447a3df01d9f3448e9a66)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/.release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ lua/lazyvim/config/init.lua | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index 57dbcf9a..cbea53b1 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "15.8.0" + ".": "15.8.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index ad7d465c..033109a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [15.8.1](https://github.com/LazyVim/LazyVim/compare/v15.8.0...v15.8.1) (2025-10-18) + + +### Bug Fixes + +* **treesitter:** reload lazyvim.tresitter.util to prevent issues with stale modules when upgrading ([62ce8a2](https://github.com/LazyVim/LazyVim/commit/62ce8a23d89fa766956447a3df01d9f3448e9a66)) + ## [15.8.0](https://github.com/LazyVim/LazyVim/compare/v15.7.1...v15.8.0) (2025-10-17) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index 8975fd79..ab41d775 100644 --- a/lua/lazyvim/config/init.lua +++ b/lua/lazyvim/config/init.lua @@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util") ---@class LazyVimConfig: LazyVimOptions local M = {} -M.version = "15.8.0" -- x-release-please-version +M.version = "15.8.1" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions From 92a77287321236f52ff38648a38cf314ab223137 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 18 Oct 2025 15:26:38 +0200 Subject: [PATCH 33/60] fix(treesitter): attach textobject keymaps to existing buffers on load. Closes #6642. Closes #6639 --- lua/lazyvim/plugins/treesitter.lua | 53 ++++++++++++++++-------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 20c383bd..2a4fa567 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -19,7 +19,6 @@ return { TS.update(nil, { summary = true }) end) end, - lazy = vim.fn.argc(-1) == 0, -- load treesitter early when opening a file from the cmdline event = { "LazyFile", "VeryLazy" }, cmd = { "TSUpdate", "TSInstall", "TSLog", "TSUninstall" }, opts_extend = { "ensure_installed" }, @@ -162,34 +161,40 @@ return { end TS.setup(opts) + local function attach(buf) + local ft = vim.bo[buf].filetype + if not (vim.tbl_get(opts, "move", "enable") and LazyVim.treesitter.have(ft, "textobjects")) then + return + end + ---@type table> + local moves = vim.tbl_get(opts, "move", "keys") or {} + + for method, keymaps in pairs(moves) do + for key, query in pairs(keymaps) do + local desc = query:gsub("@", ""):gsub("%..*", "") + desc = desc:sub(1, 1):upper() .. desc:sub(2) + desc = (key:sub(1, 1) == "[" and "Prev " or "Next ") .. desc + desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and " End" or " Start") + if not (vim.wo.diff and key:find("[cC]")) then + vim.keymap.set({ "n", "x", "o" }, key, function() + require("nvim-treesitter-textobjects.move")[method](query, "textobjects") + end, { + buffer = buf, + desc = desc, + silent = true, + }) + end + end + end + end + vim.api.nvim_create_autocmd("FileType", { group = vim.api.nvim_create_augroup("lazyvim_treesitter_textobjects", { clear = true }), callback = function(ev) - if not (vim.tbl_get(opts, "move", "enable") and LazyVim.treesitter.have(ev.match, "textobjects")) then - return - end - ---@type table> - local moves = vim.tbl_get(opts, "move", "keys") or {} - - for method, keymaps in pairs(moves) do - for key, query in pairs(keymaps) do - local desc = query:gsub("@", ""):gsub("%..*", "") - desc = desc:sub(1, 1):upper() .. desc:sub(2) - desc = (key:sub(1, 1) == "[" and "Prev " or "Next ") .. desc - desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and " End" or " Start") - if not (vim.wo.diff and key:find("[cC]")) then - vim.keymap.set({ "n", "x", "o" }, key, function() - require("nvim-treesitter-textobjects.move")[method](query, "textobjects") - end, { - buffer = ev.buf, - desc = desc, - silent = true, - }) - end - end - end + attach(ev.buf) end, }) + vim.tbl_map(attach, vim.api.nvim_list_bufs()) end, }, From bd233579a66018f526b6b0970e33afde4cde399e Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 19 Oct 2025 08:45:33 +0300 Subject: [PATCH 34/60] fix(mini.animate): schedule the toggle mapping to correctly take effect (#6483) ## Description `mini.animate`'s toggle mapping didn't take effect, presumably because `keymaps.lua` is the last one to execute on `VeryLazy`. Schedule it to correctly overwrite the default from `keymaps.lua`. I would also be interested if you don't mind to explain to me how can I find out the order of the events execution if there are multiple executions on the same event (i.e on `VeryLazy` what is the order of the execution? Is it arbitrary?) ## Related Issue(s) None. Saw a discussion on `snacks.nvim` and OP wanted to change the mapping and when I tested with `mini.animate` Extra I noticed that its mapping wasn't overriding the default one from `keymaps.lua`. ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- .../plugins/extras/ui/mini-animate.lua | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lua/lazyvim/plugins/extras/ui/mini-animate.lua b/lua/lazyvim/plugins/extras/ui/mini-animate.lua index b71c19a9..11a13cc1 100644 --- a/lua/lazyvim/plugins/extras/ui/mini-animate.lua +++ b/lua/lazyvim/plugins/extras/ui/mini-animate.lua @@ -32,15 +32,19 @@ return { end, }) - Snacks.toggle({ - name = "Mini Animate", - get = function() - return not vim.g.minianimate_disable - end, - set = function(state) - vim.g.minianimate_disable = not state - end, - }):map("ua") + -- schedule setting the mapping to override the default mapping from `keymaps.lua` + -- seems `keymaps.lua` is the last event to execute on `VeryLazy` and it overwrites it + vim.schedule(function() + Snacks.toggle({ + name = "Mini Animate", + get = function() + return not vim.g.minianimate_disable + end, + set = function(state) + vim.g.minianimate_disable = not state + end, + }):map("ua") + end) local animate = require("mini.animate") return vim.tbl_deep_extend("force", opts, { From 3d824e1162f7af16df091f833537a67fb659d59b Mon Sep 17 00:00:00 2001 From: folke <292349+folke@users.noreply.github.com> Date: Sun, 19 Oct 2025 05:46:27 +0000 Subject: [PATCH 35/60] chore(build): auto-generate docs --- doc/LazyVim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index dd6610d3..f8a92ea3 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2025 October 18 +*LazyVim.txt* For Neovim Last change: 2025 October 19 ============================================================================== Table of Contents *LazyVim-table-of-contents* From 1da659db4a3fbcd6d171f3b38d0092ced0887e61 Mon Sep 17 00:00:00 2001 From: "Rico Sta. Cruz" Date: Sun, 19 Oct 2025 21:16:55 +1100 Subject: [PATCH 36/60] feat(extras.rest): add keymap for changing environment (#5678) ## Description Context: - kulala.nvim is an HTTP client, which is used in extras.rest - The kulala [default keymaps](https://neovim.getkulala.net/docs/getting-started/default-keymaps) include a keymap to "set environment" (eg to change from production to staging) - This keymap is missing in extras/rest.lua In this PR: This adds a keymap for `Re` in extras.rest.lua. ## Screenshots This adds `e` here: image ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/util/rest.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/plugins/extras/util/rest.lua b/lua/lazyvim/plugins/extras/util/rest.lua index 9f2e6d67..6ae8424b 100644 --- a/lua/lazyvim/plugins/extras/util/rest.lua +++ b/lua/lazyvim/plugins/extras/util/rest.lua @@ -12,6 +12,7 @@ return { { "Rb", "lua require('kulala').scratchpad()", desc = "Open scratchpad", ft = "http" }, { "Rc", "lua require('kulala').copy()", desc = "Copy as cURL", ft = "http" }, { "RC", "lua require('kulala').from_curl()", desc = "Paste from curl", ft = "http" }, + { "Re", "lua require('kulala').set_selected_env()", desc = "Set environment", ft = "http" }, { "Rg", "lua require('kulala').download_graphql_schema()", From 1aa1b59a7ec7cab61fa7b096db53df15ec5008e7 Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 19 Oct 2025 13:19:30 +0300 Subject: [PATCH 37/60] fix(chezmoi): add `hidden=false` to fzf picker (#6095) ## Description Since #5275, the fzf picker has changed to use the `files` picker instead of `fzf_exec` like before. That means it also inherits the options of `files` picker, where `hidden = true`. Just the command had been changed to use the `chezmoi` command, but it doesn't make sense to have `hidden = true`, since it just appends `--hidden` to the command which was supposed to be `fzf`, but now with `chezmoi` it's not recognized. Add `hidden = false` to the `files` picker when the command is chezmoi. ## Related Issue(s) Fixes #6094 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/util/chezmoi.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/util/chezmoi.lua b/lua/lazyvim/plugins/extras/util/chezmoi.lua index 2c1b2f31..ff4501db 100644 --- a/lua/lazyvim/plugins/extras/util/chezmoi.lua +++ b/lua/lazyvim/plugins/extras/util/chezmoi.lua @@ -8,7 +8,7 @@ local pick_chezmoi = function() fzf_lua.actions.vimcmd_entry("ChezmoiEdit", selected, { cwd = os.getenv("HOME") }) end, } - fzf_lua.files({ cmd = "chezmoi managed --include=files,symlinks", actions = actions }) + fzf_lua.files({ cmd = "chezmoi managed --include=files,symlinks", actions = actions, hidden = false }) elseif LazyVim.pick.picker.name == "snacks" then local results = require("chezmoi.commands").list({ args = { From dea0ae44bef99b3362056541ca8d27438e12cdf7 Mon Sep 17 00:00:00 2001 From: Zhizhen He Date: Sun, 19 Oct 2025 18:20:19 +0800 Subject: [PATCH 38/60] style(lean): fix typo (#6600) ## Description Fix typo in comment for lean extra. ## Related Issue(s) ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/lean.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/lean.lua b/lua/lazyvim/plugins/extras/lang/lean.lua index 58488372..76db7ecb 100644 --- a/lua/lazyvim/plugins/extras/lang/lean.lua +++ b/lua/lazyvim/plugins/extras/lang/lean.lua @@ -108,7 +108,7 @@ return { priority = 10, }, - -- Redirect Lean's stderr messages somehwere (to a buffer by default) + -- Redirect Lean's stderr messages somewhere (to a buffer by default) stderr = { enable = true, -- height of the window From 98b97d7b00fd34a1c2cd9195647408f953e7a87b Mon Sep 17 00:00:00 2001 From: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com> Date: Sun, 19 Oct 2025 15:50:34 +0530 Subject: [PATCH 39/60] docs(ui): fix typo - `s/inent/indent/` (#6584) ## Description This fixes a typo I noticed in the docs. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/ui/mini-indentscope.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua b/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua index ea266b24..19832196 100644 --- a/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua +++ b/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua @@ -44,7 +44,7 @@ return { end, }, - -- disable inent-blankline scope when mini-indentscope is enabled + -- disable indent-blankline scope when mini-indentscope is enabled { "lukas-reineke/indent-blankline.nvim", optional = true, From f0b32b5955889d4d2d3636a52d2ddf5d113646df Mon Sep 17 00:00:00 2001 From: Jackie Li Date: Sun, 19 Oct 2025 11:21:17 +0100 Subject: [PATCH 40/60] fix(ui): ignore sidekick_terminal in mini-indentscope (#6619) --- lua/lazyvim/plugins/extras/ui/mini-indentscope.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua b/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua index 19832196..e043432c 100644 --- a/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua +++ b/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua @@ -23,6 +23,7 @@ return { "mason", "neo-tree", "notify", + "sidekick_terminal", "snacks_dashboard", "snacks_notif", "snacks_terminal", From ae74622e6666ea4c3e6c58c4ef2d3f313d8e8f20 Mon Sep 17 00:00:00 2001 From: Frankie Robertson Date: Sun, 19 Oct 2025 13:22:33 +0300 Subject: [PATCH 41/60] fix(latex): ensure tex extra installs latex tree-sitter parser (#6357) ## Description Currently we don't ensure the latex treesitter is installed for latex. Although it is not used for highlighting, it is used by default plugins like flash, so this adds it to the list ## Related Issue(s) https://github.com/LazyVim/LazyVim/pull/1156 Co-authored-by: Frankie Robertson --- lua/lazyvim/plugins/extras/lang/tex.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/tex.lua b/lua/lazyvim/plugins/extras/lang/tex.lua index 9ced69e1..7af026c2 100644 --- a/lua/lazyvim/plugins/extras/lang/tex.lua +++ b/lua/lazyvim/plugins/extras/lang/tex.lua @@ -12,7 +12,7 @@ return { opts = function(_, opts) opts.highlight = opts.highlight or {} if type(opts.ensure_installed) == "table" then - vim.list_extend(opts.ensure_installed, { "bibtex" }) + vim.list_extend(opts.ensure_installed, { "bibtex", "latex" }) end if type(opts.highlight.disable) == "table" then vim.list_extend(opts.highlight.disable, { "latex" }) From 66e927fd9d0b0ff2886b9fe1465d9396461a2665 Mon Sep 17 00:00:00 2001 From: Jarryd Tilbrook Date: Sun, 19 Oct 2025 18:23:23 +0800 Subject: [PATCH 42/60] feat(neotest): extra keymap to attach to a test (#6198) ## Description An extra keymap useful when running tests to attach to the test. ## Related Issue(s) N/A ## Screenshots N/A ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/test/core.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/plugins/extras/test/core.lua b/lua/lazyvim/plugins/extras/test/core.lua index 48f886ad..99d4969e 100644 --- a/lua/lazyvim/plugins/extras/test/core.lua +++ b/lua/lazyvim/plugins/extras/test/core.lua @@ -106,6 +106,7 @@ return { -- stylua: ignore keys = { {"t", "", desc = "+test"}, + { "ta", function() require("neotest").run.attach() end, desc = "Attach to Test (Neotest)" }, { "tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File (Neotest)" }, { "tT", function() require("neotest").run.run(vim.uv.cwd()) end, desc = "Run All Test Files (Neotest)" }, { "tr", function() require("neotest").run.run() end, desc = "Run Nearest (Neotest)" }, From 7bf8c22c56283fa6d5d35246dcd0f49d37a5c709 Mon Sep 17 00:00:00 2001 From: xusd320 Date: Sun, 19 Oct 2025 18:26:20 +0800 Subject: [PATCH 43/60] fix(lang.rust): rust-analyzer hanging on root scanned (#6178) ## Description I encounter the RA hanging problem when coding on next.js project, and found the solution to fix this at here . https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 --- lua/lazyvim/plugins/extras/lang/rust.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lua/lazyvim/plugins/extras/lang/rust.lua b/lua/lazyvim/plugins/extras/lang/rust.lua index b66dde9b..048eadab 100644 --- a/lua/lazyvim/plugins/extras/lang/rust.lua +++ b/lua/lazyvim/plugins/extras/lang/rust.lua @@ -103,6 +103,8 @@ return { "venv", ".venv", }, + -- Avoid Roots Scanned hanging, see https://github.com/rust-lang/rust-analyzer/issues/12613#issuecomment-2096386344 + watcher = "client", }, }, }, From d14b7733e75c2cd2e6df5a21e8664d85aa420773 Mon Sep 17 00:00:00 2001 From: Lorenzo Bettini Date: Sun, 19 Oct 2025 12:26:42 +0200 Subject: [PATCH 44/60] docs(mini-snippets): fix typo in the documentation (#5953) typo `snippits` ## Description Just a fix for the typo `snippits` - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/coding/mini-snippets.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/coding/mini-snippets.lua b/lua/lazyvim/plugins/extras/coding/mini-snippets.lua index 714d867d..0262c388 100644 --- a/lua/lazyvim/plugins/extras/coding/mini-snippets.lua +++ b/lua/lazyvim/plugins/extras/coding/mini-snippets.lua @@ -1,6 +1,6 @@ if lazyvim_docs then -- Set to `false` to prevent "non-lsp snippets"" from appearing inside completion windows - -- Motivation: Less clutter in completion windows and a more direct usage of snippits + -- Motivation: Less clutter in completion windows and a more direct usage of snippets vim.g.lazyvim_mini_snippets_in_completion = true -- NOTE: Please also read: From b36b8589b62f55b181367afe954606c73233c0a1 Mon Sep 17 00:00:00 2001 From: Roland Kaminski Date: Sun, 19 Oct 2025 12:27:42 +0200 Subject: [PATCH 45/60] fix(extras): adjust switch source/header shortcut (#6567) The command to switch header and source is now called `:LspClangdSwitchSourceHeader` and no longer `:ClangdSwitchSourceHeader`. ## Description This is just a small fix due to a command that has been renamed. I did not find the documentation but the relevant line in the code where the command is defined is here: - https://github.com/neovim/nvim-lspconfig/blob/e688b486fe9291f151eae7e5c0b5a5c4ef980847/lsp/clangd.lua#L92 ## Related Issue(s) I did not find any related issues. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/clangd.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/clangd.lua b/lua/lazyvim/plugins/extras/lang/clangd.lua index 0ba58aca..cac83194 100644 --- a/lua/lazyvim/plugins/extras/lang/clangd.lua +++ b/lua/lazyvim/plugins/extras/lang/clangd.lua @@ -60,7 +60,7 @@ return { -- Ensure mason installs the server clangd = { keys = { - { "ch", "ClangdSwitchSourceHeader", desc = "Switch Source/Header (C/C++)" }, + { "ch", "LspClangdSwitchSourceHeader", desc = "Switch Source/Header (C/C++)" }, }, root_markers = { "compile_commands.json", From 2c5eef7df7520fbc6fe0d90150cd26ac9e4f325b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sun, 19 Oct 2025 12:28:25 +0200 Subject: [PATCH 46/60] fix(copilot-chat): use up to date config for chat headers (#6543) The config format changed a while ago due to function calling support Signed-off-by: Tomas Slusny --- lua/lazyvim/plugins/extras/ai/copilot-chat.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lua/lazyvim/plugins/extras/ai/copilot-chat.lua b/lua/lazyvim/plugins/extras/ai/copilot-chat.lua index fbf4ee39..4c350b4e 100644 --- a/lua/lazyvim/plugins/extras/ai/copilot-chat.lua +++ b/lua/lazyvim/plugins/extras/ai/copilot-chat.lua @@ -8,8 +8,11 @@ return { user = user:sub(1, 1):upper() .. user:sub(2) return { auto_insert_mode = true, - question_header = " " .. user .. " ", - answer_header = " Copilot ", + headers = { + user = " " .. user .. " ", + assistant = " Copilot ", + tool = "󰊳 Tool ", + }, window = { width = 0.4, }, From 4086d44a0b5c576630c603c7b71c6be5198d9eaf Mon Sep 17 00:00:00 2001 From: Christoph Schmidpeter <3390179+ChristophSchmidpeter@users.noreply.github.com> Date: Sun, 19 Oct 2025 12:29:00 +0200 Subject: [PATCH 47/60] feat(lang/omnisharp): switch neotest adapter to vstest (#6540) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Replace `neotest-dotnet` with `neotest-vstest` in the Omnisharp extras. The maintainer of `neotest-dotnet` has announced possible archiving and recommended moving toward a vstest-based approach (see Issafalcon/neotest-dotnet#142). In addition, `neotest-dotnet` often fails to reliably discover tests (currently reproducible), while `neotest-vstest` works consistently in those same scenarios. `neotest-vstest` delegates to Microsoft’s VSTest engine, which provides: - Framework-agnostic discovery and execution (xUnit, NUnit, MSTest, etc.) - Support for both C# and F# - Parameterized test support - Compatibility with Microsoft.Testing.Platform going forward According to the `neotest-dotnet` maintainer, this vstest-based approach is more reliable and maintainable than parser-based discovery and is the recommended path going forward. ## Related Issue(s) - Ref: Issafalcon/neotest-dotnet#142 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. Co-authored-by: Christoph Schmidpeter --- lua/lazyvim/plugins/extras/lang/omnisharp.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/omnisharp.lua b/lua/lazyvim/plugins/extras/lang/omnisharp.lua index 07ba0490..e66304ac 100644 --- a/lua/lazyvim/plugins/extras/lang/omnisharp.lua +++ b/lua/lazyvim/plugins/extras/lang/omnisharp.lua @@ -104,12 +104,12 @@ return { "nvim-neotest/neotest", optional = true, dependencies = { - "Issafalcon/neotest-dotnet", + "Nsidorenco/neotest-vstest", }, opts = { adapters = { - ["neotest-dotnet"] = { - -- Here we can set options for neotest-dotnet + ["neotest-vstest"] = { + -- Here we can set options for neotest-vstest }, }, }, From 22152e958f3f7c2b732cb6429ccc90541e0ad17f Mon Sep 17 00:00:00 2001 From: Nguyen Hoai Nam <55802579+namnh198@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:30:58 +0700 Subject: [PATCH 48/60] fix(typescript): make_position_params with offset encoding. (#6277) Fixed for issue https://github.com/LazyVim/LazyVim/issues/6276 --- lua/lazyvim/plugins/extras/lang/typescript.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 64dcd394..ab66bea1 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -69,7 +69,8 @@ return { { "gD", function() - local params = vim.lsp.util.make_position_params() + local win = vim.api.nvim_get_current_win() + local params = vim.lsp.util.make_position_params(win, "utf-16") LazyVim.lsp.execute({ command = "typescript.goToSourceDefinition", arguments = { params.textDocument.uri, params.position }, From 706ec4443a33ec474f2329b5b806e9cdb85cce43 Mon Sep 17 00:00:00 2001 From: Theo Lemay <16546293+theol0403@users.noreply.github.com> Date: Sun, 19 Oct 2025 06:31:48 -0400 Subject: [PATCH 49/60] fix(vscode): don't sync undo/redo with vscode (#5957) ## Description Vscode-neovim maintainer here, https://github.com/LazyVim/LazyVim/pull/4983 should not have been merged, it creates more problems than it solves. For the longest time I was trying to figure out why undo is broken on my machine, didn't notice this slipped in. The fundamental issue is that vscode's undo points are based on a time-based heuristic, wheras neovim's undo points are based on atomic actions (delete, insert, etc). Vscode doesn't understand the context of what the user is doing, it just receives a stream of edits from neovim. Ultimately this results in multiple unrelated edits being undone with a single press of the u key, resulting in very confusing behavior. ## Related Issue(s) https://github.com/LazyVim/LazyVim/pull/4983 ## Screenshots Current https://github.com/user-attachments/assets/5ca33b0d-fe2e-49f9-aa17-66f3c42c0966 Expected https://github.com/user-attachments/assets/d577a1f3-efb2-4725-be50-bd0cf691252d ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. Co-authored-by: Theo Lemay --- lua/lazyvim/plugins/extras/vscode.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lua/lazyvim/plugins/extras/vscode.lua b/lua/lazyvim/plugins/extras/vscode.lua index 5115a2b4..92b7f9f0 100644 --- a/lua/lazyvim/plugins/extras/vscode.lua +++ b/lua/lazyvim/plugins/extras/vscode.lua @@ -39,10 +39,6 @@ vim.api.nvim_create_autocmd("User", { vim.keymap.set("n", "/", [[lua require('vscode').action('workbench.action.findInFiles')]]) vim.keymap.set("n", "ss", [[lua require('vscode').action('workbench.action.gotoSymbol')]]) - -- Keep undo/redo lists in sync with VsCode - vim.keymap.set("n", "u", "call VSCodeNotify('undo')") - vim.keymap.set("n", "", "call VSCodeNotify('redo')") - -- Navigate VSCode tabs like lazyvim buffers vim.keymap.set("n", "", "call VSCodeNotify('workbench.action.previousEditor')") vim.keymap.set("n", "", "call VSCodeNotify('workbench.action.nextEditor')") From 4a3702e050881fea262ccae980ae1ff9e849d275 Mon Sep 17 00:00:00 2001 From: Ethan Date: Sun, 19 Oct 2025 18:36:04 +0800 Subject: [PATCH 50/60] fix(extras): remove procMacro ignored (#6117) ## Description I think we should remove rust-analyzer procMacro.ignore because it will cause some diagnostics which are not expected. ## Related Issue(s) https://github.com/LazyVim/LazyVim/issues/6111 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/rust.lua | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/rust.lua b/lua/lazyvim/plugins/extras/lang/rust.lua index 048eadab..155195ad 100644 --- a/lua/lazyvim/plugins/extras/lang/rust.lua +++ b/lua/lazyvim/plugins/extras/lang/rust.lua @@ -85,11 +85,6 @@ return { }, procMacro = { enable = true, - ignored = { - ["async-trait"] = { "async_trait" }, - ["napi-derive"] = { "napi" }, - ["async-recursion"] = { "async_recursion" }, - }, }, files = { excludeDirs = { From 762a34d5ad95447b241287e8d540b657a699d141 Mon Sep 17 00:00:00 2001 From: Felix Rath Date: Sun, 19 Oct 2025 12:37:57 +0200 Subject: [PATCH 51/60] fix(extras/rust): fix config key for files.exclude (#5664) ## Description It seems like the key changed its name from `files.excludeDirs` to `files.exclude` at some point. At least that is the (only) name that can be found in the docs now: https://rust-analyzer.github.io/book/configuration.html (ctrl+f for "files.exclude") Also add `".jj"` as an excluded directory, which is like `".git"` but for jujutsu (https://jj-vcs.github.io/jj/latest/cli-reference/#jj-git-init). --- As an aside, `cargo.loadOutDirsFromCheck` also does not seem to exist (anymore). But I don't know more about that option, so I haven't touched it in this PR. ## Related Issue(s) Not sure if any. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/rust.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/rust.lua b/lua/lazyvim/plugins/extras/lang/rust.lua index 155195ad..5586f9e2 100644 --- a/lua/lazyvim/plugins/extras/lang/rust.lua +++ b/lua/lazyvim/plugins/extras/lang/rust.lua @@ -87,9 +87,10 @@ return { enable = true, }, files = { - excludeDirs = { + exclude = { ".direnv", ".git", + ".jj", ".github", ".gitlab", "bin", From 336e2c3ea67636c4eea3cf8f7538feb86b5a0610 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 19 Oct 2025 12:45:07 +0200 Subject: [PATCH 52/60] fix(blink): remove snippet expand override (no longer needed). Closes #6044 --- lua/lazyvim/plugins/extras/coding/blink.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lua/lazyvim/plugins/extras/coding/blink.lua b/lua/lazyvim/plugins/extras/coding/blink.lua index d5b9a57b..ccee9d79 100644 --- a/lua/lazyvim/plugins/extras/coding/blink.lua +++ b/lua/lazyvim/plugins/extras/coding/blink.lua @@ -37,9 +37,7 @@ return { ---@type blink.cmp.Config opts = { snippets = { - expand = function(snippet, _) - return LazyVim.cmp.expand(snippet) - end, + preset = "default", }, appearance = { From dfebe70b8d09514dd3ee85e12463f266f93c5dd7 Mon Sep 17 00:00:00 2001 From: CaueDosAnjos <141049846+CaueAnjos@users.noreply.github.com> Date: Sun, 19 Oct 2025 10:46:46 +0000 Subject: [PATCH 53/60] fix(lang.omnisharp): update CSharpier command and arguments for Mason compatibility (#6156) ## Description This PR updates the CSharpier integration in LazyVim to reflect changes in how Mason installs the formatter. Previously, Mason installed CSharpier as the `dotnet-csharpier` binary, which allowed running it without additional arguments. Now, Mason installs it simply as `csharpier`, requiring the explicit format argument for it to work correctly. This change updates the formatter command and arguments accordingly to ensure compatibility with the latest Mason installation and CSharpier CLI behavior. ## Changes Replaced `dotnet-csharpier` with `csharpier` as the executable command. Added the required `format` argument to the command invocation. ## Related Issue(s) Fixes #6155 ## Checklist I have read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/omnisharp.lua | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/omnisharp.lua b/lua/lazyvim/plugins/extras/lang/omnisharp.lua index e66304ac..63bbd486 100644 --- a/lua/lazyvim/plugins/extras/lang/omnisharp.lua +++ b/lua/lazyvim/plugins/extras/lang/omnisharp.lua @@ -27,12 +27,6 @@ return { formatters_by_ft = { cs = { "csharpier" }, }, - formatters = { - csharpier = { - command = "dotnet-csharpier", - args = { "--write-stdout" }, - }, - }, }, }, { From 7038687b2070f16cde1069f360be300203912527 Mon Sep 17 00:00:00 2001 From: Kian Kasad Date: Sun, 19 Oct 2025 03:47:17 -0700 Subject: [PATCH 54/60] chore(python): use debugpy-adapter executable for nvim-dap-python (#6080) ## Description Uses a less hacky and now officially-supported way of getting the debugpy DAP adapter path for nvim-dap-python. Since https://github.com/mfussenegger/nvim-dap-python/pull/184, nvim-dap-python can start the debugpy adapter using the `debugpy-adapter` executable. Since [Mason](https://github.com/mason-org/mason-registry/blob/f7c1c2fde2d1c79f8892dafc9528da1b78b56b25/packages/debugpy/package.yaml#L17) and [now debugpy itself](https://github.com/microsoft/debugpy/pull/1870) provide this executable, there's no need to get the `python` executable from debugpy's venv. I've gone with just `"debugpy-adapter"` rather than `LazyVim.get_pkg_path("debugpy", "debugpy-adapter")` so that a system-wide installation of debugpy can also be used. ## Related Issue(s) ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/python.lua | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/python.lua b/lua/lazyvim/plugins/extras/lang/python.lua index a02ded1f..7a77cbc6 100644 --- a/lua/lazyvim/plugins/extras/lang/python.lua +++ b/lua/lazyvim/plugins/extras/lang/python.lua @@ -103,11 +103,7 @@ return { { "dPc", function() require('dap-python').test_class() end, desc = "Debug Class", ft = "python" }, }, config = function() - if vim.fn.has("win32") == 1 then - require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/Scripts/pythonw.exe")) - else - require("dap-python").setup(LazyVim.get_pkg_path("debugpy", "/venv/bin/python")) - end + require("dap-python").setup("debugpy-adapter") end, }, }, From 97af4a23bccac85eb02e489f573db68863d6ed33 Mon Sep 17 00:00:00 2001 From: Michael Nikitochkin Date: Sun, 19 Oct 2025 12:47:59 +0200 Subject: [PATCH 55/60] feat(docker): associate 'Containerfile' with 'dockerfile' filetype (#5974) ## Description 'Containerfile' [1] is a supported alternative name for container build definitions. It is recognized by Docker and other container tools, and can help clarify intent in multi-container repositories or non-Docker-specific setups. [1]: https://github.com/containers/common/blob/main/docs/Containerfile.5.md ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/docker.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/docker.lua b/lua/lazyvim/plugins/extras/lang/docker.lua index ea26b013..ace79db8 100644 --- a/lua/lazyvim/plugins/extras/lang/docker.lua +++ b/lua/lazyvim/plugins/extras/lang/docker.lua @@ -2,7 +2,14 @@ return { recommended = function() return LazyVim.extras.wants({ ft = "dockerfile", - root = { "Dockerfile", "docker-compose.yml", "compose.yml", "docker-compose.yaml", "compose.yaml" }, + root = { + "Dockerfile", + "Containerfile", + "docker-compose.yml", + "compose.yml", + "docker-compose.yaml", + "compose.yaml" + }, }) end, { From a16739e3328c2687d96f868839c575765c49baad Mon Sep 17 00:00:00 2001 From: Jarryd Tilbrook Date: Sun, 19 Oct 2025 18:53:46 +0800 Subject: [PATCH 56/60] fix(util): add some kulala keymaps back to global (#5960) ## Description Some kulala keymaps are useful to access globally, such as the scratchpad. However, #4467 #4574 added all of them to http filetypes only This adds the scratchpad and replay last to global keymaps ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/util/rest.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/lazyvim/plugins/extras/util/rest.lua b/lua/lazyvim/plugins/extras/util/rest.lua index 6ae8424b..0fc08ced 100644 --- a/lua/lazyvim/plugins/extras/util/rest.lua +++ b/lua/lazyvim/plugins/extras/util/rest.lua @@ -8,8 +8,8 @@ return { "mistweaverco/kulala.nvim", ft = "http", keys = { - { "R", "", desc = "+Rest", ft = "http" }, - { "Rb", "lua require('kulala').scratchpad()", desc = "Open scratchpad", ft = "http" }, + { "R", "", desc = "+Rest" }, + { "Rb", "lua require('kulala').scratchpad()", desc = "Open scratchpad" }, { "Rc", "lua require('kulala').copy()", desc = "Copy as cURL", ft = "http" }, { "RC", "lua require('kulala').from_curl()", desc = "Paste from curl", ft = "http" }, { "Re", "lua require('kulala').set_selected_env()", desc = "Set environment", ft = "http" }, @@ -23,7 +23,7 @@ return { { "Rn", "lua require('kulala').jump_next()", desc = "Jump to next request", ft = "http" }, { "Rp", "lua require('kulala').jump_prev()", desc = "Jump to previous request", ft = "http" }, { "Rq", "lua require('kulala').close()", desc = "Close window", ft = "http" }, - { "Rr", "lua require('kulala').replay()", desc = "Replay the last request", ft = "http" }, + { "Rr", "lua require('kulala').replay()", desc = "Replay the last request" }, { "Rs", "lua require('kulala').run()", desc = "Send the request", ft = "http" }, { "RS", "lua require('kulala').show_stats()", desc = "Show stats", ft = "http" }, { "Rt", "lua require('kulala').toggle_view()", desc = "Toggle headers/body", ft = "http" }, From f6f72b90d41d9347b93a07d0b680195541f64c55 Mon Sep 17 00:00:00 2001 From: Igor Guerrero Date: Sun, 19 Oct 2025 04:54:41 -0600 Subject: [PATCH 57/60] fix(sql): fix autocomplete when `omni` is used as a `blink.cmp` source (#5652) ## Description I was trying the `omni` source with `blink.cmp` and I had an error which you can read more about in this `nvim-compe` issue: https://github.com/hrsh7th/nvim-compe/issues/286 but the message keeps showing up after setting that to `syntax` so I mark the default plugin as loaded, and it works as expected, I think there are more items returned but I cannot confirm that :). ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/sql.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lua/lazyvim/plugins/extras/lang/sql.lua b/lua/lazyvim/plugins/extras/lang/sql.lua index 070d26ff..955e228c 100644 --- a/lua/lazyvim/plugins/extras/lang/sql.lua +++ b/lua/lazyvim/plugins/extras/lang/sql.lua @@ -28,6 +28,11 @@ end local sql_ft = { "sql", "mysql", "plsql" } +-- disable nvim default `sql_completion` plugin to be compatible with blink.cmp's omni +-- while still showing some keywords from the syntax autocomplete sources +vim.g.omni_sql_default_compl_type = "syntax" +vim.g.loaded_sql_completion = true + return { recommended = function() return LazyVim.extras.wants({ From 9618e327edfb79d9cbb037a2039c4315a95df63f Mon Sep 17 00:00:00 2001 From: Lawrence Ho <203431+lawrenceho@users.noreply.github.com> Date: Sun, 19 Oct 2025 18:55:38 +0800 Subject: [PATCH 58/60] feat(java): enable `blink.cmp` capabilities to show signature documentation (#5218) ## Description Enable `blink.cmp` capabilities to show Java signature documentation during completion. See also: https://github.com/Saghen/blink.cmp/issues/151 ## Related Issue(s) ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/java.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/java.lua b/lua/lazyvim/plugins/extras/lang/java.lua index 4dd1d77f..72f31a63 100644 --- a/lua/lazyvim/plugins/extras/lang/java.lua +++ b/lua/lazyvim/plugins/extras/lang/java.lua @@ -169,7 +169,9 @@ return { }, settings = opts.settings, -- enable CMP capabilities - capabilities = LazyVim.has("cmp-nvim-lsp") and require("cmp_nvim_lsp").default_capabilities() or nil, + capabilities = LazyVim.has("blink.cmp") and require("blink.cmp").get_lsp_capabilities() or LazyVim.has( + "cmp-nvim-lsp" + ) and require("cmp_nvim_lsp").default_capabilities() or nil, }, opts.jdtls) -- Existing server will be reused if the root_dir matches. From c460e97d2b42d1e6099cb84f24f427ef865c8d4f Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 19 Oct 2025 12:57:09 +0200 Subject: [PATCH 59/60] style: format --- lua/lazyvim/plugins/extras/lang/docker.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/lang/docker.lua b/lua/lazyvim/plugins/extras/lang/docker.lua index ace79db8..a3c48c10 100644 --- a/lua/lazyvim/plugins/extras/lang/docker.lua +++ b/lua/lazyvim/plugins/extras/lang/docker.lua @@ -8,7 +8,7 @@ return { "docker-compose.yml", "compose.yml", "docker-compose.yaml", - "compose.yaml" + "compose.yaml", }, }) end, From 42840b2ffbfa9dd3c15e0ce7d1bec36d772a3ead Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Oct 2025 13:00:52 +0200 Subject: [PATCH 60/60] chore(main): release 15.9.0 (#6643) :robot: I have created a release *beep* *boop* --- ## [15.9.0](https://github.com/LazyVim/LazyVim/compare/v15.8.1...v15.9.0) (2025-10-19) ### Features * **docker:** associate 'Containerfile' with 'dockerfile' filetype ([#5974](https://github.com/LazyVim/LazyVim/issues/5974)) ([97af4a2](https://github.com/LazyVim/LazyVim/commit/97af4a23bccac85eb02e489f573db68863d6ed33)) * **extras.rest:** add keymap for changing environment ([#5678](https://github.com/LazyVim/LazyVim/issues/5678)) ([1da659d](https://github.com/LazyVim/LazyVim/commit/1da659db4a3fbcd6d171f3b38d0092ced0887e61)) * **java:** enable `blink.cmp` capabilities to show signature documentation ([#5218](https://github.com/LazyVim/LazyVim/issues/5218)) ([9618e32](https://github.com/LazyVim/LazyVim/commit/9618e327edfb79d9cbb037a2039c4315a95df63f)) * **lang/omnisharp:** switch neotest adapter to vstest ([#6540](https://github.com/LazyVim/LazyVim/issues/6540)) ([4086d44](https://github.com/LazyVim/LazyVim/commit/4086d44a0b5c576630c603c7b71c6be5198d9eaf)) * **neotest:** extra keymap to attach to a test ([#6198](https://github.com/LazyVim/LazyVim/issues/6198)) ([66e927f](https://github.com/LazyVim/LazyVim/commit/66e927fd9d0b0ff2886b9fe1465d9396461a2665)) ### Bug Fixes * **blink:** remove snippet expand override (no longer needed). Closes [#6044](https://github.com/LazyVim/LazyVim/issues/6044) ([336e2c3](https://github.com/LazyVim/LazyVim/commit/336e2c3ea67636c4eea3cf8f7538feb86b5a0610)) * **chezmoi:** add `hidden=false` to fzf picker ([#6095](https://github.com/LazyVim/LazyVim/issues/6095)) ([1aa1b59](https://github.com/LazyVim/LazyVim/commit/1aa1b59a7ec7cab61fa7b096db53df15ec5008e7)) * **copilot-chat:** use up to date config for chat headers ([#6543](https://github.com/LazyVim/LazyVim/issues/6543)) ([2c5eef7](https://github.com/LazyVim/LazyVim/commit/2c5eef7df7520fbc6fe0d90150cd26ac9e4f325b)) * **extras/rust:** fix config key for files.exclude ([#5664](https://github.com/LazyVim/LazyVim/issues/5664)) ([762a34d](https://github.com/LazyVim/LazyVim/commit/762a34d5ad95447b241287e8d540b657a699d141)) * **extras:** adjust switch source/header shortcut ([#6567](https://github.com/LazyVim/LazyVim/issues/6567)) ([b36b858](https://github.com/LazyVim/LazyVim/commit/b36b8589b62f55b181367afe954606c73233c0a1)) * **extras:** remove procMacro ignored ([#6117](https://github.com/LazyVim/LazyVim/issues/6117)) ([4a3702e](https://github.com/LazyVim/LazyVim/commit/4a3702e050881fea262ccae980ae1ff9e849d275)) * **lang.omnisharp:** update CSharpier command and arguments for Mason compatibility ([#6156](https://github.com/LazyVim/LazyVim/issues/6156)) ([dfebe70](https://github.com/LazyVim/LazyVim/commit/dfebe70b8d09514dd3ee85e12463f266f93c5dd7)) * **lang.rust:** rust-analyzer hanging on root scanned ([#6178](https://github.com/LazyVim/LazyVim/issues/6178)) ([7bf8c22](https://github.com/LazyVim/LazyVim/commit/7bf8c22c56283fa6d5d35246dcd0f49d37a5c709)) * **latex:** ensure tex extra installs latex tree-sitter parser ([#6357](https://github.com/LazyVim/LazyVim/issues/6357)) ([ae74622](https://github.com/LazyVim/LazyVim/commit/ae74622e6666ea4c3e6c58c4ef2d3f313d8e8f20)) * **mini.animate:** schedule the toggle mapping to correctly take effect ([#6483](https://github.com/LazyVim/LazyVim/issues/6483)) ([bd23357](https://github.com/LazyVim/LazyVim/commit/bd233579a66018f526b6b0970e33afde4cde399e)) * **sql:** fix autocomplete when `omni` is used as a `blink.cmp` source ([#5652](https://github.com/LazyVim/LazyVim/issues/5652)) ([f6f72b9](https://github.com/LazyVim/LazyVim/commit/f6f72b90d41d9347b93a07d0b680195541f64c55)) * **treesitter:** attach textobject keymaps to existing buffers on load. Closes [#6642](https://github.com/LazyVim/LazyVim/issues/6642). Closes [#6639](https://github.com/LazyVim/LazyVim/issues/6639) ([92a7728](https://github.com/LazyVim/LazyVim/commit/92a77287321236f52ff38648a38cf314ab223137)) * **typescript:** make_position_params with offset encoding. ([#6277](https://github.com/LazyVim/LazyVim/issues/6277)) ([22152e9](https://github.com/LazyVim/LazyVim/commit/22152e958f3f7c2b732cb6429ccc90541e0ad17f)) * **ui:** ignore sidekick_terminal in mini-indentscope ([#6619](https://github.com/LazyVim/LazyVim/issues/6619)) ([f0b32b5](https://github.com/LazyVim/LazyVim/commit/f0b32b5955889d4d2d3636a52d2ddf5d113646df)) * **util:** add some kulala keymaps back to global ([#5960](https://github.com/LazyVim/LazyVim/issues/5960)) ([a16739e](https://github.com/LazyVim/LazyVim/commit/a16739e3328c2687d96f868839c575765c49baad)) * **vscode:** don't sync undo/redo with vscode ([#5957](https://github.com/LazyVim/LazyVim/issues/5957)) ([706ec44](https://github.com/LazyVim/LazyVim/commit/706ec4443a33ec474f2329b5b806e9cdb85cce43)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/.release-please-manifest.json | 2 +- CHANGELOG.md | 31 +++++++++++++++++++++++++++ lua/lazyvim/config/init.lua | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index cbea53b1..67ff2e28 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "15.8.1" + ".": "15.9.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 033109a4..91539d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## [15.9.0](https://github.com/LazyVim/LazyVim/compare/v15.8.1...v15.9.0) (2025-10-19) + + +### Features + +* **docker:** associate 'Containerfile' with 'dockerfile' filetype ([#5974](https://github.com/LazyVim/LazyVim/issues/5974)) ([97af4a2](https://github.com/LazyVim/LazyVim/commit/97af4a23bccac85eb02e489f573db68863d6ed33)) +* **extras.rest:** add keymap for changing environment ([#5678](https://github.com/LazyVim/LazyVim/issues/5678)) ([1da659d](https://github.com/LazyVim/LazyVim/commit/1da659db4a3fbcd6d171f3b38d0092ced0887e61)) +* **java:** enable `blink.cmp` capabilities to show signature documentation ([#5218](https://github.com/LazyVim/LazyVim/issues/5218)) ([9618e32](https://github.com/LazyVim/LazyVim/commit/9618e327edfb79d9cbb037a2039c4315a95df63f)) +* **lang/omnisharp:** switch neotest adapter to vstest ([#6540](https://github.com/LazyVim/LazyVim/issues/6540)) ([4086d44](https://github.com/LazyVim/LazyVim/commit/4086d44a0b5c576630c603c7b71c6be5198d9eaf)) +* **neotest:** extra keymap to attach to a test ([#6198](https://github.com/LazyVim/LazyVim/issues/6198)) ([66e927f](https://github.com/LazyVim/LazyVim/commit/66e927fd9d0b0ff2886b9fe1465d9396461a2665)) + + +### Bug Fixes + +* **blink:** remove snippet expand override (no longer needed). Closes [#6044](https://github.com/LazyVim/LazyVim/issues/6044) ([336e2c3](https://github.com/LazyVim/LazyVim/commit/336e2c3ea67636c4eea3cf8f7538feb86b5a0610)) +* **chezmoi:** add `hidden=false` to fzf picker ([#6095](https://github.com/LazyVim/LazyVim/issues/6095)) ([1aa1b59](https://github.com/LazyVim/LazyVim/commit/1aa1b59a7ec7cab61fa7b096db53df15ec5008e7)) +* **copilot-chat:** use up to date config for chat headers ([#6543](https://github.com/LazyVim/LazyVim/issues/6543)) ([2c5eef7](https://github.com/LazyVim/LazyVim/commit/2c5eef7df7520fbc6fe0d90150cd26ac9e4f325b)) +* **extras/rust:** fix config key for files.exclude ([#5664](https://github.com/LazyVim/LazyVim/issues/5664)) ([762a34d](https://github.com/LazyVim/LazyVim/commit/762a34d5ad95447b241287e8d540b657a699d141)) +* **extras:** adjust switch source/header shortcut ([#6567](https://github.com/LazyVim/LazyVim/issues/6567)) ([b36b858](https://github.com/LazyVim/LazyVim/commit/b36b8589b62f55b181367afe954606c73233c0a1)) +* **extras:** remove procMacro ignored ([#6117](https://github.com/LazyVim/LazyVim/issues/6117)) ([4a3702e](https://github.com/LazyVim/LazyVim/commit/4a3702e050881fea262ccae980ae1ff9e849d275)) +* **lang.omnisharp:** update CSharpier command and arguments for Mason compatibility ([#6156](https://github.com/LazyVim/LazyVim/issues/6156)) ([dfebe70](https://github.com/LazyVim/LazyVim/commit/dfebe70b8d09514dd3ee85e12463f266f93c5dd7)) +* **lang.rust:** rust-analyzer hanging on root scanned ([#6178](https://github.com/LazyVim/LazyVim/issues/6178)) ([7bf8c22](https://github.com/LazyVim/LazyVim/commit/7bf8c22c56283fa6d5d35246dcd0f49d37a5c709)) +* **latex:** ensure tex extra installs latex tree-sitter parser ([#6357](https://github.com/LazyVim/LazyVim/issues/6357)) ([ae74622](https://github.com/LazyVim/LazyVim/commit/ae74622e6666ea4c3e6c58c4ef2d3f313d8e8f20)) +* **mini.animate:** schedule the toggle mapping to correctly take effect ([#6483](https://github.com/LazyVim/LazyVim/issues/6483)) ([bd23357](https://github.com/LazyVim/LazyVim/commit/bd233579a66018f526b6b0970e33afde4cde399e)) +* **sql:** fix autocomplete when `omni` is used as a `blink.cmp` source ([#5652](https://github.com/LazyVim/LazyVim/issues/5652)) ([f6f72b9](https://github.com/LazyVim/LazyVim/commit/f6f72b90d41d9347b93a07d0b680195541f64c55)) +* **treesitter:** attach textobject keymaps to existing buffers on load. Closes [#6642](https://github.com/LazyVim/LazyVim/issues/6642). Closes [#6639](https://github.com/LazyVim/LazyVim/issues/6639) ([92a7728](https://github.com/LazyVim/LazyVim/commit/92a77287321236f52ff38648a38cf314ab223137)) +* **typescript:** make_position_params with offset encoding. ([#6277](https://github.com/LazyVim/LazyVim/issues/6277)) ([22152e9](https://github.com/LazyVim/LazyVim/commit/22152e958f3f7c2b732cb6429ccc90541e0ad17f)) +* **ui:** ignore sidekick_terminal in mini-indentscope ([#6619](https://github.com/LazyVim/LazyVim/issues/6619)) ([f0b32b5](https://github.com/LazyVim/LazyVim/commit/f0b32b5955889d4d2d3636a52d2ddf5d113646df)) +* **util:** add some kulala keymaps back to global ([#5960](https://github.com/LazyVim/LazyVim/issues/5960)) ([a16739e](https://github.com/LazyVim/LazyVim/commit/a16739e3328c2687d96f868839c575765c49baad)) +* **vscode:** don't sync undo/redo with vscode ([#5957](https://github.com/LazyVim/LazyVim/issues/5957)) ([706ec44](https://github.com/LazyVim/LazyVim/commit/706ec4443a33ec474f2329b5b806e9cdb85cce43)) + ## [15.8.1](https://github.com/LazyVim/LazyVim/compare/v15.8.0...v15.8.1) (2025-10-18) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index ab41d775..dc8972c7 100644 --- a/lua/lazyvim/config/init.lua +++ b/lua/lazyvim/config/init.lua @@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util") ---@class LazyVimConfig: LazyVimOptions local M = {} -M.version = "15.8.1" -- x-release-please-version +M.version = "15.9.0" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions