mirror of
https://github.com/LazyVim/LazyVim.git
synced 2026-07-25 14:01:06 +00:00
Merge branch 'main' into fix-metals-dependencies
This commit is contained in:
commit
dd3ae20829
17 changed files with 90 additions and 48 deletions
2
.github/.release-please-manifest.json
vendored
2
.github/.release-please-manifest.json
vendored
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
".": "15.12.0"
|
".": "15.13.0"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
.markdownlint-cli2.yaml
Normal file
3
.markdownlint-cli2.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
config:
|
||||||
|
MD013: false
|
||||||
|
MD033: false
|
||||||
27
CHANGELOG.md
27
CHANGELOG.md
|
|
@ -1,5 +1,32 @@
|
||||||
# Changelog
|
# 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)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **lsp.keymaps:** make cond -> enabled work again. Closes [#6697](https://github.com/LazyVim/LazyVim/issues/6697) ([1a40162](https://github.com/LazyVim/LazyVim/commit/1a401627146c66beaeb213f66dd02662f1006e82))
|
||||||
|
|
||||||
|
## [15.12.1](https://github.com/LazyVim/LazyVim/compare/v15.12.0...v15.12.1) (2025-10-26)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **fzf-lua:** LSP keymaps. Closes [#6698](https://github.com/LazyVim/LazyVim/issues/6698) ([b5ea1e9](https://github.com/LazyVim/LazyVim/commit/b5ea1e9d25202e38a47f0b03ac35cc587c80e6d7))
|
||||||
|
* **navic:** navic attach. Closes [#6702](https://github.com/LazyVim/LazyVim/issues/6702) ([d2d0c64](https://github.com/LazyVim/LazyVim/commit/d2d0c641ed443f8d2ea9e131ec90df59ea149d0a))
|
||||||
|
|
||||||
## [15.12.0](https://github.com/LazyVim/LazyVim/compare/v15.11.0...v15.12.0) (2025-10-25)
|
## [15.12.0](https://github.com/LazyVim/LazyVim/compare/v15.11.0...v15.12.0) (2025-10-25)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
*LazyVim.txt* For Neovim Last change: 2025 October 25
|
*LazyVim.txt* LazyVim docs
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
Table of Contents *LazyVim-table-of-contents*
|
Table of Contents *LazyVim-table-of-contents*
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ _G.LazyVim = require("lazyvim.util")
|
||||||
---@class LazyVimConfig: LazyVimOptions
|
---@class LazyVimConfig: LazyVimOptions
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
M.version = "15.12.0" -- x-release-please-version
|
M.version = "15.13.0" -- x-release-please-version
|
||||||
LazyVim.config = M
|
LazyVim.config = M
|
||||||
|
|
||||||
---@class LazyVimOptions
|
---@class LazyVimOptions
|
||||||
|
|
@ -34,7 +34,9 @@ local defaults = {
|
||||||
dots = "",
|
dots = "",
|
||||||
},
|
},
|
||||||
ft = {
|
ft = {
|
||||||
octo = "",
|
octo = " ",
|
||||||
|
gh = " ",
|
||||||
|
["markdown.gh"] = " ",
|
||||||
},
|
},
|
||||||
dap = {
|
dap = {
|
||||||
Stopped = { " ", "DiagnosticWarn", "DapStoppedLine" },
|
Stopped = { " ", "DiagnosticWarn", "DapStoppedLine" },
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ if lazyvim_docs then
|
||||||
end
|
end
|
||||||
|
|
||||||
if LazyVim.has_extra("ai.copilot-native") then
|
if LazyVim.has_extra("ai.copilot-native") then
|
||||||
if not vim.lsp.inline_completion then
|
if vim.fn.has("nvim-0.12") == 0 then
|
||||||
LazyVim.error("You need Neovim >= 0.12 to use the `ai.copilot-native` extra.")
|
LazyVim.error("You need Neovim >= 0.12 to use the `ai.copilot-native` extra.")
|
||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -293,10 +293,12 @@ return {
|
||||||
servers = {
|
servers = {
|
||||||
-- stylua: ignore
|
-- stylua: ignore
|
||||||
["*"] = {
|
["*"] = {
|
||||||
{ "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },
|
keys = {
|
||||||
{ "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },
|
{ "gd", "<cmd>FzfLua lsp_definitions jump1=true ignore_current_line=true<cr>", desc = "Goto Definition", has = "definition" },
|
||||||
{ "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },
|
{ "gr", "<cmd>FzfLua lsp_references jump1=true ignore_current_line=true<cr>", desc = "References", nowait = true },
|
||||||
{ "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },
|
{ "gI", "<cmd>FzfLua lsp_implementations jump1=true ignore_current_line=true<cr>", desc = "Goto Implementation" },
|
||||||
|
{ "gy", "<cmd>FzfLua lsp_typedefs jump1=true ignore_current_line=true<cr>", desc = "Goto T[y]pe Definition" },
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,11 @@ return {
|
||||||
lazy = true,
|
lazy = true,
|
||||||
init = function()
|
init = function()
|
||||||
vim.g.navic_silence = true
|
vim.g.navic_silence = true
|
||||||
|
end,
|
||||||
|
opts = function()
|
||||||
Snacks.util.lsp.on({ method = "textDocument/documentSymbol" }, function(buffer, client)
|
Snacks.util.lsp.on({ method = "textDocument/documentSymbol" }, function(buffer, client)
|
||||||
require("nvim-navic").attach(client, buffer)
|
require("nvim-navic").attach(client, buffer)
|
||||||
end)
|
end)
|
||||||
end,
|
|
||||||
opts = function()
|
|
||||||
return {
|
return {
|
||||||
separator = " ",
|
separator = " ",
|
||||||
highlight = true,
|
highlight = true,
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,13 @@ return {
|
||||||
{ "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },
|
{ "<leader>fp", function() Snacks.picker.projects() end, desc = "Projects" },
|
||||||
-- git
|
-- git
|
||||||
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" },
|
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (hunks)" },
|
||||||
{ "<leader>gD", function() Snacks.picker.git_diff({ base = "origin" }) end, desc = "Git Diff (origin)" },
|
{ "<leader>gD", function() Snacks.picker.git_diff({ base = "origin", group = true }) end, desc = "Git Diff (origin)" },
|
||||||
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
|
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
|
||||||
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
|
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
|
||||||
|
{ "<leader>gi", function() Snacks.picker.gh_issue() end, desc = "GitHub Issues (open)" },
|
||||||
|
{ "<leader>gI", function() Snacks.picker.gh_issue({ state = "all" }) end, desc = "GitHub Issues (all)" },
|
||||||
|
{ "<leader>gp", function() Snacks.picker.gh_pr() end, desc = "GitHub Pull Requests (open)" },
|
||||||
|
{ "<leader>gP", function() Snacks.picker.gh_pr({ state = "all" }) end, desc = "GitHub Pull Requests (all)" },
|
||||||
-- Grep
|
-- Grep
|
||||||
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
|
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
|
||||||
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" },
|
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" },
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,16 @@ return {
|
||||||
-- depends on the git extra for highlighting and auto-completion of github issues/prs
|
-- depends on the git extra for highlighting and auto-completion of github issues/prs
|
||||||
{ import = "lazyvim.plugins.extras.lang.git" },
|
{ import = "lazyvim.plugins.extras.lang.git" },
|
||||||
|
|
||||||
|
{
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
keys = { -- disable conflicting keymaps
|
||||||
|
{ "<leader>gi", false },
|
||||||
|
{ "<leader>gI", false },
|
||||||
|
{ "<leader>gp", false },
|
||||||
|
{ "<leader>gP", false },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
-- Octo
|
-- Octo
|
||||||
{
|
{
|
||||||
"pwntester/octo.nvim",
|
"pwntester/octo.nvim",
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,6 @@ if vim.fn.has("nvim-0.11.2") == 0 then
|
||||||
vim.fn.getchar()
|
vim.fn.getchar()
|
||||||
vim.cmd([[quit]])
|
vim.cmd([[quit]])
|
||||||
return {}
|
return {}
|
||||||
elseif not vim.lsp.is_enabled then
|
|
||||||
vim.schedule(function()
|
|
||||||
LazyVim.warn({
|
|
||||||
"You're using an **old** `nightly` version of **Neovim**",
|
|
||||||
"Please update to a recent `nightly`,",
|
|
||||||
"or a stable version (`>= 0.11.2`).",
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
require("lazyvim.config").init()
|
require("lazyvim.config").init()
|
||||||
|
|
|
||||||
|
|
@ -92,13 +92,13 @@ return {
|
||||||
{ "<leader>cr", vim.lsp.buf.rename, desc = "Rename", has = "rename" },
|
{ "<leader>cr", vim.lsp.buf.rename, desc = "Rename", has = "rename" },
|
||||||
{ "<leader>cA", LazyVim.lsp.action.source, desc = "Source Action", has = "codeAction" },
|
{ "<leader>cA", LazyVim.lsp.action.source, desc = "Source Action", has = "codeAction" },
|
||||||
{ "]]", function() Snacks.words.jump(vim.v.count1) end, has = "documentHighlight",
|
{ "]]", function() Snacks.words.jump(vim.v.count1) end, has = "documentHighlight",
|
||||||
desc = "Next Reference", cond = function() return Snacks.words.is_enabled() end },
|
desc = "Next Reference", enabled = function() return Snacks.words.is_enabled() end },
|
||||||
{ "[[", function() Snacks.words.jump(-vim.v.count1) end, has = "documentHighlight",
|
{ "[[", function() Snacks.words.jump(-vim.v.count1) end, has = "documentHighlight",
|
||||||
desc = "Prev Reference", cond = function() return Snacks.words.is_enabled() end },
|
desc = "Prev Reference", enabled = function() return Snacks.words.is_enabled() end },
|
||||||
{ "<a-n>", function() Snacks.words.jump(vim.v.count1, true) end, has = "documentHighlight",
|
{ "<a-n>", function() Snacks.words.jump(vim.v.count1, true) end, has = "documentHighlight",
|
||||||
desc = "Next Reference", cond = function() return Snacks.words.is_enabled() end },
|
desc = "Next Reference", enabled = function() return Snacks.words.is_enabled() end },
|
||||||
{ "<a-p>", function() Snacks.words.jump(-vim.v.count1, true) end, has = "documentHighlight",
|
{ "<a-p>", function() Snacks.words.jump(-vim.v.count1, true) end, has = "documentHighlight",
|
||||||
desc = "Prev Reference", cond = function() return Snacks.words.is_enabled() end },
|
desc = "Prev Reference", enabled = function() return Snacks.words.is_enabled() end },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
stylua = { enabled = false },
|
stylua = { enabled = false },
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ local M = {}
|
||||||
---@type LazyKeysLspSpec[]|nil
|
---@type LazyKeysLspSpec[]|nil
|
||||||
M._keys = {}
|
M._keys = {}
|
||||||
|
|
||||||
---@alias LazyKeysLspSpec LazyKeysSpec|{has?:string|string[], cond?:fun():boolean}
|
---@alias LazyKeysLspSpec LazyKeysSpec|{has?:string|string[], enabled?:fun():boolean}
|
||||||
---@alias LazyKeysLsp LazyKeys|{has?:string|string[], cond?:fun():boolean}
|
---@alias LazyKeysLsp LazyKeys|{has?:string|string[], enabled?:fun():boolean}
|
||||||
|
|
||||||
---@deprecated
|
---@deprecated
|
||||||
---@return LazyKeysLspSpec[]
|
---@return LazyKeysLspSpec[]
|
||||||
|
|
@ -43,24 +43,23 @@ function M.set(filter, spec)
|
||||||
local Keys = require("lazy.core.handler.keys")
|
local Keys = require("lazy.core.handler.keys")
|
||||||
for _, keys in pairs(Keys.resolve(spec)) do
|
for _, keys in pairs(Keys.resolve(spec)) do
|
||||||
---@cast keys LazyKeysLsp
|
---@cast keys LazyKeysLsp
|
||||||
if keys.cond == nil or keys.cond() then
|
local filters = {} ---@type vim.lsp.get_clients.Filter[]
|
||||||
local filters = {} ---@type vim.lsp.get_clients.Filter[]
|
if keys.has then
|
||||||
if keys.has then
|
local methods = type(keys.has) == "string" and { keys.has } or keys.has --[[@as string[] ]]
|
||||||
local methods = type(keys.has) == "string" and { keys.has } or keys.has --[[@as string[] ]]
|
for _, method in ipairs(methods) do
|
||||||
for _, method in ipairs(methods) do
|
method = method:find("/") and method or ("textDocument/" .. method)
|
||||||
method = method:find("/") and method or ("textDocument/" .. method)
|
filters[#filters + 1] = vim.tbl_extend("force", vim.deepcopy(filter), { method = method })
|
||||||
filters[#filters + 1] = vim.tbl_extend("force", vim.deepcopy(filter), { method = method })
|
|
||||||
end
|
|
||||||
else
|
|
||||||
filters[#filters + 1] = filter
|
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
filters[#filters + 1] = filter
|
||||||
|
end
|
||||||
|
|
||||||
for _, f in ipairs(filters) do
|
for _, f in ipairs(filters) do
|
||||||
local opts = Keys.opts(keys)
|
local opts = Keys.opts(keys)
|
||||||
---@cast opts snacks.keymap.set.Opts
|
---@cast opts snacks.keymap.set.Opts
|
||||||
opts.lsp = f
|
opts.lsp = f
|
||||||
Snacks.keymap.set(keys.mode or "n", keys.lhs, keys.rhs, opts)
|
opts.enabled = keys.enabled
|
||||||
end
|
Snacks.keymap.set(keys.mode or "n", keys.lhs, keys.rhs, opts)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -171,8 +171,14 @@ return {
|
||||||
|
|
||||||
for method, keymaps in pairs(moves) do
|
for method, keymaps in pairs(moves) do
|
||||||
for key, query in pairs(keymaps) do
|
for key, query in pairs(keymaps) do
|
||||||
local desc = query:gsub("@", ""):gsub("%..*", "")
|
local queries = type(query) == "table" and query or { query }
|
||||||
desc = desc:sub(1, 1):upper() .. desc:sub(2)
|
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 = (key:sub(1, 1) == "[" and "Prev " or "Next ") .. desc
|
||||||
desc = desc .. (key:sub(2, 2) == key:sub(2, 2):upper() and " End" or " Start")
|
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
|
if not (vim.wo.diff and key:find("[cC]")) then
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ return {
|
||||||
nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },
|
nav_j = { "<C-j>", term_nav("j"), desc = "Go to Lower Window", expr = true, mode = "t" },
|
||||||
nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },
|
nav_k = { "<C-k>", term_nav("k"), desc = "Go to Upper Window", expr = true, mode = "t" },
|
||||||
nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },
|
nav_l = { "<C-l>", term_nav("l"), desc = "Go to Right Window", expr = true, mode = "t" },
|
||||||
hide_slash = { "<C-/>", "hide", desc = "Hide Terminal", mode = { "t", "n" } },
|
|
||||||
hide_underscore = { "<c-_>", "hide", desc = "which_key_ignore", mode = { "t", "n" } },
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ function M.setup(shell)
|
||||||
|
|
||||||
-- Setting shell command flags
|
-- Setting shell command flags
|
||||||
vim.o.shellcmdflag =
|
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
|
-- Setting shell redirection
|
||||||
vim.o.shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode'
|
vim.o.shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode'
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,6 @@ function M.check()
|
||||||
["C compiler"] = have_cc,
|
["C compiler"] = have_cc,
|
||||||
tar = have("tar"),
|
tar = have("tar"),
|
||||||
curl = have("curl"),
|
curl = have("curl"),
|
||||||
node = have("node"),
|
|
||||||
}
|
}
|
||||||
local ok = true
|
local ok = true
|
||||||
for _, v in pairs(ret) do
|
for _, v in pairs(ret) do
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue