Two more real languages on the proven async + UTF-16 + config-pull base. Pure pattern application of the #12 Python shape. - pmacs.lsp.config.c / .cpp → clangd `--background-index`. One binary serves both; separate entries only so the didOpen languageId is accurate. No `settings`: clangd's project model is compile_commands.json / compile_flags.txt, not workspace/configuration (documented in-line). - pmacs.lsp.config.go → gopls (no args = stdio). settings = { gopls = {} } so the #13 workspace/configuration pull is answered "use defaults" (present, not null — gopls prefers that). - pmacs.lsp.filetypes extended: c/h → c (.h defaults to C, remappable); cpp cc cxx hpp hh hxx ipp inl cppm → cpp; go → go. - Two PATH-gated acceptance tests via a shared DRY helper, mirroring m4_5_basedpyright: reach Initialized + assert the negotiated positionEncoding is one pmacs can encode. Skip cleanly when the binary is absent. clangd is on the dev PATH, so its test ran for real: the full stack (async bridge + Option B UTF-16 + registry + filetypes) is validated end-to-end against a real strict-default C/C++ server, closing the "validate UTF-16 against a real strict server" gap from the Option B evaluation. gopls test skips here; runs wherever gopls is installed. Gate: fmt clean; clippy --all-targets -D warnings clean; lib 1230/0; m4_acceptance 64/0 (clangd ran live); m9_1 18/0; m8_1/m8_9/m8_10 green. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| async.lua | ||
| fs.lua | ||
| lsp.lua | ||
| mcp.lua | ||
| syntax.lua | ||