Repository navigation
mcpp-language-server 0.0.16
What changed
The bundled engine is unchanged: mcppls-clangd 0.0.16
(23.1.0-mcppls.4). This release is about what clangd does while you type and while nothing happens at all, and about
build.mcpp beside the mcpp extension.
Typing
- clangd checks the file you are typing in once you pause, not at every key. Each version still goes to clangd
(completion and signature help are answered as before), but without its diagnostics wanted; once the keys stop for a
little longer than the file takes to build (0.3-1 s), the latest version is asked for with them. The semantic colours,
highlights, code actions, hints, symbols and folding of the file -- which make clangd build the latest version
whatever it is asked -- wait for the same pause, the latest of each; one a later key replaced is answered "content
modified", which VS Code drops silently. Typingstd::vec, deleting it,arr,finin a file with Qt headers and
import std: clangd builds the file 3 times instead of 16, and spends about 43% less CPU. The errors of half-typed
text no longer flicker; they appear once you pause.build.mcppand module units (what their importers read) are
checked at every key, as before.
mcppls.engine.diagnosticsWhileTyping:auto(the default) oralways(0.0.15's behaviour).
Idle
- A build input written again with the same bytes is no change. mcpp rewrites the lock of a build program's
synthesised package on every run and names it among the inputs to watch (mcpp-community/mcpp#807): with a
build.mcpp, the project was described again every two seconds of an idle session. A changed or created build file
or producer input whose content is what the last description read is now ignored, whether the editor's watcher or
mcppls's own polling reports it. - A place clangd answered with nothing is not asked again until a file or the plan changes. While clangd was idle,
mcppls asked it every half second, without end, for a completion that came back empty (a place in a file whose
imports did not compile).
build.mcpp and failed modules
- A module that failed because of an error in something it imports is named. clang begins such an error with
In module 'std' imported from <unit>:<line>:orIn file included from <unit>:<line>:; mcppls took the file the error
is in for the unit that failed, found no module for it, and dropped the failure, so an importer said only
"Module file '.../module-hints/M.pcm' not found". The importer now says which module did not compile and why. Where
the failed unit is none the plan names, the importer still says what failed; where nothing is known, it says clangd
built no BMI for the module and that the log says why. .mcppfiles are this extension's whatever language another extension gives them. A companion extension that
namesbuild.mcppa language of its own (mcpp-vscode up to 0.6.0) kept the file from mcppls, since VS Code matches a
file name before an extension; the client now selects**/*.mcppas well, and the server treats such a file as C++.- A companion extension can show which other C++ language services are active. The extension's API has
otherCppFeatures(): the active services (C/C++ IntelliSense, clangd, ccls), whether each has a setting to turn off,
and whethermcppls.restoreOtherCppFeatureshas anything to put back. mcpp-vscode 0.7.0 shows it as a row with a
button.
Files
| File | What it is | How to install it |
|---|---|---|
mcppls-linux-x64.vsix |
The VS Code extension for one platform, with that platform's payload inside it | code --install-extension <file>, or the Extensions view's “Install from VSIX…” |
mcppls-linux-arm64.vsix |
The VS Code extension for one platform, with that platform's payload inside it | code --install-extension <file>, or the Extensions view's “Install from VSIX…” |
mcppls-darwin-arm64.vsix |
The VS Code extension for one platform, with that platform's payload inside it | code --install-extension <file>, or the Extensions view's “Install from VSIX…” |
mcppls-win32-x64.vsix |
The VS Code extension for one platform, with that platform's payload inside it | code --install-extension <file>, or the Extensions view's “Install from VSIX…” |
payload-linux-x64.tar.gz |
The server, the clangd it drives and the semantic kit, as one tree. What every non-VS-Code editor needs | Unpack it and put payload/bin/ on PATH; mcppls serve speaks LSP over stdio |
payload-linux-arm64.tar.gz |
The server, the clangd it drives and the semantic kit, as one tree. What every non-VS-Code editor needs | Unpack it and put payload/bin/ on PATH; mcppls serve speaks LSP over stdio |
payload-darwin-arm64.tar.gz |
The server, the clangd it drives and the semantic kit, as one tree. What every non-VS-Code editor needs | Unpack it and put payload/bin/ on PATH; mcppls serve speaks LSP over stdio |
payload-win32-x64.tar.gz |
The server, the clangd it drives and the semantic kit, as one tree. What every non-VS-Code editor needs | Unpack it and put payload/bin/ on PATH; mcppls serve speaks LSP over stdio |
mcppls-zed-0.0.16.tar.gz |
The Zed extension directory mcppls-zed/: extension.toml, the compiled extension.wasm and the crate it was compiled from, which Zed's dev-extension install compiles again. Platform-independent; the server comes from the payload |
Unpack it, put the payload's payload/bin/ on PATH, then Zed's command palette: zed: install dev extension, and choose mcppls-zed (Zed compiles it, which needs Rust through rustup) |
mcppls-clion-0.0.16.zip |
The IntelliJ-platform plugin archive Gradle produces. Gradle and the JDK it compiles with come from the clion feature (xim:gradle, xim:jdk-temurin), so it does not depend on whatever JDK the machine happens to default to |
Put the payload's payload/bin/ on PATH, then CLion: Settings → Plugins → the gear menu → Install Plugin from Disk, and restart |
SHA256SUMS |
sha256 of every other file in the release | sha256sum -c SHA256SUMS |
Not in a release
- The Claude Code plugin: it is consumed from the repository through its marketplace file, not downloaded as an archive.
- xlings-res archives and the rendered xim-pkgindex descriptors: the ecosystem publish path is deliberately out of scope for this release, so
mcppls-devtools release xlingsis not run. - The model gateway: a separate package, built and tested on its own, not part of what a user installs.
Generated from packaging/release.manifest.json for 0.0.16.