nvim/MIGRATION_PLAN.md

3.3 KiB

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

  • Create AGENTS.md with rules

Phase 1 — Clean & Archive Legacy Config

  • Confirm scope and priorities for this phase
  • Inventory existing Vimscript, plugin files, and directories
  • Create legacy/ archive folder within this config
  • Move legacy init files and plugin directories into legacy/ (do not delete)
  • Optionally add legacy/README.md noting what was archived
  • Keep undodir, spell, view, UltiSnips, templates as-is for now (review later)

Phase 2 — Bootstrap

  • Confirm scope and priorities for this phase
  • Scaffold Lua config skeleton (init.lua, lua/settings.lua, lua/keymaps.lua, lua/autocmds.lua, lua/utils.lua, lua/plugins/)
  • Bootstrap lazy.nvim plugin manager
  • Disable unused providers (ruby, perl, node)

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.