update
This commit is contained in:
parent
0e257cc231
commit
f6a1c8640c
5 changed files with 33 additions and 32 deletions
3
LOG.md
3
LOG.md
|
|
@ -189,6 +189,9 @@ Record every decision here with a short rationale. Append new entries; do not re
|
|||
- 2026-10-27: Removed Oil.nvim after workflow evaluation. Netrw is now the sole tree browser and file explorer, preserving the same navigation model on remote systems; Telescope remains dedicated to fuzzy finding. Removed Oil's plugin spec, lockfile entry, keymaps, colorscheme groups, and active documentation.
|
||||
- 2026-10-27: Planned the next work in two ordered phases. Phase 13 upgrades the standalone Neovim installation from 0.11.5 to stable 0.12.6 using versioned installations, isolated plugin testing, an unchanged initial lockfile, and an immediate rollback path; plugin updates follow only after core compatibility, and Mason tools remain a later step. Phase 14 then adds netrw-only live previews and read-only directory summaries against the validated 0.12 runtime.
|
||||
- 2026-10-27: Recorded the pre-upgrade rollback baseline: Neovim 0.11.5, 28 active lazy.nvim plugin specs after Oil removal, 32 compiled Treesitter parser binaries, clean headless startup, all active Lua files parsing, and `git diff --check` passing. The standalone 0.11.5 installation remains untouched under `/opt/neovim/nvim-linux-x86_64`.
|
||||
- 2026-10-28: Installed the verified official Neovim 0.12.6 archive alongside the untouched 0.11.5 installation at `/opt/neovim/nvim-0.12.6`. Initial interactive startup with the existing configuration succeeded. Removed redundant `vim.lsp.with()` wrappers for hover and signature-help borders after 0.12 reported their deprecation; the shared `vim.lsp.util.open_floating_preview` override already applies the same border on both 0.11 and 0.12. Clean headless startup then passed with the existing locked plugins under both binaries.
|
||||
- 2026-10-28: The 0.12 health review exposed overlapping LSP activation: mason-lspconfig v2 automatically enabled every installed server while `lsp.lua` explicitly configured and enabled the selected set. Disabled mason-lspconfig automatic activation, removed its obsolete `automatic_installation` option, and aligned it with nvim-lspconfig's buffer events. This prevents unintended activation of installed tools such as StyLua's LSP mode and leaves `lsp.lua` as the single activation authority.
|
||||
- 2026-10-28: Live Intelephense attachment passed under both Neovim 0.11.5 and 0.12.6 after the LSP activation cleanup. The test also exposed the deprecated function-style `client.notify(...)` call in the project-settings callback; changed it to `client:notify(...)`, which works on both supported versions.
|
||||
|
||||
## Project-Local Configuration
|
||||
|
||||
|
|
|
|||
|
|
@ -505,7 +505,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
## Phase 13 — Controlled Neovim 0.12 Upgrade
|
||||
|
||||
## Phase 13.1 — Confirm scope and upgrade policy
|
||||
- [ ] Confirm scope and priorities for this phase
|
||||
- [x] Confirm scope and priorities for this phase
|
||||
- [x] Target the current stable release: Neovim 0.12.6
|
||||
- [x] Continue using the official standalone Linux archive; do not hand Neovim management to pacman
|
||||
- [x] Keep Neovim 0.11.5 available until the upgraded setup has passed normal-use validation
|
||||
|
|
@ -519,6 +519,9 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
|
||||
## Phase 13.3 — Audit 0.12 compatibility before switching
|
||||
- [ ] Review the Neovim 0.12 breaking changes against the active configuration
|
||||
- [x] Remove deprecated `vim.lsp.with()` handler wrappers; the shared floating-preview override already supplies the configured border
|
||||
- [x] Disable mason-lspconfig's automatic server activation and remove its obsolete `automatic_installation` option; `lsp.lua` remains the sole activation authority
|
||||
- [x] Replace deprecated `client.notify(...)` with the 0.12-compatible `client:notify(...)` method for project-local settings
|
||||
- [ ] Replace deprecated `vim.loop` usage with `vim.uv`
|
||||
- [ ] Replace deprecated diagnostic navigation APIs with the current diagnostic jump API
|
||||
- [ ] Revalidate native `exrc` behavior now that 0.12 searches parent directories
|
||||
|
|
@ -528,9 +531,9 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [ ] Check for conflicts or redundancy with Neovim 0.12's built-in `:Undotree`; do not remove the plugin without a separate decision
|
||||
|
||||
## Phase 13.4 — Install Neovim 0.12.6 alongside 0.11.5
|
||||
- [ ] Download the official `nvim-linux-x86_64.tar.gz` release archive
|
||||
- [ ] Verify the archive against the SHA-256 digest published with the release
|
||||
- [ ] Install into a versioned directory without replacing 0.11.5
|
||||
- [x] Download the official `nvim-linux-x86_64.tar.gz` release archive
|
||||
- [x] Verify the archive against the SHA-256 digest published with the release
|
||||
- [x] Install into a versioned directory without replacing 0.11.5
|
||||
- [ ] Introduce an explicit `current` symlink (or equivalent atomic selector) for the active version
|
||||
- [ ] Update the external PATH configuration only after both versioned binaries are verified
|
||||
- [ ] Document the one-command rollback to 0.11.5
|
||||
|
|
@ -548,7 +551,7 @@ Proposed layout:
|
|||
- [ ] Install the currently locked plugin revisions into the isolated data directory
|
||||
- [ ] Keep the production plugin and Mason directories untouched
|
||||
- [ ] Validate headless startup and capture startup time
|
||||
- [ ] Run `:checkhealth` and review every relevant warning/error
|
||||
- [x] Run `:checkhealth` and review every relevant warning/error
|
||||
- [ ] Verify netrw can be loaded and `:Explore` opens the expected tree browser
|
||||
- [ ] Fix core/config compatibility issues before updating plugins
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ return {
|
|||
|
||||
-- Send didChangeConfiguration to update the server
|
||||
vim.schedule(function()
|
||||
client.notify("workspace/didChangeConfiguration", { settings = client.settings })
|
||||
client:notify("workspace/didChangeConfiguration", { settings = client.settings })
|
||||
end)
|
||||
end
|
||||
end,
|
||||
|
|
|
|||
|
|
@ -1,22 +1,24 @@
|
|||
return {
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
dependencies = { "williamboman/mason.nvim" },
|
||||
config = function()
|
||||
require("mason-lspconfig").setup({
|
||||
-- mason-lspconfig currently expects the legacy name "tsserver"
|
||||
-- Note: lua_ls installed via system package manager (not Mason)
|
||||
ensure_installed = {
|
||||
"ts_ls",
|
||||
"html",
|
||||
"cssls",
|
||||
"jsonls",
|
||||
"bashls",
|
||||
"marksman",
|
||||
"intelephense",
|
||||
"pyright",
|
||||
"ruff", -- Ruff LSP for Python linting + formatting
|
||||
},
|
||||
automatic_installation = true,
|
||||
})
|
||||
end,
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
},
|
||||
opts = {
|
||||
-- lua_ls is installed through the system package manager.
|
||||
ensure_installed = {
|
||||
"ts_ls",
|
||||
"html",
|
||||
"cssls",
|
||||
"jsonls",
|
||||
"bashls",
|
||||
"marksman",
|
||||
"intelephense",
|
||||
"pyright",
|
||||
"ruff", -- Python linting and code actions
|
||||
},
|
||||
-- lsp.lua owns configuration and activation through vim.lsp.config/enable.
|
||||
automatic_enable = false,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,10 +187,3 @@ function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...)
|
|||
|
||||
return orig_util_open_floating_preview(contents, syntax, opts, ...)
|
||||
end
|
||||
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = border,
|
||||
})
|
||||
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = border,
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue