mason + lsp config working

This commit is contained in:
Ray Elliott 2025-12-06 23:16:03 +00:00
commit 319c66bc0a
9 changed files with 142 additions and 26 deletions

View file

@ -66,9 +66,27 @@ Source of truth for the step-by-step rebuild. Keep this concise and up to date.
- [ ] Verify neoconf merges settings into lspconfig
- [x] Wire `intelephense.environment.includePaths` via `.neoconf.json`
- [x] Create validation workspaces: `WORKSPACE_TEST/` and `EXTERNAL_TEST/` with sample PHP files
- [x] Enable LSP debug notifications during validation and remove them after verifying roots
## Phase 3.7 — Clean LSP config
- [x] Remove debug/helper logic from LSP config
- [x] Use non-deprecated per-server setup (no top-level lspconfig table access)
## Phase 3.8 — Validate Neoconf includePaths (temporary)
- [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.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)
- [x] Add global LSP keymaps with fallback in `lua/keymaps.lua`
## Phase 3.6 — LSP server management (Mason)
- [x] Confirm scope and priorities for this subphase
- [x] Add `williamboman/mason.nvim` and `williamboman/mason-lspconfig.nvim`
- [x] Ensure servers installed: `lua_ls`, `tsserver`, `html`, `cssls`, `jsonls`, `bashls`, `marksman`, `intelephense`
- [x] Keep our custom per-server setup; use Mason only for installation
- [x] Improve root detection to include `.neoconf.json`
## Phase 4 — Navigation
@ -182,3 +200,9 @@ Notes:
- Avoid adding plugins not listed in the guide unless explicitly requested.
- 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:
- 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).