update
This commit is contained in:
parent
2638104bae
commit
6befee365b
|
|
@ -59,7 +59,7 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [x] Add core completion stack: `nvim-cmp`, `cmp-nvim-lsp`, `cmp-buffer`, `cmp-path`, `LuaSnip`
|
||||
|
||||
## Phase 3.4 — Project‑local configuration (neoconf)
|
||||
- [ ] Confirm scope and priorities for this subphase
|
||||
- [x] Confirm scope and priorities for this subphase
|
||||
- [x] Choose approach: use `folke/neoconf.nvim` (replaces custom loader)
|
||||
- [x] Add `folke/neoconf.nvim` plugin spec and minimal setup
|
||||
- [x] Document `.neoconf.json` usage and example in README
|
||||
|
|
@ -76,6 +76,34 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
|
|||
- [x] Temporarily inject `intelephense.environment.includePaths` via lspconfig for `WORKSPACE_SIMPLE` to validate goto-definition
|
||||
- [x] After validation, remove the temporary injection and rely on neoconf
|
||||
|
||||
## Phase 3.9 — Neoconf + Root Fix (BLOCKER)
|
||||
|
||||
## Phase 3.9.1 — Confirm neoconf merge hook
|
||||
- [ ] Ensure neoconf lspconfig integration applies before server setup (validate with `jsonls` in `WORKSPACE_SIMPLE`)
|
||||
- [ ] Decide schema for `intelephense` settings (nested `settings.intelephense.environment.includePaths`)
|
||||
|
||||
## Phase 3.9.2 — Temporary merge shim (if needed)
|
||||
- [ ] Implement minimal per-server merge from `.neoconf.json` → `lspconfig.intelephense.settings` at setup-time (remove later if neoconf resolves)
|
||||
|
||||
## Phase 3.9.3 — Robust PHP root resolver
|
||||
- [ ] Implement explicit `root_dir` resolver (prefer `.neoconf.json`, `composer.json`, `.nvimroot`, then nearest `.git`) using `vim.fs.find`
|
||||
- [ ] Keep `single_file_support = false` for `intelephense`
|
||||
|
||||
## Phase 3.9.4 — Validate in WORKSPACE_SIMPLE
|
||||
- [ ] `:LspInfo` shows correct root
|
||||
- [ ] `gd` works for local and any configured includePaths
|
||||
|
||||
## Phase 3.9.5 — Validate in WORKSPACE_TEST + EXTERNAL_TEST
|
||||
- [ ] With forced workspace root, `gd` still resolves external library symbols via includePaths
|
||||
- [ ] Confirm behavior after client restart and fresh session
|
||||
|
||||
## Phase 3.9.6 — Decision: rooter plugin (optional)
|
||||
- [ ] If root resolution remains brittle, propose adding a rooter plugin (requires approval), tuned for tab-per-context
|
||||
|
||||
## Phase 3.9.7 — Finalize approach
|
||||
- [ ] If neoconf merge works reliably, remove temporary shim; otherwise retain shim and document
|
||||
- [ ] Document root marker guidance (`.nvimroot`) and includePaths best practices
|
||||
|
||||
## Phase 3.5 — LSP minimal defaults
|
||||
- [x] Add `nvim-lspconfig` with minimal defaults (no over-configuration)
|
||||
- [x] Add minimal LSP on-attach keymaps (gd, gr, K, gD, gI)
|
||||
|
|
@ -202,9 +230,10 @@ Notes:
|
|||
- Prefer simple defaults; only add settings that clearly improve workflow.
|
||||
- Plugin approval policy: unlisted plugins may be proposed, but must be explicitly confirmed before installation.
|
||||
|
||||
Known Issues / Follow-ups:
|
||||
Known Issues / Follow-ups (tracked by Phase 3.9):
|
||||
- lua-language-server (lua_ls) from Mason failed to start due to missing shared library `libbfd-2.38-system.so`. Options:
|
||||
- Install lua-language-server via system package manager compatible with your distro.
|
||||
- Provide the required `libbfd` or adjust symlink to match expected soname.
|
||||
- Skip lua_ls for now; neoconf validation can be done with other servers (e.g., jsonls) and PHP (intelephense).
|
||||
- LSP root detection: In some cases, the parent repository is picked as the root (e.g., when a workspace lives inside another repo). Workaround: create an empty `.git` directory (or a marker like `.nvimroot`) in the intended workspace root to pin the project root for LSPs.
|
||||
- Neoconf merge + root correctness are a blocker for migration. Address via Phase 3.9 subphases above.
|
||||
|
|
|
|||
Loading…
Reference in New Issue