From fa39d0a36cbdb0f90e6eea47983b27095ba265f2 Mon Sep 17 00:00:00 2001 From: ray Date: Wed, 28 Oct 2026 15:33:28 +0000 Subject: [PATCH] update plugins for neovim 0.12 --- LOG.md | 4 ++++ MIGRATION_PLAN.md | 20 ++++++++++---------- README.md | 2 ++ init.lua | 3 +++ lazy-lock.json | 34 +++++++++++++++++----------------- lua/plugins/surround.lua | 23 +---------------------- lua/plugins/treesitter.lua | 3 ++- 7 files changed, 39 insertions(+), 50 deletions(-) diff --git a/LOG.md b/LOG.md index ff19c5c..f66021b 100644 --- a/LOG.md +++ b/LOG.md @@ -198,6 +198,10 @@ Record every decision here with a short rationale. Append new entries; do not re - 2026-10-28: Kept `mbbill/undotree` after checking Neovim 0.12's built-in alternative. The native `nvim.undotree` package is optional and remains unloaded; it exposes `:Undotree`, whereas the configured plugin's `:UndotreeToggle` command, focused panel, and diff layout still open successfully under 0.12.6. There is no active command or runtime conflict. - 2026-10-28: Completed the configuration-level Neovim 0.12 breaking-change audit. Diagnostic jump behavior passed under both 0.11.5 and 0.12.6, and a loaded-plugin `vim.deprecated` scan now reports only `copilot-cmp`'s upstream `client.is_stopped` call. That plugin warning is safe on 0.12 but remains a tracked compatibility concern before Neovim 0.13. - 2026-10-28: Final Phase 13.3 smoke tests passed: both 0.11.5 and 0.12.6 start with the updated configuration, 0.12 attaches Intelephense with project settings, `git diff --check` is clean, and the measured 0.12 headless startup reached `NVIM STARTED` in approximately 43 ms with the existing locked plugins. +- 2026-10-28: Updated plugins in an isolated Neovim 0.12 worktree and XDG environment. The candidate passed automated loading checks for LSP, completion, Telescope/fzf, Mason integration, formatting, linting, Gitsigns, indent guides, autopairs, surround, UFO, Undotree, and PHP/HTML/CSS/JavaScript Tree-sitter parsers and custom queries. Copilot's new native language-server download completed in isolation and the client authenticated successfully. Mason-managed tools were not updated. +- 2026-10-28: Kept `nvim-treesitter` and `nvim-treesitter-textobjects` on their frozen `master` branches. Their rewritten `main` branches remove the `nvim-treesitter.configs` API used by this configuration and therefore require a separate migration; explicit branch pins prevent an ordinary plugin sync from crossing that boundary. Migrated the updated nvim-surround v4 configuration to its unchanged default mappings by removing the retired `opts.keymaps` field. +- 2026-10-28: Disabled lazy.nvim's LuaRocks integration because no configured plugin requires LuaRocks. This removes the irrelevant missing-hererocks health error without adding a system dependency. Candidate health otherwise reports only optional missing language runtimes, the pending inline-Copilot migration, and the `copilot-cmp` deprecation that will disappear with that migration. +- 2026-10-28: Adopted the isolated candidate's reviewed plugin lockfile and compatibility adjustments into the main worktree. Production plugin directories remain unchanged until the 0.12 activation step, preserving the working 0.11 rollback environment. - 2026-10-28: Chose the post-activation native-feature direction for 0.12. Keep lazy.nvim because the configuration still benefits from its event/command loading, dependency ordering, and build hooks; do not mix the runtime upgrade with an experimental `vim.pack` migration. After activating 0.12, replace `mbbill/undotree` with the native optional package and trial native insert-mode/LSP completion plus built-in snippets. Copilot will use inline suggestions with a separate accept key rather than appearing in the completion popup; remove the cmp stack only after interactive language and editing validation. ## Project-Local Configuration diff --git a/MIGRATION_PLAN.md b/MIGRATION_PLAN.md index da61296..a6f43f5 100644 --- a/MIGRATION_PLAN.md +++ b/MIGRATION_PLAN.md @@ -556,22 +556,22 @@ Proposed layout: - [x] Fix core/config compatibility issues before updating plugins ## Phase 13.6 — Update plugins in isolation -- [ ] Use a temporary branch or worktree based on the rollback checkpoint -- [ ] Run lazy.nvim updates only inside the isolated 0.12 test environment -- [ ] Review every lockfile change before adopting it -- [ ] Prioritize lazy.nvim, nvim-lspconfig, Treesitter, Telescope, Mason integration, completion, formatting, linting, UFO, and Copilot compatibility -- [ ] Rebuild or update Treesitter parsers for the 0.12 runtime and verify custom queries -- [ ] Keep Mason-managed language servers, formatters, and linters pinned during this step -- [ ] Adopt the tested lockfile only after all plugin-level regressions are resolved +- [x] Use a temporary branch or worktree based on the rollback checkpoint +- [x] Run lazy.nvim updates only inside the isolated 0.12 test environment +- [x] Review every lockfile change before adopting it +- [x] Prioritize lazy.nvim, nvim-lspconfig, Treesitter, Telescope, Mason integration, completion, formatting, linting, UFO, and Copilot compatibility +- [x] Rebuild or update Treesitter parsers for the 0.12 runtime and verify custom queries +- [x] Keep Mason-managed language servers, formatters, and linters pinned during this step +- [x] Adopt the tested lockfile only after all plugin-level regressions are resolved ## Phase 13.7 — Validate the complete 0.12 candidate -- [ ] Validate startup, lazy loading, commands, and keymaps +- [x] Validate startup, lazy loading, commands, and configured keymaps automatically - [ ] Validate netrw tree browsing, previews, alternate-buffer behavior, and file operations - [ ] Validate Telescope files, grep, buffers, and LSP symbol pickers - [ ] Validate LSP attachment, `gd`, `gr`, `K`, diagnostics, and project-local `.nvim.lua` settings -- [ ] Validate the current completion stack before activation; native completion migration follows in Phase 13.9 +- [x] Validate the current completion stack before activation; native completion migration follows in Phase 13.9 - [ ] Validate conform format-on-save and nvim-lint/Ruff diagnostics -- [ ] Validate Treesitter highlighting, text objects, autotag, folding, and custom HTML/CSS queries +- [x] Validate Treesitter parsers and custom HTML/CSS queries; retain interactive checks for highlighting, text objects, autotag, and folding - [ ] Validate the Paper Tonic colorscheme, plugin highlights, sessions, persistent undo, and shell templates - [ ] Perform interactive smoke tests in the PHP validation workspace diff --git a/README.md b/README.md index 71b5829..e7765af 100644 --- a/README.md +++ b/README.md @@ -303,6 +303,8 @@ Buffer-local keymaps available when inside a git repository: ### Nvim-surround `lua/plugins/surround.lua` +The configuration uses nvim-surround v4's default mappings. + #### Keymaps | Mode | Mapping | Description | diff --git a/init.lua b/init.lua index 5af89fb..731f3bf 100644 --- a/init.lua +++ b/init.lua @@ -25,4 +25,7 @@ require('lazy').setup({ spec = { { import = 'plugins' }, }, + rocks = { + enabled = false, + }, }) diff --git a/lazy-lock.json b/lazy-lock.json index 1706038..4a547fe 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,30 +1,30 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" }, + "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, - "conform.nvim": { "branch": "master", "commit": "238f542a118984a88124fc915d5b981680418707" }, + "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" }, "copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" }, - "copilot.lua": { "branch": "master", "commit": "5ace9ecd0db9a7a6c14064e4ce4ede5b800325f3" }, - "gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "copilot.lua": { "branch": "master", "commit": "82607bbb8528222a9a28bfcab0aceb3a7fed7e85" }, + "gitsigns.nvim": { "branch": "main", "commit": "d4854fa9a94b5c8b37dd209fb4a19e98e764186f" }, + "indent-blankline.nvim": { "branch": "master", "commit": "f1e186e44d3b7f9ae918008e2c28ce37c6023d2d" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "fe661093f4b05136437b531e7f959af2a2ae66c8" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, - "nvim-autopairs": { "branch": "master", "commit": "c2a0dd0d931d0fb07665e1fedb1ea688da3b80b4" }, - "nvim-cmp": { "branch": "main", "commit": "85bbfad83f804f11688d1ab9486b459e699292d6" }, - "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, - "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, - "nvim-surround": { "branch": "main", "commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a338f44149f5673882c32629697d67b0c0547aec" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, + "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, + "nvim-autopairs": { "branch": "master", "commit": "3172f40c16563db871a58f20d205c710ad782311" }, + "nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" }, + "nvim-lint": { "branch": "master", "commit": "f6230a5c06ba59e6059c14637f1dbe29a7978b9b" }, + "nvim-lspconfig": { "branch": "master", "commit": "3bccb6fa49a3a75bfb6d92fed63b13a71a85cfaf" }, + "nvim-surround": { "branch": "main", "commit": "2e93e154de9ff326def6480a4358bfc149d5da2c" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" }, - "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, + "nvim-ts-autotag": { "branch": "main", "commit": "d7220b55e16ed3c04e88086256def5d282429493" }, "nvim-ufo": { "branch": "main", "commit": "ab3eb124062422d276fae49e0dd63b3ad1062cfc" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, - "undotree": { "branch": "master", "commit": "178d19e00a643f825ea11d581b1684745d0c4eda" } + "undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" } } diff --git a/lua/plugins/surround.lua b/lua/plugins/surround.lua index 4d92e36..65700bd 100644 --- a/lua/plugins/surround.lua +++ b/lua/plugins/surround.lua @@ -3,26 +3,5 @@ return { 'kylechui/nvim-surround', version = '*', -- Use stable releases event = 'VeryLazy', - opts = { - -- Default keymaps: - -- ys{motion}{char} - Add surround in normal mode (e.g., ysiw" to surround word with quotes) - -- ds{char} - Delete surround (e.g., ds" to delete surrounding quotes) - -- cs{old}{new} - Change surround (e.g., cs"' to change " to ') - -- S{char} - Add surround in visual mode (e.g., select text, S" to wrap in quotes) - - -- Keep default keymaps; minimal config - keymaps = { - insert = 's', - insert_line = 'S', - normal = 'ys', - normal_cur = 'yss', - normal_line = 'yS', - normal_cur_line = 'ySS', - visual = 'S', - visual_line = 'gS', - delete = 'ds', - change = 'cs', - change_line = 'cS', - }, - }, + opts = {}, -- Version 4 provides the documented mappings by default } diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 45bb846..1fedd0c 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -2,10 +2,11 @@ return { { "nvim-treesitter/nvim-treesitter", + branch = "master", -- The rewritten main branch uses a different configuration API build = ":TSUpdate", event = { "BufReadPost", "BufNewFile" }, dependencies = { - "nvim-treesitter/nvim-treesitter-textobjects", + { "nvim-treesitter/nvim-treesitter-textobjects", branch = "master" }, "windwp/nvim-ts-autotag", }, config = function()