# Neovim Migration Checklist Source of truth for the step-by-step rebuild. Keep this concise and up to date. See details in `neovim-migration-guide.md`. ## Phase 0 — Ground Rules - [x] Create AGENTS.md with rules ## Phase 1 — Clean & Archive Legacy Config - [x] Confirm scope and priorities for this phase - [x] Inventory existing Vimscript, plugin files, and directories - [x] Create `legacy/` archive folder within this config - [x] Move legacy init files and plugin directories into `legacy/` (do not delete) - [x] Optionally add `legacy/README.md` noting what was archived - [x] Keep `undodir`, `spell`, `view`, `UltiSnips`, `templates` as-is for now (review later) ## Phase 2 — Bootstrap - [x] Confirm scope and priorities for this phase - [x] Scaffold Lua config skeleton (`init.lua`, `lua/settings.lua`, `lua/keymaps.lua`, `lua/autocmds.lua`, `lua/utils.lua`, `lua/plugins/`) - [x] Bootstrap `lazy.nvim` plugin manager - [x] Disable unused providers (ruby, perl, node) - [x] Ensure lazy boots without specs (add empty `lua/plugins/init.lua`) ## Phase 3 — Core Editing & LSP - [ ] Confirm scope and priorities for this phase - [ ] Port non-plugin settings to Lua (options, listchars, showbreak, spelllang=en_gb) - [ ] Add core completion stack: `nvim-cmp`, `cmp-nvim-lsp`, `cmp-buffer`, `cmp-path`, `LuaSnip` - [ ] Add `nvim-lspconfig` with minimal defaults (no over-configuration) ## Phase 4 — Navigation - [ ] Confirm scope and priorities for this phase - [ ] Add `neo-tree.nvim` with per-tab roots, sidebar toggle, floating view, and preview keymap (no buffer pollution) - [ ] Add `telescope.nvim` (+ optional `telescope-fzf-native.nvim`) and basic pickers ## Phase 5 — Treesitter - [ ] Confirm scope and priorities for this phase - [ ] Add `nvim-treesitter` with incremental selection, highlighting - [ ] Add `nvim-treesitter-textobjects` - [ ] Add `nvim-ts-autotag` ## Phase 6 — UX / Editing - [ ] Confirm scope and priorities for this phase - [ ] Add `numToStr/Comment.nvim` - [ ] Add `kylechui/nvim-surround` - [ ] Add `windwp/nvim-autopairs` - [ ] Add `lukas-reineke/indent-blankline.nvim` - [ ] Add `ggandor/leap.nvim` or `folke/flash.nvim` - [ ] Add `kevinhwang91/nvim-ufo` for folding - [ ] (Optional) Add `mbbill/undotree` ## Phase 7 — Git, Markdown, Copilot, Formatting - [ ] Confirm scope and priorities for this phase - [ ] Add `lewis6991/gitsigns.nvim` - [ ] Add `render-markdown.nvim` - [ ] Add `zbirenbaum/copilot.lua` + `copilot-cmp` - [ ] Add `nvimtools/none-ls.nvim` with minimal formatters/linters ## Phase 8 — Migrate Kept Behaviours - [ ] Confirm scope and priorities for this phase - [ ] Abbreviations: `adn→and`, `waht→what`, `tehn→then`, `functin→function`, `positin→position` - [ ] Templates: auto-populate new `.sh` from template - [ ] Whitespace highlighting (modern approach) - [ ] Persistent folds (via UFO) ## Phase 9 — Cleanup & Validation - [ ] Confirm scope and priorities for this phase - [ ] Retire legacy Vimscript files (keep for reference until verified) - [ ] Validate startup performance (no errors, fast launch) - [ ] Validate tab-per-context workflow with Neo-tree - [ ] Validate Telescope navigation + LSP jumps - [ ] Validate HTML/PHP/JS/Markdown tooling --- Notes: - Keep plugin specs minimal; configure in their own `lua/plugins/*.lua` files. - Avoid adding plugins not listed in the guide unless explicitly requested. - Prefer simple defaults; only add settings that clearly improve workflow.