diff --git a/.github/.release-please-manifest.json b/.github/.release-please-manifest.json index 06b9e409..3d20ea43 100644 --- a/.github/.release-please-manifest.json +++ b/.github/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "12.39.0" + ".": "12.43.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 22c46d22..df0deeba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,59 @@ # Changelog +## [12.43.0](https://github.com/LazyVim/LazyVim/compare/v12.42.0...v12.43.0) (2024-10-23) + + +### Features + +* **catppuccin:** bufferline integration. Closes [#4583](https://github.com/LazyVim/LazyVim/issues/4583). Closes [#4581](https://github.com/LazyVim/LazyVim/issues/4581) ([917c685](https://github.com/LazyVim/LazyVim/commit/917c685c1fb3774375ea2236e5e7aaa3d951fdda)) +* **extras:** expose `prios` to users for customization ([#4587](https://github.com/LazyVim/LazyVim/issues/4587)) ([e46cb62](https://github.com/LazyVim/LazyVim/commit/e46cb62a17e1f4b7f163f4e0fdd13593c4af3abd)) +* **keymaps:** allow `v:count1` when moving lines ([#4618](https://github.com/LazyVim/LazyVim/issues/4618)) ([b4eb4e1](https://github.com/LazyVim/LazyVim/commit/b4eb4e1f4a4024229fe40782fdb12683c1c69634)) + + +### Bug Fixes + +* **folds:** enable folds when treesitter available. Fixes [#4563](https://github.com/LazyVim/LazyVim/issues/4563) ([fe7003d](https://github.com/LazyVim/LazyVim/commit/fe7003de506ef7022a6c5f623476630d7bc30944)) + +## [12.42.0](https://github.com/LazyVim/LazyVim/compare/v12.41.0...v12.42.0) (2024-10-04) + + +### Features + +* **root:** provide `vim.g.root_lsp_ignore` to ignore LSP servers ([#4332](https://github.com/LazyVim/LazyVim/issues/4332)) ([90a9231](https://github.com/LazyVim/LazyVim/commit/90a92312aed79d4ee9d231f9eb3f8cd4debc46d1)) + + +### Bug Fixes + +* **gitsigns:** change name of filetype blame ([#4243](https://github.com/LazyVim/LazyVim/issues/4243)) ([3e257fd](https://github.com/LazyVim/LazyVim/commit/3e257fdb8874d7112446dc3ca1caf9c3263d8194)) +* **neotest:** properly initialize adapter with call table. Fixes [#4538](https://github.com/LazyVim/LazyVim/issues/4538) ([327e829](https://github.com/LazyVim/LazyVim/commit/327e829c156864975785914038fe4515dadcba87)) + +## [12.41.0](https://github.com/LazyVim/LazyVim/compare/v12.40.0...v12.41.0) (2024-10-02) + + +### Features + +* **rust:** update rustaceanvim ([#4477](https://github.com/LazyVim/LazyVim/issues/4477)) ([04515b1](https://github.com/LazyVim/LazyVim/commit/04515b139973173e90604f700d70f4e6d714da1f)) +* **toggle:** add more `M.wk` fields for better user customization ([#4521](https://github.com/LazyVim/LazyVim/issues/4521)) ([57c0c0b](https://github.com/LazyVim/LazyVim/commit/57c0c0bc9f86467d90c0c10aac680bdba8e56469)) + + +### Bug Fixes + +* **extras:** migrate away from deprecated `get_target_window()` in mini-files ([#4479](https://github.com/LazyVim/LazyVim/issues/4479)) ([b110550](https://github.com/LazyVim/LazyVim/commit/b110550393957a3434db1f4f0dc5804a9d31820f)) + +## [12.40.0](https://github.com/LazyVim/LazyVim/compare/v12.39.0...v12.40.0) (2024-10-02) + + +### Features + +* **lang:** add ts_ls to lsp config ([#4406](https://github.com/LazyVim/LazyVim/issues/4406)) ([34f0e56](https://github.com/LazyVim/LazyVim/commit/34f0e568d4e853cc2b4f0d628749cb66cd1b9aaf)) + + +### Bug Fixes + +* **extras:** rename `lspconfig.server_configurations` to `lspconfig.configs` ([#4518](https://github.com/LazyVim/LazyVim/issues/4518)) ([7432574](https://github.com/LazyVim/LazyVim/commit/74325743e7ff9d9efe9172ba96ec063c65ee219c)) +* **lsp:** backward compat with lspconfig refactor. Fixes [#4525](https://github.com/LazyVim/LazyVim/issues/4525). See [#4518](https://github.com/LazyVim/LazyVim/issues/4518) ([6e40252](https://github.com/LazyVim/LazyVim/commit/6e4025229d4628a7278cf7c09f942af6dfea05dd)) +* **render-markdown:** remove redundant `opts.file_types` ([#4506](https://github.com/LazyVim/LazyVim/issues/4506)) ([9b17672](https://github.com/LazyVim/LazyVim/commit/9b1767205cffd958ee9c74ceca299bd6c128b5f8)) + ## [12.39.0](https://github.com/LazyVim/LazyVim/compare/v12.38.2...v12.39.0) (2024-09-18) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index f7962147..c31bcadf 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -1,4 +1,4 @@ -*LazyVim.txt* For Neovim Last change: 2024 September 18 +*LazyVim.txt* For Neovim Last change: 2024 October 24 ============================================================================== Table of Contents *LazyVim-table-of-contents* diff --git a/lua/lazyvim/config/autocmds.lua b/lua/lazyvim/config/autocmds.lua index edb392db..6fe6b139 100644 --- a/lua/lazyvim/config/autocmds.lua +++ b/lua/lazyvim/config/autocmds.lua @@ -68,15 +68,20 @@ vim.api.nvim_create_autocmd("FileType", { "neotest-summary", "neotest-output-panel", "dbout", - "gitsigns.blame", + "gitsigns-blame", }, callback = function(event) vim.bo[event.buf].buflisted = false - vim.keymap.set("n", "q", "close", { - buffer = event.buf, - silent = true, - desc = "Quit buffer", - }) + vim.schedule(function() + vim.keymap.set("n", "q", function() + vim.cmd("close") + pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) + end, { + buffer = event.buf, + silent = true, + desc = "Quit buffer", + }) + end) end, }) diff --git a/lua/lazyvim/config/init.lua b/lua/lazyvim/config/init.lua index b15f7bec..70b54722 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 = "12.39.0" -- x-release-please-version +M.version = "12.43.0" -- x-release-please-version LazyVim.config = M ---@class LazyVimOptions diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index a6f1c574..84bba42c 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -23,12 +23,12 @@ map("n", "", "vertical resize -2", { desc = "Decrease Window Wi map("n", "", "vertical resize +2", { desc = "Increase Window Width" }) -- Move Lines -map("n", "", "m .+1==", { desc = "Move Down" }) -map("n", "", "m .-2==", { desc = "Move Up" }) +map("n", "", "execute 'move .+' . v:count1==", { desc = "Move Down" }) +map("n", "", "execute 'move .-' . (v:count1 + 1)==", { desc = "Move Up" }) map("i", "", "m .+1==gi", { desc = "Move Down" }) map("i", "", "m .-2==gi", { desc = "Move Up" }) -map("v", "", ":m '>+1gv=gv", { desc = "Move Down" }) -map("v", "", ":m '<-2gv=gv", { desc = "Move Up" }) +map("v", "", ":execute \"'<,'>move '>+\" . v:count1gv=gv", { desc = "Move Down" }) +map("v", "", ":execute \"'<,'>move '<-\" . (v:count1 + 1)gv=gv", { desc = "Move Up" }) -- buffers map("n", "", "bprevious", { desc = "Prev Buffer" }) diff --git a/lua/lazyvim/config/options.lua b/lua/lazyvim/config/options.lua index 81b5f081..3ad70c16 100644 --- a/lua/lazyvim/config/options.lua +++ b/lua/lazyvim/config/options.lua @@ -40,6 +40,10 @@ vim.g.lazyvim_statuscolumn = { -- * powershell -- LazyVim.terminal.setup("pwsh") +-- Set LSP servers to be ignored when used with `util.root.detectors.lsp` +-- for detecting the LSP root +vim.g.root_lsp_ignore = { "copilot" } + -- Hide deprecation warnings vim.g.deprecation_warnings = false diff --git a/lua/lazyvim/plugins/coding.lua b/lua/lazyvim/plugins/coding.lua index 8529ab20..18ce7407 100644 --- a/lua/lazyvim/plugins/coding.lua +++ b/lua/lazyvim/plugins/coding.lua @@ -85,6 +85,7 @@ return { -- snippets { "nvim-cmp", + optional = true, dependencies = { { "garymjr/nvim-snippets", @@ -209,6 +210,7 @@ return { -- Add lazydev source to cmp { "hrsh7th/nvim-cmp", + optional = true, opts = function(_, opts) table.insert(opts.sources, { name = "lazydev", group_index = 0 }) end, diff --git a/lua/lazyvim/plugins/colorscheme.lua b/lua/lazyvim/plugins/colorscheme.lua index c6376e1b..9087c3ad 100644 --- a/lua/lazyvim/plugins/colorscheme.lua +++ b/lua/lazyvim/plugins/colorscheme.lua @@ -50,5 +50,16 @@ return { which_key = true, }, }, + specs = { + { + "akinsho/bufferline.nvim", + optional = true, + opts = function(_, opts) + if (vim.g.colors_name or ""):find("catppuccin") then + opts.highlights = require("catppuccin.groups.integrations.bufferline").get() + end + end, + }, + }, }, } diff --git a/lua/lazyvim/plugins/extras/coding/tabnine.lua b/lua/lazyvim/plugins/extras/coding/tabnine.lua index f02fccc9..1c92a25d 100644 --- a/lua/lazyvim/plugins/extras/coding/tabnine.lua +++ b/lua/lazyvim/plugins/extras/coding/tabnine.lua @@ -2,6 +2,7 @@ return { -- Tabnine cmp source { "nvim-cmp", + optional = true, dependencies = { { "tzachar/cmp-tabnine", diff --git a/lua/lazyvim/plugins/extras/dap/core.lua b/lua/lazyvim/plugins/extras/dap/core.lua index 67a3d71b..ac6709f1 100644 --- a/lua/lazyvim/plugins/extras/dap/core.lua +++ b/lua/lazyvim/plugins/extras/dap/core.lua @@ -69,11 +69,6 @@ return { vscode.json_decode = function(str) return vim.json.decode(json.json_strip_comments(str)) end - - -- Extends dap.configurations with entries read from .vscode/launch.json - if vim.fn.filereadable(".vscode/launch.json") then - vscode.load_launchjs() - end end, }, diff --git a/lua/lazyvim/plugins/extras/editor/mini-files.lua b/lua/lazyvim/plugins/extras/editor/mini-files.lua index 7f677ebf..461e6dca 100644 --- a/lua/lazyvim/plugins/extras/editor/mini-files.lua +++ b/lua/lazyvim/plugins/extras/editor/mini-files.lua @@ -48,7 +48,7 @@ return { local map_split = function(buf_id, lhs, direction, close_on_file) local rhs = function() local new_target_window - local cur_target_window = require("mini.files").get_target_window() + local cur_target_window = require("mini.files").get_explorer_state().target_window if cur_target_window ~= nil then vim.api.nvim_win_call(cur_target_window, function() vim.cmd("belowright " .. direction .. " split") diff --git a/lua/lazyvim/plugins/extras/lang/java.lua b/lua/lazyvim/plugins/extras/lang/java.lua index 97e37ef5..6b83fe29 100644 --- a/lua/lazyvim/plugins/extras/lang/java.lua +++ b/lua/lazyvim/plugins/extras/lang/java.lua @@ -1,4 +1,4 @@ --- This is the same as in lspconfig.server_configurations.jdtls, but avoids +-- This is the same as in lspconfig.configs.jdtls, but avoids -- needing to require that when this module loads. local java_filetypes = { "java" } @@ -76,7 +76,7 @@ return { return { -- How to find the root dir for a given filename. The default comes from -- lspconfig which provides a function specifically for java projects. - root_dir = require("lspconfig.server_configurations.jdtls").default_config.root_dir, + root_dir = LazyVim.lsp.get_raw_config("jdtls").default_config.root_dir, -- How to find the project name for a given root dir. project_name = function(root_dir) diff --git a/lua/lazyvim/plugins/extras/lang/lean.lua b/lua/lazyvim/plugins/extras/lang/lean.lua index 9ac37f7d..58488372 100644 --- a/lua/lazyvim/plugins/extras/lang/lean.lua +++ b/lua/lazyvim/plugins/extras/lang/lean.lua @@ -17,7 +17,7 @@ return { -- -- false to disable, otherwise should be a table of options to pass to `leanls` -- - -- See https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#leanls for details. + -- See https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#leanls for details. -- In particular ensure you have followed instructions setting up a callback -- for `LspAttach` which sets your key bindings! lsp = { diff --git a/lua/lazyvim/plugins/extras/lang/markdown.lua b/lua/lazyvim/plugins/extras/lang/markdown.lua index 7ecf01e8..4829098b 100644 --- a/lua/lazyvim/plugins/extras/lang/markdown.lua +++ b/lua/lazyvim/plugins/extras/lang/markdown.lua @@ -95,7 +95,6 @@ return { { "MeanderingProgrammer/render-markdown.nvim", opts = { - file_types = { "markdown", "norg", "rmd", "org" }, code = { sign = false, width = "block", diff --git a/lua/lazyvim/plugins/extras/lang/python.lua b/lua/lazyvim/plugins/extras/lang/python.lua index f85b23be..4c098452 100644 --- a/lua/lazyvim/plugins/extras/lang/python.lua +++ b/lua/lazyvim/plugins/extras/lang/python.lua @@ -133,6 +133,7 @@ return { { "hrsh7th/nvim-cmp", + optional = true, opts = function(_, opts) opts.auto_brackets = opts.auto_brackets or {} table.insert(opts.auto_brackets, "python") diff --git a/lua/lazyvim/plugins/extras/lang/rust.lua b/lua/lazyvim/plugins/extras/lang/rust.lua index 9e8655b4..145940ca 100644 --- a/lua/lazyvim/plugins/extras/lang/rust.lua +++ b/lua/lazyvim/plugins/extras/lang/rust.lua @@ -9,6 +9,7 @@ return { -- Extend auto completion { "hrsh7th/nvim-cmp", + optional = true, dependencies = { { "Saecki/crates.nvim", @@ -42,7 +43,7 @@ return { { "mrcjkb/rustaceanvim", - version = "^4", -- Recommended + version = vim.fn.has("nvim-0.10.0") == 0 and "^4" or false, ft = { "rust" }, opts = { server = { diff --git a/lua/lazyvim/plugins/extras/lang/tailwind.lua b/lua/lazyvim/plugins/extras/lang/tailwind.lua index da6a3291..cbdd612e 100644 --- a/lua/lazyvim/plugins/extras/lang/tailwind.lua +++ b/lua/lazyvim/plugins/extras/lang/tailwind.lua @@ -28,7 +28,7 @@ return { }, setup = { tailwindcss = function(_, opts) - local tw = require("lspconfig.server_configurations.tailwindcss") + local tw = LazyVim.lsp.get_raw_config("tailwindcss") opts.filetypes = opts.filetypes or {} -- Add default filetypes @@ -59,6 +59,7 @@ return { }, { "hrsh7th/nvim-cmp", + optional = true, dependencies = { { "roobert/tailwindcss-colorizer-cmp.nvim", opts = {} }, }, diff --git a/lua/lazyvim/plugins/extras/lang/tex.lua b/lua/lazyvim/plugins/extras/lang/tex.lua index 8bddb17d..870a3fda 100644 --- a/lua/lazyvim/plugins/extras/lang/tex.lua +++ b/lua/lazyvim/plugins/extras/lang/tex.lua @@ -30,7 +30,7 @@ return { vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog" end, keys = { - { "l", "", desc = "+vimtext" }, + { "l", "", desc = "+vimtex" }, }, }, diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 71ec4604..dd5ca25c 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -19,9 +19,14 @@ return { opts = { -- make sure mason installs the server servers = { + --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now + --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = { enabled = false, }, + ts_ls = { + enabled = false, + }, vtsls = { -- explicitly add default filetypes, so that we can extend -- them in related extras @@ -114,10 +119,16 @@ return { }, }, setup = { + --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now + --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically tsserver = function() -- disable tsserver return true end, + ts_ls = function() + -- disable tsserver + return true + end, vtsls = function(_, opts) LazyVim.lsp.on_attach(function(client, buffer) client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) diff --git a/lua/lazyvim/plugins/extras/test/core.lua b/lua/lazyvim/plugins/extras/test/core.lua index 5579ee89..f9d8a4ac 100644 --- a/lua/lazyvim/plugins/extras/test/core.lua +++ b/lua/lazyvim/plugins/extras/test/core.lua @@ -90,7 +90,7 @@ return { adapter.adapter(config) adapter = adapter.adapter elseif meta and meta.__call then - adapter(config) + adapter = adapter(config) else error("Adapter " .. name .. " does not support setup") end diff --git a/lua/lazyvim/plugins/xtras.lua b/lua/lazyvim/plugins/xtras.lua index 761569c5..0527dde5 100644 --- a/lua/lazyvim/plugins/xtras.lua +++ b/lua/lazyvim/plugins/xtras.lua @@ -10,6 +10,10 @@ local prios = { ["lazyvim.plugins.extras.editor.outline"] = 100, } +if vim.g.xtras_prios then + prios = vim.tbl_deep_extend("force", prios, vim.g.xtras_prios or {}) +end + ---@type string[] local extras = LazyVim.dedup(LazyVim.config.json.data.extras) diff --git a/lua/lazyvim/util/lsp.lua b/lua/lazyvim/util/lsp.lua index 59c35314..7efd8622 100644 --- a/lua/lazyvim/util/lsp.lua +++ b/lua/lazyvim/util/lsp.lua @@ -181,6 +181,15 @@ function M.get_config(server) return rawget(configs, server) end +---@return {default_config:lspconfig.Config} +function M.get_raw_config(server) + local ok, ret = pcall(require, "lspconfig.configs." .. server) + if ok then + return ret + end + return require("lspconfig.server_configurations." .. server) +end + function M.is_enabled(server) local c = M.get_config(server) return c and c.enabled ~= false diff --git a/lua/lazyvim/util/root.lua b/lua/lazyvim/util/root.lua index fc81e92f..b723b227 100644 --- a/lua/lazyvim/util/root.lua +++ b/lua/lazyvim/util/root.lua @@ -29,7 +29,11 @@ function M.detectors.lsp(buf) return {} end local roots = {} ---@type string[] - for _, client in pairs(LazyVim.lsp.get_clients({ bufnr = buf })) do + local clients = LazyVim.lsp.get_clients({ bufnr = buf }) + clients = vim.tbl_filter(function(client) + return not vim.tbl_contains(vim.g.root_lsp_ignore or {}, client.name) + end, clients) + for _, client in pairs(clients) do local workspace = client.config.workspace_folders for _, ws in pairs(workspace or {}) do roots[#roots + 1] = vim.uri_to_fname(ws.uri) diff --git a/lua/lazyvim/util/toggle.lua b/lua/lazyvim/util/toggle.lua index 46e92c78..d693dd9d 100644 --- a/lua/lazyvim/util/toggle.lua +++ b/lua/lazyvim/util/toggle.lua @@ -3,6 +3,9 @@ local M = {} ---@class lazyvim.Toggle ---@field name string +---@field icon? string +---@field color_enabled? string +---@field color_disabled? string ---@field get fun():boolean ---@field set fun(state:boolean) @@ -50,7 +53,8 @@ function M.wk(lhs, toggle) { lhs, icon = function() - return safe_get() and { icon = " ", color = "green" } or { icon = " ", color = "yellow" } + return safe_get() and { icon = toggle.icon or " ", color = toggle.color_enabled or "green" } + or { icon = toggle.icon or " ", color = toggle.color_disabled or "yellow" } end, desc = function() return (safe_get() and "Disable " or "Enable ") .. toggle.name diff --git a/lua/lazyvim/util/ui.lua b/lua/lazyvim/util/ui.lua index 28537bce..7c6780ea 100644 --- a/lua/lazyvim/util/ui.lua +++ b/lua/lazyvim/util/ui.lua @@ -197,8 +197,8 @@ function M.foldexpr() return "0" end - -- don't use treesitter folds for non-file buffers - if vim.bo[buf].buftype ~= "" then + -- don't use treesitter folds for terminal + if vim.bo[buf].buftype == "terminal" then return "0" end