From 064e61058b6bbaef02a6143662628d105695b8e5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 16:14:16 +0100 Subject: [PATCH 01/25] chore(update): update repository (#6712) Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action Co-authored-by: folke <292349+folke@users.noreply.github.com> --- .markdownlint-cli2.yaml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .markdownlint-cli2.yaml diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml new file mode 100644 index 00000000..fc2ac02c --- /dev/null +++ b/.markdownlint-cli2.yaml @@ -0,0 +1,3 @@ +config: + MD013: false + MD033: false From 6b52a3059e52eed062b6ff3f56e70cffcbf879fe Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Fri, 31 Oct 2025 17:28:02 +0100 Subject: [PATCH 02/25] fix(treesitter): remove node requirement --- lua/lazyvim/util/treesitter.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/lua/lazyvim/util/treesitter.lua b/lua/lazyvim/util/treesitter.lua index e8688a6f..c21908c6 100644 --- a/lua/lazyvim/util/treesitter.lua +++ b/lua/lazyvim/util/treesitter.lua @@ -80,7 +80,6 @@ function M.check() ["C compiler"] = have_cc, tar = have("tar"), curl = have("curl"), - node = have("node"), } local ok = true for _, v in pairs(ret) do From 5e981f9a8cd75eb6f49756e188411037b82b8045 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 1 Nov 2025 13:41:53 +0100 Subject: [PATCH 03/25] feat(snacks): `snacks.gh` integration. Enabled by default, unless the `util.octo` extra is enabled. --- lua/lazyvim/config/init.lua | 4 +++- lua/lazyvim/plugins/extras/editor/snacks_picker.lua | 6 +++++- lua/lazyvim/plugins/extras/util/octo.lua | 10 ++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index 5e56a073..628e1099 100644 --- a/lua/lazyvim/config/init.lua +++ b/lua/lazyvim/config/init.lua @@ -34,7 +34,9 @@ local defaults = { dots = "󰇘", }, ft = { - octo = "", + octo = " ", + gh = " ", + ["markdown.gh"] = " ", }, dap = { Stopped = { "󰁕 ", "DiagnosticWarn", "DapStoppedLine" }, diff --git a/lua/lazyvim/plugins/extras/editor/snacks_picker.lua b/lua/lazyvim/plugins/extras/editor/snacks_picker.lua index 48eea01a..6220bfdf 100644 --- a/lua/lazyvim/plugins/extras/editor/snacks_picker.lua +++ b/lua/lazyvim/plugins/extras/editor/snacks_picker.lua @@ -73,9 +73,13 @@ return { { "fp", function() Snacks.picker.projects() end, desc = "Projects" }, -- git { "gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" }, - { "gD", function() Snacks.picker.git_diff({ base = "origin" }) end, desc = "Git Diff (origin)" }, + { "gD", function() Snacks.picker.git_diff({ base = "origin", group = true }) end, desc = "Git Diff (origin)" }, { "gs", function() Snacks.picker.git_status() end, desc = "Git Status" }, { "gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" }, + { "gi", function() Snacks.picker.gh_issue() end, desc = "GitHub Issues (open)" }, + { "gI", function() Snacks.picker.gh_issue({ state = "all" }) end, desc = "GitHub Issues (all)" }, + { "gp", function() Snacks.picker.gh_pr() end, desc = "GitHub Pull Requests (open)" }, + { "gP", function() Snacks.picker.gh_pr({ state = "all" }) end, desc = "GitHub Pull Requests (all)" }, -- Grep { "sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" }, { "sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" }, diff --git a/lua/lazyvim/plugins/extras/util/octo.lua b/lua/lazyvim/plugins/extras/util/octo.lua index d3316f5e..5637b8fd 100644 --- a/lua/lazyvim/plugins/extras/util/octo.lua +++ b/lua/lazyvim/plugins/extras/util/octo.lua @@ -3,6 +3,16 @@ return { -- depends on the git extra for highlighting and auto-completion of github issues/prs { import = "lazyvim.plugins.extras.lang.git" }, + { + "folke/snacks.nvim", + keys = { -- disable conflicting keymaps + { "gi", false }, + { "gI", false }, + { "gp", false }, + { "gP", false }, + }, + }, + -- Octo { "pwntester/octo.nvim", From 28db03f958d58dfff3c647ce28fdc1cb88ac158d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 13:44:04 +0100 Subject: [PATCH 04/25] chore(main): release 15.13.0 :robot: I have created a release *beep* *boop* --- ## [15.13.0](https://github.com/LazyVim/LazyVim/compare/v15.12.2...v15.13.0) (2025-11-01) ### Features * **snacks:** `snacks.gh` integration. Enabled by default, unless the `util.octo` extra is enabled. ([5e981f9](https://github.com/LazyVim/LazyVim/commit/5e981f9a8cd75eb6f49756e188411037b82b8045)) ### Bug Fixes * **treesitter:** remove node requirement ([6b52a30](https://github.com/LazyVim/LazyVim/commit/6b52a3059e52eed062b6ff3f56e70cffcbf879fe)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- .github/.release-please-manifest.json | 2 +- CHANGELOG.md | 12 ++++++++++++ lua/lazyvim/config/init.lua | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index 350a6875..27277755 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "15.12.2" + ".": "15.13.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index d81a5b74..24045345 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [15.13.0](https://github.com/LazyVim/LazyVim/compare/v15.12.2...v15.13.0) (2025-11-01) + + +### Features + +* **snacks:** `snacks.gh` integration. Enabled by default, unless the `util.octo` extra is enabled. ([5e981f9](https://github.com/LazyVim/LazyVim/commit/5e981f9a8cd75eb6f49756e188411037b82b8045)) + + +### Bug Fixes + +* **treesitter:** remove node requirement ([6b52a30](https://github.com/LazyVim/LazyVim/commit/6b52a3059e52eed062b6ff3f56e70cffcbf879fe)) + ## [15.12.2](https://github.com/LazyVim/LazyVim/compare/v15.12.1...v15.12.2) (2025-10-26) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index 628e1099..562a0687 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.12.2" -- x-release-please-version +M.version = "15.13.0" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions From 42c9f7152b9bd1a4f739b115390370c208dc2a55 Mon Sep 17 00:00:00 2001 From: Thomas Vandal Date: Mon, 3 Nov 2025 01:51:07 -0500 Subject: [PATCH 05/25] feat(treesitter): support query table in treesitter-textobjects mappings (#6736) ## Description `treesitter-textobjects` mappings accept a table query (for the "move" mappings, at least, I haven't checked the others). Currently, in LazyVim, using a table causes an error due to the assumption that `query` is a string in the `config` function that creates the keymap description. This PR adds a simple loop to gather the queries from a table and join them with "or" in the description. Here is an example config and the resulting error. Everything works as expected with the PR and string (single) queries still behave as expected. ```lua { "nvim-treesitter/nvim-treesitter-textobjects", opts = { move = { keys = { goto_next_start = { ["]j"] = { "@function.outer", "@class.outer" } }, goto_next_end = { ["]J"] = { "@function.outer", "@class.outer" } }, goto_previous_start = { ["[j"] = { "@function.outer", "@class.outer" } }, goto_previous_end = { ["[J"] = { "@function.outer", "@class.outer" } }, }, }, }, } ``` ```lua Failed to run `config` for nvim-treesitter-textobjects ...vim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:174: attempt to call method 'gsub' (a nil value) # stacktrace: - repos/nvim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:174 - vim/shared.lua:0 _in_ **tbl_map** - repos/nvim-local/opt/LazyVim/lua/lazyvim/plugins/treesitter.lua:197 _in_ **config** ``` ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/treesitter.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 7fee6c38..4497ff1c 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -171,8 +171,14 @@ return { 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) + local queries = type(query) == "table" and query or { query } + local parts = {} + for _, q in ipairs(queries) do + local part = q:gsub("@", ""):gsub("%..*", "") + part = part:sub(1, 1):upper() .. part:sub(2) + table.insert(parts, part) + end + local desc = table.concat(parts, " or ") 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 From a507822c0f67df661d1411f9274a65ca9cc832f5 Mon Sep 17 00:00:00 2001 From: AK47are <54732151+AK47are@users.noreply.github.com> Date: Thu, 6 Nov 2025 19:40:40 +0800 Subject: [PATCH 06/25] fix(terminal): add -NoProfile to powershell shellcmdflag (#6757) ## Description changing the PowerShell profile might accidentally cause errors in Neovim (see [issue](https://github.com/LazyVim/LazyVim/issues/4805)), which is a subtle bug. Add the `-NoProfile` flag to ensure Neovim is not affected by profile. ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/util/terminal.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/util/terminal.lua b/lua/lazyvim/util/terminal.lua index 0e1af758..4270d9c0 100644 --- a/lua/lazyvim/util/terminal.lua +++ b/lua/lazyvim/util/terminal.lua @@ -18,7 +18,7 @@ function M.setup(shell) -- Setting shell command flags vim.o.shellcmdflag = - "-NoLogo -NonInteractive -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();$PSDefaultParameterValues['Out-File:Encoding']='utf8';$PSStyle.OutputRendering='plaintext';Remove-Alias -Force -ErrorAction SilentlyContinue tee;" + "-NoProfile -NoLogo -NonInteractive -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();$PSDefaultParameterValues['Out-File:Encoding']='utf8';$PSStyle.OutputRendering='plaintext';Remove-Alias -Force -ErrorAction SilentlyContinue tee;" -- Setting shell redirection vim.o.shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode' From c64a61734fc9d45470a72603395c02137802bc6f Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:35:25 +0200 Subject: [PATCH 07/25] fix(terminal): partially revert previous mappings (#6770) ## Description Commit 4efd0e2bea2a387d6fcdea8cf36a62049e8bafed introduced some changes to terminal mappings. I tested in a new LazyVim installation and `sidekick.nvim` is not affected by `` any more. The mappings `hide_underscore` and `hide_slash` don't let user to create new terminals with `2`, `3` and so on. Instead they hide the terminal and user can't open split terminals next to each other any more. Therefore, I believe it would be a better default to revert these 2 mappings explicitly. ## Related Issue(s) None ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/util.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/lua/lazyvim/plugins/util.lua b/lua/lazyvim/plugins/util.lua index 0357c3fb..8d8aa220 100644 --- a/lua/lazyvim/plugins/util.lua +++ b/lua/lazyvim/plugins/util.lua @@ -23,8 +23,6 @@ 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 60fea6236e342e1f4aa34d078461746d5f587c74 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 1 Mar 2026 09:17:53 +0100 Subject: [PATCH 08/25] fix(news): resolve news.txt from $VIMRUNTIME first Plugins that ship their own `doc/news.txt` (e.g. rainbow-delimiters.nvim) can shadow Neovim's bundled file when using `nvim_get_runtime_file()`. First check $VIMRUNTIME, then fall back to the full runtimepath. Fixes #7019 --- lua/lazyvim/util/news.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/util/news.lua b/lua/lazyvim/util/news.lua index f473f3a3..c891133f 100644 --- a/lua/lazyvim/util/news.lua +++ b/lua/lazyvim/util/news.lua @@ -51,7 +51,9 @@ function M.open(file, opts) end file = plugin.dir .. "/" .. file elseif opts.rtp then - file = vim.api.nvim_get_runtime_file(file, false)[1] + -- first check if file exists in VIMRUNTIME, then check the full runtimepath + local path = vim.env.VIMRUNTIME .. "/" .. file --[[@as string]] + file = vim.uv.fs_stat(path) and path or vim.api.nvim_get_runtime_file(file, false)[1] end if not file then From 244af66f8b4e376d60c6604f9b3fd758165f5799 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 1 Mar 2026 09:30:39 +0100 Subject: [PATCH 09/25] fix(leap): update urls to new leap.nvim repo. Fixes #6958 --- lua/lazyvim/plugins/extras/editor/leap.lua | 4 ++-- lua/lazyvim/util/plugin.lua | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/lazyvim/plugins/extras/editor/leap.lua b/lua/lazyvim/plugins/extras/editor/leap.lua index 3fe4c5e7..6e82423c 100644 --- a/lua/lazyvim/plugins/extras/editor/leap.lua +++ b/lua/lazyvim/plugins/extras/editor/leap.lua @@ -4,7 +4,7 @@ return { -- easily jump to any location and enhanced f/t motions for Leap { - "ggandor/flit.nvim", + url = "https://codeberg.org/andyg/leap.nvim.git", enabled = true, keys = function() ---@type LazyKeysSpec[] @@ -17,7 +17,7 @@ return { opts = { labeled_modes = "nx" }, }, { - "ggandor/leap.nvim", + url = "https://codeberg.org/andyg/leap.nvim.git", enabled = true, keys = { { "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" }, diff --git a/lua/lazyvim/util/plugin.lua b/lua/lazyvim/util/plugin.lua index 02e6834f..696665e6 100644 --- a/lua/lazyvim/util/plugin.lua +++ b/lua/lazyvim/util/plugin.lua @@ -42,6 +42,7 @@ M.renames = { ["markdown.nvim"] = "render-markdown.nvim", ["williamboman/mason.nvim"] = "mason-org/mason.nvim", ["williamboman/mason-lspconfig.nvim"] = "mason-org/mason-lspconfig.nvim", + ["ggandor/leap.nvim"] = "https://codeberg.org/andyg/leap.nvim.git", } function M.save_core() From a4e19e9c9c939c1a3fc2f30ffefe37311d3ecadf Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 10:31:44 +0200 Subject: [PATCH 10/25] fix(util.lsp): `LazyVim.lsp.execute` only request single client (#6904) ## Description `LazyVim.lsp.execute` uses `vim.lsp.buf_request` which sends the request to all attached clients. `LazyVim.lsp.execute` seems to me to be the equivalent of [vim.lsp.buf.execute_command](https://github.com/neovim/neovim/blob/922816877febf397fe854f01d8013a510d73f1d2/runtime/lua/vim/lsp/buf.lua#L1366-L1376), but adds the option to also open in Trouble. Otherwise the request is being made the same way. This command will be deprecated in 0.12 and it's advised to use `client:exec_cmd` instead. Since LazyVim supports Neovim >=0.11.2, it makes sense to refactor the corresponding codeblock and use `client:cmd_exec` instead (it's already available in Neovim 0.11). I only changed the necessary parts where `vim.lsp.buf_request` was being used and not Trouble (when `opts.open = true`), since I'm not familiar with its codebase. That's also why I went for extending `params` in the `else` branch instead of adding `title` into original `params`, since I didn't know how Trouble will react to this change. Not sure if maybe there also needs to be some change there. ## Related Issue(s) Fixes #6900 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/elixir.lua | 4 ++++ lua/lazyvim/plugins/extras/lang/typescript.lua | 6 +++++- lua/lazyvim/plugins/extras/lang/typst.lua | 2 ++ lua/lazyvim/util/lsp.lua | 12 +++++++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/elixir.lua b/lua/lazyvim/plugins/extras/lang/elixir.lua index 289e50df..1be9c846 100644 --- a/lua/lazyvim/plugins/extras/lang/elixir.lua +++ b/lua/lazyvim/plugins/extras/lang/elixir.lua @@ -16,6 +16,8 @@ return { function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ + title = "toPipe", + filter = "elixirls", command = "manipulatePipes:serverid", arguments = { "toPipe", params.textDocument.uri, params.position.line, params.position.character }, }) @@ -27,6 +29,8 @@ return { function() local params = vim.lsp.util.make_position_params() LazyVim.lsp.execute({ + title = "fromPipe", + filter = "elixirls", command = "manipulatePipes:serverid", arguments = { "fromPipe", params.textDocument.uri, params.position.line, params.position.character }, }) diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 101b83f2..8acbc46a 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -113,7 +113,11 @@ return { { "cV", function() - LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" }) + LazyVim.lsp.execute({ + title = "Select TypeScript Version", + filter = "vtsls", + command = "typescript.selectTypeScriptVersion", + }) end, desc = "Select TS workspace version", }, diff --git a/lua/lazyvim/plugins/extras/lang/typst.lua b/lua/lazyvim/plugins/extras/lang/typst.lua index 099a6861..9f605351 100644 --- a/lua/lazyvim/plugins/extras/lang/typst.lua +++ b/lua/lazyvim/plugins/extras/lang/typst.lua @@ -24,6 +24,8 @@ return { local buf_name = vim.api.nvim_buf_get_name(0) local file_name = vim.fn.fnamemodify(buf_name, ":t") LazyVim.lsp.execute({ + title = "Pin Main", + filter = "tinymist", command = "tinymist.pinMain", arguments = { buf_name }, }) diff --git a/lua/lazyvim/util/lsp.lua b/lua/lazyvim/util/lsp.lua index 90a6a3c7..83a39cd9 100644 --- a/lua/lazyvim/util/lsp.lua +++ b/lua/lazyvim/util/lsp.lua @@ -70,9 +70,18 @@ M.action = setmetatable({}, { ---@class LspCommand: lsp.ExecuteCommandParams ---@field open? boolean ---@field handler? lsp.Handler +---@field filter? string|vim.lsp.get_clients.Filter +---@field title? string ---@param opts LspCommand function M.execute(opts) + local filter = opts.filter or {} + filter = type(filter) == "string" and { name = filter } or filter + local buf = vim.api.nvim_get_current_buf() + + ---@cast filter vim.lsp.get_clients.Filter + local client = vim.lsp.get_clients(LazyVim.merge({}, filter, { bufnr = buf }))[1] + local params = { command = opts.command, arguments = opts.arguments, @@ -83,7 +92,8 @@ function M.execute(opts) params = params, }) else - return vim.lsp.buf_request(0, "workspace/executeCommand", params, opts.handler) + vim.list_extend(params, { title = opts.title }) + return client:exec_cmd(params, { bufnr = buf }, opts.handler) end end From 27824d79a952c54cd9d93c85a699543e4a031dd4 Mon Sep 17 00:00:00 2001 From: akioweh <0@akioweh.com> Date: Sun, 1 Mar 2026 08:33:20 +0000 Subject: [PATCH 11/25] fix(editor.overseer): migrate to v2 (#6907) ## Description Overseer.nvim recently-ish released v2. This PR updates the extras config according to the breaking changes. A few commands were removed and the `bindings` config key was renamed to `keymaps`. I've also taken the liberty of marking the plugin as not lazy since it lazy-loads itself. The impact on startup is ~<1ms, which I think is acceptable over lazy.nvim command/keymap listener overhead, but this is open to discussion :shrug: ## Related Issue(s) fixes #6876 ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- .../plugins/extras/editor/overseer.lua | 28 ++++--------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/lua/lazyvim/plugins/extras/editor/overseer.lua b/lua/lazyvim/plugins/extras/editor/overseer.lua index 373c0029..c29a13a4 100644 --- a/lua/lazyvim/plugins/extras/editor/overseer.lua +++ b/lua/lazyvim/plugins/extras/editor/overseer.lua @@ -8,29 +8,20 @@ return { }, { "stevearc/overseer.nvim", + lazy = false, -- plugin is self-lazy-loading cmd = { "OverseerOpen", "OverseerClose", "OverseerToggle", - "OverseerSaveBundle", - "OverseerLoadBundle", - "OverseerDeleteBundle", - "OverseerRunCmd", "OverseerRun", - "OverseerInfo", - "OverseerBuild", - "OverseerQuickAction", "OverseerTaskAction", - "OverseerClearCache", }, opts = { dap = false, task_list = { - bindings = { - [""] = false, + keymaps = { [""] = false, [""] = false, - [""] = false, }, }, form = { @@ -38,11 +29,6 @@ return { winblend = 0, }, }, - confirm = { - win_opts = { - winblend = 0, - }, - }, task_win = { win_opts = { winblend = 0, @@ -51,13 +37,9 @@ return { }, -- stylua: ignore keys = { - { "ow", "OverseerToggle", desc = "Task list" }, - { "oo", "OverseerRun", desc = "Run task" }, - { "oq", "OverseerQuickAction", desc = "Action recent task" }, - { "oi", "OverseerInfo", desc = "Overseer Info" }, - { "ob", "OverseerBuild", desc = "Task builder" }, - { "ot", "OverseerTaskAction", desc = "Task action" }, - { "oc", "OverseerClearCache", desc = "Clear cache" }, + { "ow", "OverseerToggle!", desc = "Task list" }, + { "oo", "OverseerRun", desc = "Run task" }, + { "ot", "OverseerTaskAction", desc = "Task action" }, }, }, { From ecd31f844e1004165608b32d92adcd3c6c7d2d80 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 1 Mar 2026 10:04:26 +0100 Subject: [PATCH 12/25] test(extras): handle plugins using `url` instead of short format Co-Authored-By: Claude Opus 4.6 --- tests/extras/extra_spec.lua | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/extras/extra_spec.lua b/tests/extras/extra_spec.lua index f383c4b9..14f8d741 100644 --- a/tests/extras/extra_spec.lua +++ b/tests/extras/extra_spec.lua @@ -77,10 +77,12 @@ describe("Extra", function() it("it has no renamed plugins", function() for _, p in pairs(spec.plugins) do local short_url = p[1] - assert( - not LazyVim.plugin.renames[short_url], - "Plugin " .. short_url .. " has been renamed to " .. (LazyVim.plugin.renames[short_url] or "") - ) + if short_url then + assert( + not LazyVim.plugin.renames[short_url], + "Plugin " .. short_url .. " has been renamed to " .. (LazyVim.plugin.renames[short_url] or "") + ) + end end end) From 8652c9570377678a78ecb19dbd33695e0e4ec4fc Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:06:18 +0200 Subject: [PATCH 13/25] fix(vtsls): remove redundant deno logic, upstreamed in `nvim-lspconfig` (#7011) ## Description Since https://github.com/neovim/nvim-lspconfig/pull/4304 `nvim-lspconfig` has inherent deno logic to disambiguate between deno/non-deno projects. I believe it'd be better to remove the logic from LazyVim, since it might lead to issues because of different behavior compared to `nvim-lspconfig` defaults (whose logic doesn't only rely on the existence of `deno/json`, but also looks for lock files and takes into account which is the largest path with regards to the found pattern files). It'd be better for users to change `root_dir` themselves if they don't agree with the inherent logic. ## Related Issue(s) None ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- .../plugins/extras/lang/typescript.lua | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 8acbc46a..bc91e830 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -136,28 +136,6 @@ return { return true end, vtsls = function(_, opts) - if vim.lsp.config.denols and vim.lsp.config.vtsls then - ---@param server string - local resolve = function(server) - local markers, root_dir = vim.lsp.config[server].root_markers, vim.lsp.config[server].root_dir - vim.lsp.config(server, { - root_dir = function(bufnr, on_dir) - local is_deno = vim.fs.root(bufnr, { "deno.json", "deno.jsonc" }) ~= nil - if is_deno == (server == "denols") then - if root_dir then - return root_dir(bufnr, on_dir) - elseif type(markers) == "table" then - local root = vim.fs.root(bufnr, markers) - return root and on_dir(root) - end - end - end, - }) - end - resolve("denols") - resolve("vtsls") - end - Snacks.util.lsp.on({ name = "vtsls" }, function(buffer, client) client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) ---@type string, string, lsp.Range From 92607e79e09a2761d930877a09edc00438b97fc3 Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:08:09 +0200 Subject: [PATCH 14/25] fix(treesitter): remove deleted jsonc parser (#6848) ## Description https://github.com/nvim-treesitter/nvim-treesitter/commit/d2350758b39dce3593ffa8b058f863ea4cfa5b0e removed parsers not hosted on Github, `jsonc` among them. Remove it from LazyVim as well. On a fresh new installation, there's no problem and it doesn't even install, but on existing installation you get an error when updating about parser not available. 2025-12-07_11-24 ## Related Issue(s) None ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/treesitter.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index 4497ff1c..eb3ebf61 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -37,7 +37,6 @@ return { "javascript", "jsdoc", "json", - "jsonc", "lua", "luadoc", "luap", From 16713e6e1200eb90ad4b4a394bb7254fb5612484 Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:11:09 +0200 Subject: [PATCH 15/25] fix(treesitter): fix `]c` textobject mappings when in diff mode (#6911) ## Description It seems that after https://github.com/LazyVim/LazyVim/commit/5985ca0cf1a0c1ddee8b2b718c730f988cec7001 the default `]c` Neovim mapping in diff mode broke. This is an attempt to fix that. ## Related Issue(s) None, rather discussion #6910. ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/treesitter.lua | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lua/lazyvim/plugins/treesitter.lua b/lua/lazyvim/plugins/treesitter.lua index eb3ebf61..6de91b30 100644 --- a/lua/lazyvim/plugins/treesitter.lua +++ b/lua/lazyvim/plugins/treesitter.lua @@ -180,15 +180,16 @@ return { local desc = table.concat(parts, " or ") 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 + vim.keymap.set({ "n", "x", "o" }, key, function() + if vim.wo.diff and key:find("[cC]") then + return vim.cmd("normal! " .. key) + end + require("nvim-treesitter-textobjects.move")[method](query, "textobjects") + end, { + buffer = buf, + desc = desc, + silent = true, + }) end end end From 03f1293e33541073288f23abdaf581a8e0dec4c4 Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:12:58 +0200 Subject: [PATCH 16/25] fix(util.lsp): pass `formatters_by_ft` to `opts` (#6894) ## Description Here https://github.com/LazyVim/LazyVim/blob/c64a61734fc9d45470a72603395c02137802bc6f/lua/lazyvim/util/lsp.lua#L50 we call directly `conform.format` with our specific options. `conform.nvim` also allows passing options such as `lsp_format` directly to `formatter_by_ft` as also can be seen [here](https://github.com/stevearc/conform.nvim/blob/5420c4b5ea0aeb99c09cfbd4fd0b70d257b44f25/doc/conform.txt#L20-L21). Those options are not passed when we call `conform.format(opts)` in the LSP formatter. So, we add these options. Also, fix the correct name for general format options, since it had been changed at some time in `conform.nvim` and that change made it to the plugin spec, but not here. ## Related Issue(s) Fixes #6893 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/util/lsp.lua | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lua/lazyvim/util/lsp.lua b/lua/lazyvim/util/lsp.lua index 83a39cd9..ff248599 100644 --- a/lua/lazyvim/util/lsp.lua +++ b/lua/lazyvim/util/lsp.lua @@ -35,18 +35,14 @@ end ---@param opts? lsp.Client.format function M.format(opts) - opts = vim.tbl_deep_extend( - "force", - {}, - opts or {}, - LazyVim.opts("nvim-lspconfig").format or {}, - LazyVim.opts("conform.nvim").format or {} - ) + opts = vim.tbl_deep_extend("force", {}, opts or {}, LazyVim.opts("nvim-lspconfig").format or {}) local ok, conform = pcall(require, "conform") -- use conform for formatting with LSP when available, -- since it has better format diffing if ok then - opts.formatters = {} + -- It should be `nil`, otherwise it doesn't fetch options from `formatters_by_ft`, + -- see https://github.com/stevearc/conform.nvim/blob/5420c4b5ea0aeb99c09cfbd4fd0b70d257b44f25/lua/conform/init.lua#L417-L418 + opts.formatters = nil conform.format(opts) else vim.lsp.buf.format(opts) From 730b69114d56834f4499fd3e5aecf18920234c39 Mon Sep 17 00:00:00 2001 From: Iordanis Petkakis <12776461+dpetka2001@users.noreply.github.com> Date: Sun, 1 Mar 2026 11:13:30 +0200 Subject: [PATCH 17/25] fix(lang.clang): fix `clangd_extensions.nvim` (#6804) ## Description `clangd_extensions.nvim` does not seem to take `server` key any more, which was used to setup the plugin with clangd `cmd`, `init_options` etc. Instead you only need to configure the clangd server via lspconfig and the plugin separately according to my understanding. Remove the unnecessary `opts.setup` which also requires the plugin itself and loads it and make the plugin lazy-loaded on c/c++ files only. References: - https://github.com/p00f/clangd_extensions.nvim#configuration - https://github.com/p00f/clangd_extensions.nvim/issues/49#issuecomment-1719654413 PS: I don't do C/C++, so testers would be welcome. ## Related Issue(s) Fixes #6800 ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/lang/clangd.lua | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lua/lazyvim/plugins/extras/lang/clangd.lua b/lua/lazyvim/plugins/extras/lang/clangd.lua index cac83194..0dc3a3f5 100644 --- a/lua/lazyvim/plugins/extras/lang/clangd.lua +++ b/lua/lazyvim/plugins/extras/lang/clangd.lua @@ -23,8 +23,7 @@ return { { "p00f/clangd_extensions.nvim", - lazy = true, - config = function() end, + ft = { "c", "cpp", "objc", "objcpp" }, opts = { inlay_hints = { inline = false, @@ -94,13 +93,6 @@ return { }, }, }, - setup = { - clangd = function(_, opts) - local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim") - require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts })) - return false - end, - }, }, }, From e77d4ab0d6574efb7142ec40f4f5dcff750a3ee9 Mon Sep 17 00:00:00 2001 From: Talles Borges Date: Sun, 1 Mar 2026 06:31:41 -0300 Subject: [PATCH 18/25] fix(fzf): correct git_diff description from 'hunks' to 'files' (#6983) Fixes #6960 `FzfLua git_diff` runs `git diff --name-only` which lists changed **files**, not hunks. Updated the description from `"Git Diff (hunks)"` to `"Git Diff (files)"` to accurately reflect the command behavior. --- lua/lazyvim/plugins/extras/editor/fzf.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/lazyvim/plugins/extras/editor/fzf.lua b/lua/lazyvim/plugins/extras/editor/fzf.lua index f63716c5..4f703405 100644 --- a/lua/lazyvim/plugins/extras/editor/fzf.lua +++ b/lua/lazyvim/plugins/extras/editor/fzf.lua @@ -227,7 +227,7 @@ return { { "fR", LazyVim.pick("oldfiles", { cwd = vim.uv.cwd() }), desc = "Recent (cwd)" }, -- git { "gc", "FzfLua git_commits", desc = "Commits" }, - { "gd", "FzfLua git_diff", desc = "Git Diff (hunks)" }, + { "gd", "FzfLua git_diff", desc = "Git Diff (files)" }, { "gl", "FzfLua git_commits", desc = "Commits" }, { "gs", "FzfLua git_status", desc = "Status" }, { "gS", "FzfLua git_stash", desc = "Git Stash" }, From 3f91371e21389f75997ce1547912e12fe7916e3e Mon Sep 17 00:00:00 2001 From: plsplsplslol <69408275+plsplsplslol@users.noreply.github.com> Date: Sun, 1 Mar 2026 01:32:37 -0800 Subject: [PATCH 19/25] docs(ui): fix typo (#6978) ## Description this extra disables scope, not scroll ## 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/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 e043432c..8c25dfa7 100644 --- a/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua +++ b/lua/lazyvim/plugins/extras/ui/mini-indentscope.lua @@ -55,7 +55,7 @@ return { }, }, - -- disable snacks scroll when mini-indentscope is enabled + -- disable snacks scope when mini-indentscope is enabled { "snacks.nvim", opts = { From b2917bd3bfe61c40e686f5a2c20f540430945b73 Mon Sep 17 00:00:00 2001 From: Frederick Zhang Date: Sun, 1 Mar 2026 20:33:07 +1100 Subject: [PATCH 20/25] fix(python): set venv-selector.nvim override_notify = false (#6936) ## Description This is a new option in venv-selector.nvim which stops it from overriding vim.notify, so that it no longer interferes with noice.nvim. See also [1]. [1] https://github.com/linux-cultist/venv-selector.nvim/issues/240 ## 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/lang/python.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/plugins/extras/lang/python.lua b/lua/lazyvim/plugins/extras/lang/python.lua index bfe9e210..eb0bd5a8 100644 --- a/lua/lazyvim/plugins/extras/lang/python.lua +++ b/lua/lazyvim/plugins/extras/lang/python.lua @@ -114,6 +114,7 @@ return { opts = { options = { notify_user_on_venv_activation = true, + override_notify = false, }, }, -- Call config for Python files and load the cached venv automatically From 87c002789220d922bb94637c690b444bd1ba5611 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=BAc=20H=2E=20L=C3=AA=20Kh=E1=BA=AFc?= Date: Sun, 1 Mar 2026 16:35:14 +0700 Subject: [PATCH 21/25] feat(dap): close dap-float window with `q`. (#6884) ## Description nvim-dap-ui's widget window to preview value of object under the cursor has ftype `dap-float`. Include it so it can be closed quickly like other popup windows. ## Related Issue(s) ## Screenshots ## Checklist - [x] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/config/autocmds.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/config/autocmds.lua b/lua/lazyvim/config/autocmds.lua index a86594a3..a0b058a6 100644 --- a/lua/lazyvim/config/autocmds.lua +++ b/lua/lazyvim/config/autocmds.lua @@ -56,6 +56,7 @@ vim.api.nvim_create_autocmd("FileType", { pattern = { "PlenaryTestPopup", "checkhealth", + "dap-float", "dbout", "gitsigns-blame", "grug-far", From a50072fa16cfc1f00b1ae282150bc667f1d1e096 Mon Sep 17 00:00:00 2001 From: Chomba Date: Sun, 1 Mar 2026 12:36:15 +0300 Subject: [PATCH 22/25] feat(bufferline): add bj keymap for BufferLinePick (#6968) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Adds `bj` keymap to quickly pick a buffer using BufferLinePick ## Motivation BufferLinePick provides a great UX for quickly jumping to buffers by letter key, similar to LunarVim's buffer picker. This keymap makes it easily discoverable. ## Changes - Added `bj` → `:BufferLinePick` in bufferline plugin config ## Testing - Tested locally with multiple buffers open - Press `bj`, letter labels appear on tabs, press letter to jump --- lua/lazyvim/plugins/ui.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/lazyvim/plugins/ui.lua b/lua/lazyvim/plugins/ui.lua index 23afdc39..041648b7 100644 --- a/lua/lazyvim/plugins/ui.lua +++ b/lua/lazyvim/plugins/ui.lua @@ -15,6 +15,7 @@ return { { "]b", "BufferLineCycleNext", desc = "Next Buffer" }, { "[B", "BufferLineMovePrev", desc = "Move buffer prev" }, { "]B", "BufferLineMoveNext", desc = "Move buffer next" }, + { "bj", "BufferLinePick", desc = "Pick Buffer" }, }, opts = { options = { From fca0af57cc3851b14f96a795a9c9bfafc5096dd1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 10:37:36 +0100 Subject: [PATCH 23/25] chore(main): release 15.14.0 (#6738) :robot: I have created a release *beep* *boop* --- ## [15.14.0](https://github.com/LazyVim/LazyVim/compare/v15.13.0...v15.14.0) (2026-03-01) ### Features * **bufferline:** add <leader>bj keymap for BufferLinePick ([#6968](https://github.com/LazyVim/LazyVim/issues/6968)) ([a50072f](https://github.com/LazyVim/LazyVim/commit/a50072fa16cfc1f00b1ae282150bc667f1d1e096)) * **dap:** close dap-float window with `q`. ([#6884](https://github.com/LazyVim/LazyVim/issues/6884)) ([87c0027](https://github.com/LazyVim/LazyVim/commit/87c002789220d922bb94637c690b444bd1ba5611)) * **treesitter:** support query table in treesitter-textobjects mappings ([#6736](https://github.com/LazyVim/LazyVim/issues/6736)) ([42c9f71](https://github.com/LazyVim/LazyVim/commit/42c9f7152b9bd1a4f739b115390370c208dc2a55)) ### Bug Fixes * **editor.overseer:** migrate to v2 ([#6907](https://github.com/LazyVim/LazyVim/issues/6907)) ([27824d7](https://github.com/LazyVim/LazyVim/commit/27824d79a952c54cd9d93c85a699543e4a031dd4)) * **fzf:** correct git_diff description from 'hunks' to 'files' ([#6983](https://github.com/LazyVim/LazyVim/issues/6983)) ([e77d4ab](https://github.com/LazyVim/LazyVim/commit/e77d4ab0d6574efb7142ec40f4f5dcff750a3ee9)) * **lang.clang:** fix `clangd_extensions.nvim` ([#6804](https://github.com/LazyVim/LazyVim/issues/6804)) ([730b691](https://github.com/LazyVim/LazyVim/commit/730b69114d56834f4499fd3e5aecf18920234c39)) * **leap:** update urls to new leap.nvim repo. Fixes [#6958](https://github.com/LazyVim/LazyVim/issues/6958) ([244af66](https://github.com/LazyVim/LazyVim/commit/244af66f8b4e376d60c6604f9b3fd758165f5799)) * **news:** resolve news.txt from $VIMRUNTIME first ([60fea62](https://github.com/LazyVim/LazyVim/commit/60fea6236e342e1f4aa34d078461746d5f587c74)), closes [#7019](https://github.com/LazyVim/LazyVim/issues/7019) * **python:** set venv-selector.nvim override_notify = false ([#6936](https://github.com/LazyVim/LazyVim/issues/6936)) ([b2917bd](https://github.com/LazyVim/LazyVim/commit/b2917bd3bfe61c40e686f5a2c20f540430945b73)) * **terminal:** add -NoProfile to powershell shellcmdflag ([#6757](https://github.com/LazyVim/LazyVim/issues/6757)) ([a507822](https://github.com/LazyVim/LazyVim/commit/a507822c0f67df661d1411f9274a65ca9cc832f5)) * **terminal:** partially revert previous mappings ([#6770](https://github.com/LazyVim/LazyVim/issues/6770)) ([c64a617](https://github.com/LazyVim/LazyVim/commit/c64a61734fc9d45470a72603395c02137802bc6f)) * **treesitter:** fix `]c` textobject mappings when in diff mode ([#6911](https://github.com/LazyVim/LazyVim/issues/6911)) ([16713e6](https://github.com/LazyVim/LazyVim/commit/16713e6e1200eb90ad4b4a394bb7254fb5612484)) * **treesitter:** remove deleted jsonc parser ([#6848](https://github.com/LazyVim/LazyVim/issues/6848)) ([92607e7](https://github.com/LazyVim/LazyVim/commit/92607e79e09a2761d930877a09edc00438b97fc3)) * **util.lsp:** `LazyVim.lsp.execute` only request single client ([#6904](https://github.com/LazyVim/LazyVim/issues/6904)) ([a4e19e9](https://github.com/LazyVim/LazyVim/commit/a4e19e9c9c939c1a3fc2f30ffefe37311d3ecadf)) * **util.lsp:** pass `formatters_by_ft` to `opts` ([#6894](https://github.com/LazyVim/LazyVim/issues/6894)) ([03f1293](https://github.com/LazyVim/LazyVim/commit/03f1293e33541073288f23abdaf581a8e0dec4c4)) * **vtsls:** remove redundant deno logic, upstreamed in `nvim-lspconfig` ([#7011](https://github.com/LazyVim/LazyVim/issues/7011)) ([8652c95](https://github.com/LazyVim/LazyVim/commit/8652c9570377678a78ecb19dbd33695e0e4ec4fc)) --- 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 | 26 ++++++++++++++++++++++++++ lua/lazyvim/config/init.lua | 2 +- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index 27277755..538e599a 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "15.13.0" + ".": "15.14.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 24045345..f5e25695 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## [15.14.0](https://github.com/LazyVim/LazyVim/compare/v15.13.0...v15.14.0) (2026-03-01) + + +### Features + +* **bufferline:** add <leader>bj keymap for BufferLinePick ([#6968](https://github.com/LazyVim/LazyVim/issues/6968)) ([a50072f](https://github.com/LazyVim/LazyVim/commit/a50072fa16cfc1f00b1ae282150bc667f1d1e096)) +* **dap:** close dap-float window with `q`. ([#6884](https://github.com/LazyVim/LazyVim/issues/6884)) ([87c0027](https://github.com/LazyVim/LazyVim/commit/87c002789220d922bb94637c690b444bd1ba5611)) +* **treesitter:** support query table in treesitter-textobjects mappings ([#6736](https://github.com/LazyVim/LazyVim/issues/6736)) ([42c9f71](https://github.com/LazyVim/LazyVim/commit/42c9f7152b9bd1a4f739b115390370c208dc2a55)) + + +### Bug Fixes + +* **editor.overseer:** migrate to v2 ([#6907](https://github.com/LazyVim/LazyVim/issues/6907)) ([27824d7](https://github.com/LazyVim/LazyVim/commit/27824d79a952c54cd9d93c85a699543e4a031dd4)) +* **fzf:** correct git_diff description from 'hunks' to 'files' ([#6983](https://github.com/LazyVim/LazyVim/issues/6983)) ([e77d4ab](https://github.com/LazyVim/LazyVim/commit/e77d4ab0d6574efb7142ec40f4f5dcff750a3ee9)) +* **lang.clang:** fix `clangd_extensions.nvim` ([#6804](https://github.com/LazyVim/LazyVim/issues/6804)) ([730b691](https://github.com/LazyVim/LazyVim/commit/730b69114d56834f4499fd3e5aecf18920234c39)) +* **leap:** update urls to new leap.nvim repo. Fixes [#6958](https://github.com/LazyVim/LazyVim/issues/6958) ([244af66](https://github.com/LazyVim/LazyVim/commit/244af66f8b4e376d60c6604f9b3fd758165f5799)) +* **news:** resolve news.txt from $VIMRUNTIME first ([60fea62](https://github.com/LazyVim/LazyVim/commit/60fea6236e342e1f4aa34d078461746d5f587c74)), closes [#7019](https://github.com/LazyVim/LazyVim/issues/7019) +* **python:** set venv-selector.nvim override_notify = false ([#6936](https://github.com/LazyVim/LazyVim/issues/6936)) ([b2917bd](https://github.com/LazyVim/LazyVim/commit/b2917bd3bfe61c40e686f5a2c20f540430945b73)) +* **terminal:** add -NoProfile to powershell shellcmdflag ([#6757](https://github.com/LazyVim/LazyVim/issues/6757)) ([a507822](https://github.com/LazyVim/LazyVim/commit/a507822c0f67df661d1411f9274a65ca9cc832f5)) +* **terminal:** partially revert previous mappings ([#6770](https://github.com/LazyVim/LazyVim/issues/6770)) ([c64a617](https://github.com/LazyVim/LazyVim/commit/c64a61734fc9d45470a72603395c02137802bc6f)) +* **treesitter:** fix `]c` textobject mappings when in diff mode ([#6911](https://github.com/LazyVim/LazyVim/issues/6911)) ([16713e6](https://github.com/LazyVim/LazyVim/commit/16713e6e1200eb90ad4b4a394bb7254fb5612484)) +* **treesitter:** remove deleted jsonc parser ([#6848](https://github.com/LazyVim/LazyVim/issues/6848)) ([92607e7](https://github.com/LazyVim/LazyVim/commit/92607e79e09a2761d930877a09edc00438b97fc3)) +* **util.lsp:** `LazyVim.lsp.execute` only request single client ([#6904](https://github.com/LazyVim/LazyVim/issues/6904)) ([a4e19e9](https://github.com/LazyVim/LazyVim/commit/a4e19e9c9c939c1a3fc2f30ffefe37311d3ecadf)) +* **util.lsp:** pass `formatters_by_ft` to `opts` ([#6894](https://github.com/LazyVim/LazyVim/issues/6894)) ([03f1293](https://github.com/LazyVim/LazyVim/commit/03f1293e33541073288f23abdaf581a8e0dec4c4)) +* **vtsls:** remove redundant deno logic, upstreamed in `nvim-lspconfig` ([#7011](https://github.com/LazyVim/LazyVim/issues/7011)) ([8652c95](https://github.com/LazyVim/LazyVim/commit/8652c9570377678a78ecb19dbd33695e0e4ec4fc)) + ## [15.13.0](https://github.com/LazyVim/LazyVim/compare/v15.12.2...v15.13.0) (2025-11-01) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index 562a0687..63355fcc 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.13.0" -- x-release-please-version +M.version = "15.14.0" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions From d0fe8c896f4dca003e8d56e2091ee5ec7da7af75 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sun, 1 Mar 2026 10:50:09 +0100 Subject: [PATCH 24/25] revert(lsp): revert changes for #6456. Closes #6779 --- lua/lazyvim/plugins/lsp/init.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/lazyvim/plugins/lsp/init.lua b/lua/lazyvim/plugins/lsp/init.lua index 540b6c5c..1a3708e1 100644 --- a/lua/lazyvim/plugins/lsp/init.lua +++ b/lua/lazyvim/plugins/lsp/init.lua @@ -2,7 +2,7 @@ return { -- lspconfig { "neovim/nvim-lspconfig", - event = "LazyFile", + event = { "BufReadPre", "BufNewFile" }, dependencies = { "mason.nvim", { "mason-org/mason-lspconfig.nvim", config = function() end }, @@ -150,7 +150,7 @@ return { return ret end, ---@param opts PluginLspOpts - config = vim.schedule_wrap(function(_, opts) + config = function(_, opts) -- setup autoformat LazyVim.format.register(LazyVim.lsp.formatter()) @@ -259,7 +259,7 @@ return { automatic_enable = { exclude = mason_exclude }, }) end - end), + end, }, -- cmdline tools and lsp servers From 31caef21fdf4009a7d5c8342a14b7d8b97be611d Mon Sep 17 00:00:00 2001 From: Rubin Bhandari Date: Sun, 1 Mar 2026 19:30:56 +0545 Subject: [PATCH 25/25] refactor(dial): use inbuilt augends (#7035) Dial now has built in augends for weekdays and Pythonic booleans [monaqa/dial.nvim#augend-alias](https://github.com/monaqa/dial.nvim#augend-alias) ## Description ## Related Issue(s) ## Screenshots ## Checklist - [ ] I've read the [CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md) guidelines. --- lua/lazyvim/plugins/extras/editor/dial.lua | 28 +++------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/lua/lazyvim/plugins/extras/editor/dial.lua b/lua/lazyvim/plugins/extras/editor/dial.lua index 7a9a76ae..3d9a18bf 100644 --- a/lua/lazyvim/plugins/extras/editor/dial.lua +++ b/lua/lazyvim/plugins/extras/editor/dial.lua @@ -53,20 +53,6 @@ return { cyclic = true, }) - local weekdays = augend.constant.new({ - elements = { - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday", - }, - word = true, - cyclic = true, - }) - local months = augend.constant.new({ elements = { "January", @@ -86,15 +72,6 @@ return { cyclic = true, }) - local capitalized_boolean = augend.constant.new({ - elements = { - "True", - "False", - }, - word = true, - cyclic = true, - }) - return { dials_by_ft = { css = "css", @@ -116,11 +93,12 @@ return { augend.integer.alias.decimal_int, -- nonnegative and negative decimal number augend.integer.alias.hex, -- nonnegative hex number (0x01, 0x1a1f, etc.) augend.date.alias["%Y/%m/%d"], -- date (2022/02/19, etc.) + augend.constant.alias.en_weekday, -- Mon, Tue, ..., Sat, Sun + augend.constant.alias.en_weekday_full, -- Monday, Tuesday, ..., Saturday, Sunday ordinal_numbers, - weekdays, months, - capitalized_boolean, augend.constant.alias.bool, -- boolean value (true <-> false) + augend.constant.alias.Bool, -- boolean value (True <-> False) logical_alias, }, vue = {