mcpp-language-server 0.0.9: completion on projects without modules as fast as plain clangd's, settings that show, xmake downloads that say what they need (#37) - #38
Merged
Conversation
…mode replace the parent keys that hid their children, engine.workers reaches the server, null means unset, and tests keep it so Co-Authored-By: speak-agent <speak-agent@users.noreply.github.com>
…econd instance plans with the owner's cached model; P-2 clangd waits for a build tool known to answer soon
…loop, so requests and watchdogs no longer wait up to 2.5 s for it
…en fetched without asking; D-5 the outcome of a fetch is told once
…o the engine's and the server's (engineP50Ms, engineP95Ms, overheadP50Ms, overheadP95Ms)
…SP, no-modules, tidy-const-views and ux-heavy-headers fixtures, clangd-lsp and completion-baseline checks, prepare heavy-headers
…download is needed, report a failed install as such D-1 asks xmake f --help which options it takes (kept per xmake and xmake.lua) and skips the keys xmake wrote for itself; D-2 splits the offline needs-download from producer-install-failed and offers askOnline only for an offline run; D-3 words the offline message (build tools, system package manager); D-6 reads missing packages from the xmake project stage too. Conformance xmake-needs-download runs a stand-in xmake (server-path-prepend, write-file notify).
# Conflicts: # docs/specs/CHANGELOG.md
…ed; changelog and plan record
…et go of, a cache clear and shutdown wait for it, the verdict is written again after a clear, xmake's help is asked again when an included xmake.lua changes, and a sub-setting alone is no old setting
… or directory VS Code still holds (ENOTEMPTY, EPERM)
…fore holding their lines (a Windows runner read the set published before clangd built the file)
…tarts exactly one, an old setting in the user's scope applies under a workspace that set only a sub-setting; 0.0.9 is dated 2026-10-02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mcpp-language-server 0.0.9: completion on projects without modules as fast as plain clangd's, and the rest of #37.
Plan, evidence and implementation record:
.agents/docs/2026-10-01-0.0.9-plan.md. Upstream defects UP-22 and UP-23 are registered in #24; LLVM issue drafts are in.agents/docs/2026-10-01-0.0.9-upstream-drafts.md.Completion and diagnostics (W-1, W-2)
--experimental-modules-supportrescans a file's module dependencies on every completion (UP-23).ux-heavy-headersscenario holds it to 1.3 × clangd's own time + 30 ms. With the workaround off it fails: 530 ms against 56 ms.misc-const-correctnesssays a filter, drop_while, chunk_by or split view can be const (UP-22, the body of False warning ofconstness #37). Such a variable would not compile as const.begin(). Aref_viewstops the walk.Settings (S-1..S-4)
mcppls.engine→mcppls.engine.namemcppls.buildDiscovery→mcppls.buildDiscovery.modeengine.workersshowedundefinedand "Value must match regex".engine.workersnow reaches the server.nullmeans unset.Build tools (D-1..D-6)
xmake.confkeysxmake f --helplists are passed on. Keys xmake wrote itself (proxy,dotnet) made every start fail once and show a wrong notice.producer-install-failed, with xmake's error lines and install log.askOnlineis offered only for an offline run.constness #37'slibtoolandlibpthread-stubscame from building libsdl3 from source.onlineRun, S3-4-26..28), and VS Code tells it once.xmake project's missing packages are recognized too.xmake-needs-download, run against a stand-in xmake.Starting (P-1..P-3)
constness #37's bundle showed 3–4.4 s of slow first requests and a clangd restart.processIdfrom initialize, and Linux or macOS.constness #37's logs.Measurement and packaging
clangd-lsp(clangd driven directly) andcompletion-baseline.no-modulesandtidy-const-views.dirtyonly when a tracked file differs. CI's untracked build outputs marked every release dirty.Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com