Merge branch 'LazyVim:main' into main

This commit is contained in:
Zapan Gao 2026-05-27 11:08:11 +08:00 committed by GitHub
commit 6cc0bbb960
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 64 additions and 103 deletions

View file

@ -1,4 +1,5 @@
*LazyVim.txt* LazyVim docs
For Neovim Last change: 2026 May 26
==============================================================================
Table of Contents *LazyVim-table-of-contents*
@ -78,22 +79,26 @@ Try it with Docker ~
Install the LazyVim Starter ~
- Make a backup of your current Neovim files:
>sh
>sh
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
<
<
- Clone the starter
>sh
>sh
git clone https://github.com/LazyVim/starter ~/.config/nvim
<
<
- Remove the `.git` folder, so you can add it to your own repo later
>sh
>sh
rm -rf ~/.config/nvim/.git
<
<
- Start Neovim!
>sh
>sh
nvim
<
<
Refer to the comments in the files on how to customize **LazyVim**.
------------------------------------------------------------------------------

View file

@ -18,7 +18,11 @@ vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, {
vim.api.nvim_create_autocmd("TextYankPost", {
group = augroup("highlight_yank"),
callback = function()
(vim.hl or vim.highlight).on_yank()
if vim.fn.has("nvim-0.13") then
vim.hl.hl_op()
else
(vim.hl or vim.highlight).on_yank()
end
end,
})

View file

@ -43,6 +43,9 @@ end, { desc = "Delete Buffer" })
map("n", "<leader>bo", function()
Snacks.bufdelete.other()
end, { desc = "Delete Other Buffers" })
map("n", "<leader>bi", function()
Snacks.bufdelete.invisible()
end, { desc = "Delete Invisible Buffers" })
map("n", "<leader>bD", "<cmd>:bd<cr>", { desc = "Delete Buffer and Window" })
-- Clear search and stop snippet on escape

View file

@ -1,95 +1,64 @@
local pick = function()
local refactoring = require("refactoring")
if LazyVim.pick.picker.name == "telescope" then
return require("telescope").extensions.refactoring.refactors()
elseif LazyVim.pick.picker.name == "fzf" then
local fzf_lua = require("fzf-lua")
local results = refactoring.get_refactors()
local opts = {
fzf_opts = {},
fzf_colors = true,
actions = {
["default"] = function(selected)
refactoring.refactor(selected[1])
end,
},
}
fzf_lua.fzf_exec(results, opts)
else
refactoring.select_refactor()
if LazyVim.has_extra("editor.refactoring") then
if vim.fn.has("nvim-0.12") == 0 then
LazyVim.error("refactoring.nvim requires Neovim 0.12 or higher", { title = "refactoring.nvim" })
return {}
end
end
return {
{ "lewis6991/async.nvim", lazy = true },
{
"ThePrimeagen/refactoring.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
keys = {
{ "<leader>r", "", desc = "+refactor", mode = { "n", "x" } },
{
"<leader>rs",
pick,
function()
return require("refactoring").select_refactor()
end,
mode = { "n", "x" },
desc = "Refactor",
desc = "Select Refactor",
},
{
"<leader>ri",
function()
return require("refactoring").refactor("Inline Variable")
return require("refactoring").inline_var()
end,
mode = { "n", "x" },
desc = "Inline Variable",
expr = true,
},
{
"<leader>rb",
function()
return require("refactoring").refactor("Extract Block")
end,
mode = { "n", "x" },
desc = "Extract Block",
expr = true,
},
{
"<leader>rf",
function()
return require("refactoring").refactor("Extract Block To File")
end,
mode = { "n", "x" },
desc = "Extract Block To File",
expr = true,
},
{
"<leader>rP",
function()
require("refactoring").debug.printf({ below = false })
return require("refactoring.debug").print_loc({ output_location = "below" })
end,
desc = "Debug Print",
desc = "Debug Print Location",
expr = true,
},
{
"<leader>rp",
function()
require("refactoring").debug.print_var({ normal = true })
return require("refactoring.debug").print_var({ output_location = "below" }) .. "iw"
end,
mode = { "n", "x" },
desc = "Debug Print Variable",
expr = true,
},
{
"<leader>rc",
function()
require("refactoring").debug.cleanup({})
return require("refactoring.debug").cleanup({ restore_view = true }) .. "ag"
end,
desc = "Debug Cleanup",
expr = true,
},
{
"<leader>rf",
function()
return require("refactoring").refactor("Extract Function")
return require("refactoring").extract_func()
end,
mode = { "n", "x" },
desc = "Extract Function",
@ -98,7 +67,7 @@ return {
{
"<leader>rF",
function()
return require("refactoring").refactor("Extract Function To File")
return require("refactoring").extract_func_to_file()
end,
mode = { "n", "x" },
desc = "Extract Function To File",
@ -107,52 +76,13 @@ return {
{
"<leader>rx",
function()
return require("refactoring").refactor("Extract Variable")
return require("refactoring").extract_var()
end,
mode = { "n", "x" },
desc = "Extract Variable",
expr = true,
},
{
"<leader>rp",
function()
require("refactoring").debug.print_var()
end,
mode = { "n", "x" },
desc = "Debug Print Variable",
},
},
opts = {
prompt_func_return_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
prompt_func_param_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
printf_statements = {},
print_var_statements = {},
show_success_message = true, -- shows a message with information about the refactor on success
-- i.e. [Refactor] Inlined 3 variable occurrences
},
config = function(_, opts)
require("refactoring").setup(opts)
if LazyVim.has("telescope.nvim") then
LazyVim.on_load("telescope.nvim", function()
require("telescope").load_extension("refactoring")
end)
end
end,
opts = {},
},
}

View file

@ -14,6 +14,9 @@ return {
opts = {
servers = {
gopls = {
init_options = {
semanticTokens = true,
},
settings = {
gopls = {
gofumpt = true,
@ -46,7 +49,6 @@ return {
completeUnimported = true,
staticcheck = true,
directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },
semanticTokens = true,
},
},
},
@ -56,7 +58,12 @@ return {
-- workaround for gopls not supporting semanticTokensProvider
-- https://github.com/golang/go/issues/54531#issuecomment-1464982242
Snacks.util.lsp.on({ name = "gopls" }, function(_, client)
if not client.server_capabilities.semanticTokensProvider then
if
client.config
and client.config.init_options
and client.config.init_options.semanticTokens
and not client.server_capabilities.semanticTokensProvider
then
local semantic = client.config.capabilities.textDocument.semanticTokens
client.server_capabilities.semanticTokensProvider = {
full = true,

View file

@ -30,6 +30,15 @@ return {
servers = {
---@type lspconfig.settings.oxlint
oxlint = {
root_dir = function(bufnr, on_dir)
-- prefer the top-level oxlint config if it exists (monorepo support)
local git = vim.fs.root(bufnr, ".git")
local markers = { ".oxlintrc.json", ".oxlintrc.jsonc", "oxlint.config.ts" }
local root = git and vim.fs.root(git, markers) or vim.fs.root(bufnr, markers)
if root then
on_dir(root)
end
end,
settings = {
fixKind = "all",
},

View file

@ -39,6 +39,9 @@ M.plugin = {
group = function(_, _, data)
---@type string
local match = data.full_match
if match == "#add" then
return
end
local r, g, b = match:sub(2, 2), match:sub(3, 3), match:sub(4, 4)
local hex_color = "#" .. r .. r .. g .. g .. b .. b