update
This commit is contained in:
parent
b1967bc6a1
commit
dd3965a777
619 changed files with 136 additions and 110 deletions
|
|
@ -64,7 +64,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [x] Confirm scope and priorities for this subphase
|
||||
- [x] Decision: Use native `exrc` + `secure` instead of neoconf (neoconf incompatible with Neovim 0.11+ vim.lsp.config API)
|
||||
- [x] Enable `exrc` and `secure` in settings.lua
|
||||
- [x] Implement `.nvim.lua` loader in LSP config using `on_new_config` hook
|
||||
- [x] Implement `.nvim.lua` loader in an `LspAttach` callback using the client's actual root directory
|
||||
- [x] Wire `intelephense.environment.includePaths` via `.nvim.lua`
|
||||
- [x] Create validation workspaces: `WORKSPACE_TEST/` and `EXTERNAL_TEST/` with sample PHP files
|
||||
- [x] Migrate to `vim.lsp.config()` and `vim.lsp.enable()` (Neovim 0.11+ native API)
|
||||
|
|
@ -74,18 +74,18 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
## Phase 3.7 — Clean LSP config
|
||||
- [x] Remove debug/helper logic from LSP config
|
||||
- [x] Migrate from deprecated `require('lspconfig')[server].setup()` to `vim.lsp.config()` + `vim.lsp.enable()`
|
||||
- [x] Use `on_new_config` hook for project-local settings loading (loads from actual root_dir, not cwd)
|
||||
- [x] Use `LspAttach` for project-local settings loading (loads from actual root_dir, not cwd)
|
||||
|
||||
## Phase 3.8 — Validate project-local LSP settings
|
||||
- [x] Create test workspaces with `.nvim.lua` files
|
||||
- [x] Validate settings load from actual root_dir via `on_new_config` hook
|
||||
- [x] Validate settings load from the attached client's actual root_dir
|
||||
- [x] Verify `gd` works for external library references via `intelephense.environment.includePaths`
|
||||
- [x] Clean up debug code and notifications
|
||||
|
||||
## Phase 3.9 — Native exrc + vim.lsp.config migration (RESOLVED)
|
||||
- [x] Discovered neoconf incompatible with Neovim 0.11+ (GitHub issue #116, unresolved since May 2024)
|
||||
- [x] Migrated to native `exrc` + `secure` approach (zero dependencies, aligned with minimal philosophy)
|
||||
- [x] Implemented `.nvim.lua` loader using `on_new_config` hook (loads from actual root_dir)
|
||||
- [x] Implemented secure `.nvim.lua` loading during `LspAttach` (loads from actual root_dir)
|
||||
- [x] Migrated from deprecated `require('lspconfig')` framework to `vim.lsp.config()` + `vim.lsp.enable()`
|
||||
- [x] Root detection handled by nvim-lspconfig's native configs (no custom root_dir needed)
|
||||
- [x] Validated `gd` works for external library symbols via `intelephense.environment.includePaths`
|
||||
|
|
@ -99,7 +99,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [x] Add minimal LSP on-attach keymaps (gd, gr, K, gD, gI)
|
||||
- [x] Add global LSP keymaps with fallback in `lua/keymaps.lua`
|
||||
- [x] Intelephense: set `single_file_support=false`, root detection via nvim-lspconfig defaults
|
||||
- [x] Project settings loaded via `on_new_config` hook from `.nvim.lua` files
|
||||
- [x] Project settings securely loaded during `LspAttach` from `.nvim.lua` files
|
||||
|
||||
## Phase 3.6 — LSP server management (Mason)
|
||||
- [x] Confirm scope and priorities for this subphase
|
||||
|
|
@ -263,7 +263,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
|
||||
## Phase 9.1 — Confirm scope and priorities
|
||||
- [x] Confirm scope and priorities for this phase
|
||||
- [x] Decision: Formatters - prettier (JS/TS/CSS/JSON/MD/HTML), phpcbf (PHP), stylua (Lua), black (Python)
|
||||
- [x] Decision: Formatters - prettier (JS/TS/CSS/JSON/MD/HTML), phpcbf (PHP), stylua (Lua), ruff_format via conform (Python; supersedes the original black plan)
|
||||
- [x] Decision: Linters - eslint (JS/TS), phpcs (PHP), markdownlint (Markdown), ruff (Python)
|
||||
- [x] Decision: Project-local executables preferred, fallback to global (node_modules/.bin/, vendor/bin/)
|
||||
- [x] Decision: phpcs/phpcbf already installed globally with WordPress coding standards - no installation needed
|
||||
|
|
@ -295,7 +295,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
|
||||
## Phase 9.3 — Mason formatter/linter installation
|
||||
- [x] Add `WhoIsSethDaniel/mason-tool-installer.nvim` for automated installation
|
||||
- [x] Install via Mason: prettier, eslint_d, markdownlint, stylua, black, ruff
|
||||
- [x] Install via Mason: prettier, eslint_d, markdownlint, stylua, and ruff
|
||||
- [x] Note: phpcs/phpcbf already installed globally, skip Mason installation
|
||||
- [x] Verify all tools available: Tools installed to ~/.local/share/nvim/mason/bin/
|
||||
|
||||
|
|
@ -417,7 +417,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- HTML: @ClassNameAttribute, @IdAttribute, @DataAttribute (all fg_weak for attribute names)
|
||||
- HTML: @DataAttributeValue (Function)
|
||||
- Cross-language: class values and #id values in HTML use same colors as CSS selectors
|
||||
- [ ] Test with existing custom queries (after/queries/css/highlights.scm, after/queries/html/highlights.scm)
|
||||
- [x] Test with existing custom queries (after/queries/css/highlights.scm, after/queries/html/highlights.scm)
|
||||
|
||||
## Phase 11.8 — Plugin highlight groups
|
||||
- [x] Create `lua/paper-tonic-modern/groups/lsp.lua`
|
||||
|
|
@ -453,11 +453,11 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- Colorscheme loads correctly: `vim.g.colors_name = 'paper-tonic-modern'`
|
||||
|
||||
## Phase 11.10 — Validation and polish
|
||||
- [ ] Test all primary languages (Lua, PHP, HTML, CSS, JS, Markdown)
|
||||
- [ ] Verify semantic consistency (CSS classes in HTML match CSS files)
|
||||
- [ ] Check plugin UI colors (Telescope, Gitsigns, nvim-cmp)
|
||||
- [ ] Verify LSP diagnostics are visible and distinct
|
||||
- [ ] Document color scheme in README
|
||||
- [x] Test all primary language parsers (Lua, PHP, HTML, CSS, JS, Markdown)
|
||||
- [x] Verify semantic highlight captures for matching CSS/HTML classes and IDs load correctly
|
||||
- [x] Check configured plugin UI highlight groups (Telescope, Gitsigns, nvim-cmp)
|
||||
- [x] Verify LSP diagnostic highlight groups are defined and distinct
|
||||
- [x] Document color scheme in README
|
||||
|
||||
## Phase 11.11 — Extract to separate repo (later)
|
||||
- [ ] Move to `~/projects/paper-tonic-modern/`
|
||||
|
|
@ -468,13 +468,15 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
## Phase 12 — Cleanup & Validation
|
||||
|
||||
## Phase 12.1 — Confirm scope and priorities
|
||||
- [ ] Confirm scope and priorities for this phase
|
||||
- [x] Confirm scope and priorities for this phase
|
||||
|
||||
## Phase 12.2 — Retire legacy files
|
||||
- [ ] Retire legacy Vimscript files (keep for reference until verified)
|
||||
- [x] Retire tracked `.vimtmp` backup artifacts and prevent them from being re-added
|
||||
- [x] Retire the broken `legacy/paper-tonic-original` symlink
|
||||
- [x] Keep the meaningful legacy Vimscript archive as historical reference
|
||||
|
||||
## Phase 12.3 — Startup performance
|
||||
- [ ] Validate startup performance (no errors, fast launch)
|
||||
- [x] Validate startup performance (clean headless launch in approximately 45 ms on 2026-10-27)
|
||||
|
||||
## Phase 12.4 — Navigation validation
|
||||
- [ ] Validate Telescope navigation + LSP jumps
|
||||
|
|
@ -488,10 +490,13 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [ ] Verify LSP (gd, gr, K, diagnostics)
|
||||
- [ ] Verify formatting (prettier, phpcbf, stylua)
|
||||
- [ ] Verify linting (eslint_d, phpcs, markdownlint)
|
||||
- [x] Confirm primary Tree-sitter parsers and HTML/CSS custom queries load
|
||||
- [x] Confirm Intelephense attaches with secure project-local includePaths
|
||||
- [x] Confirm configured formatter and linter executables resolve
|
||||
|
||||
## Phase 12.6 — Final polish
|
||||
- [x] Review all keymaps and ensure they're documented (README.md + :KeymapsGuide)
|
||||
- [ ] Update LOG.md with final architecture and usage
|
||||
- [x] Update LOG.md with final architecture and usage
|
||||
- [ ] Clean up any remaining debug code or temporary comments
|
||||
|
||||
---
|
||||
|
|
@ -511,5 +516,5 @@ Decisions & Changes:
|
|||
- **vim.lsp.config migration**: Migrated from deprecated `require('lspconfig')[server].setup()` to `vim.lsp.config()` + `vim.lsp.enable()` (Neovim 0.11+ native API).
|
||||
- **Project config format**: `.nvim.lua` files return `{ lsp = { [server_name] = { settings = {...} } } }`.
|
||||
- **Security model**: `secure` mode prompts user to trust `.nvim.lua` files before execution (one-time per file hash).
|
||||
- **Settings loading**: `on_new_config` hook loads project settings from actual `root_dir` (not cwd), ensuring correct behavior across different workspace structures.
|
||||
- **Settings loading**: An `LspAttach` callback securely reads project settings from the client's actual `root_dir` (not cwd), ensuring correct behavior across different workspace structures.
|
||||
- **Phase 4 Navigation Strategy**: Skipped Neo-tree in favor of built-in netrw for visual context and project structure browsing. Telescope for fuzzy finding. Oil.nvim for file manipulation (evaluation phase; alternative is mini.files). Rationale: User needs visual context and preview, not per-tab roots or complex tree features. File manipulation primarily done in shell, but Oil.nvim handles buffer sync issues when renaming/moving files.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue