English | 简体中文
The VS Code front end for the mcpp C++23 build tool:
project discovery, mcpp build / run / test / clean as VS Code tasks, toolchain management,
mcpp.toml and build.mcpp editing help, the package library view, and cache views with graded
cleanup. C++ module semantics — diagnostics, completion, hover, definitions, references, the module
graph — come from sunrisepeak.mcpp-language-server; this extension never starts an LSP client of
its own and only forwards to it (docs/architecture.md).
| Project | What it is | Where |
|---|---|---|
| mcpp | The C++23 build tool this extension drives | — |
| mcpp-language-server | The C++ Modules language service; a hard dependency of this extension | Marketplace · Open VSX |
| mcpp-vscode (this extension) | The VS Code front end | Marketplace · Open VSX · Releases |
See dependency graph navigation and exports for entry groups, importer depth, refresh behavior and SVG/PNG export.
Any of the three channels installs the same extension:
- Marketplace: the link above, or search "mcpp" inside VS Code.
- Open VSX: the link above (VSCodium, Gitpod and friends; listed from 0.6.0 on).
- GitHub Releases: download the VSIX, then Extensions: Install from VSIX..., or
code --install-extension mcpp-vscode-<version>.vsix.
package.json declares extensionDependencies: ["sunrisepeak.mcpp-language-server"], so VS Code
installs that extension automatically where a platform package exists — the field only accepts an
extension id, no version range (docs/compatibility.md).
| Platform | mcppls package | This extension |
|---|---|---|
linux-x64, linux-arm64, darwin-arm64, win32-x64 |
yes | yes |
darwin-x64, win32-arm64 |
no package | not activated |
- Open a folder containing an
mcpp.toml(or run mcpp: New Project). - Run mcpp: Build (
mcpp.build); it runs in a dedicated task terminal. - Open the mcpp activity-bar container: Project, Libraries and Cache (collapsed by default); the C++ Modules status and actions live in Project → Basics.
Opening a project never runs mcpp on its own and never downloads a toolchain.
- mcpp CLI and tasks — build, run, test, clean, the quick menu, toolchains: docs/commands.md.
mcpp.tomlediting — structural completion, hovers, go-to-definition, seven structural diagnostics, no formatting: docs/mcpp-toml.md.build.mcpphelp —build.mcppis acppfile that C++ Modules compiles as the build program; this extension adds themcpp::…directive completion, hovers and snippets and the SPEC-007 rule checks no compiler makes: docs/build-script.md.- Libraries — browse the official mcpp-index offline, choose a target project and dependency type, and view available versions and verified example code. Other registry hits have separate previews. See Libraries.
- Cache views and cleanup — project artifacts and the shared build cache, previewed before anything is deleted: docs/cache.md.
- C++ Modules — the other extension's state and actions, in the project view and the status-bar menu, forwarded not reimplemented: docs/commands.md.
- Settings and diagnostics — a registry-backed settings panel (
mcpp.openSettings) and a copyable environment self-check (mcpp.selfCheck): docs/settings.md.mcpp.ui.languageoverrides our messages and panels only; palette titles always follow VS Code (docs/architecture.md).
Look first at the mcpp output channel, then run mcpp: Environment Self-check
(mcpp.selfCheck). The common cases — the dependency is missing, the language service stays on
"no status yet", mcpp.path versus PATH, a build that finished without refreshing the language
service — are in docs/troubleshooting.md.
npm ci, npm run compile, npm test (the gates first, then the unit tests), npm run test:e2e,
npm run package, and node tools/dev-profile.mjs for a throwaway profile under .dev-profile/
that never touches your real one.
Release: bump the version in package.json and package-lock.json, commit, and push a tag
matching the version exactly. The workflow runs the tests, packages one VSIX, and publishes that
same artifact to GitHub Releases and Open VSX. Upload that VSIX manually through the Visual Studio Marketplace publisher portal.
Apache-2.0 — see LICENSE.
