
C/C++ for VS Code
https://github.com/microsoft/vscode-cpptools- Category
- Developer Tools
- Rank
- No. 265Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- microsoft
- GitHub
- 6.2k stars
- Latest release
- v1.34.3
- Date
About
Microsoft's official C/C++ extension for VS Code — IntelliSense, debugging, code navigation, and toolchain integration.
What it does
It turns VS Code into a working environment for C and C++ projects. Inside the editor, it starts language and debugger services, reads workspace configuration, registers build tasks, and connects source editing to locally installed development tools.
Why it's ranked here
This is a strong choice when VS Code is already your editor and your toolchain is installed. Its broad compiler, operating system, and processor coverage combines with configurable language services, debugging support, build tasks, localization, and an extension API for configuration providers.
What's good
Official support covers MSVC, Clang, and GCC on Windows, plus Clang and GCC on Linux and macOS. Supported processors include x64, x86, Arm64, and Arm where listed. The code also handles build task events, localized configuration schemas, variable expansion, and custom configuration providers.
Tradeoffs
You must supply the compiler and debugger yourself. Support for compilers outside the documented set may be limited. The software may send usage information to Microsoft, although VS Code's telemetry setting can disable it. The related extension pack is workspace-only because important members do not support web use.
How to use it well
Pick it for local C or C++ work in VS Code when MSVC, GCC, or Clang and a compatible debugger are already available. Configure the matching language mode, then use its editing, build, and debugging workflow. It does not install or replace the underlying compiler and debugger toolchain.
Technical notes+
Extension/src/main.ts is the activation hub: it initializes debugger and language-server modules, registers a schema content provider and build task provider, checks platform compatibility, marks packaged binaries executable, and returns the CppTools API. Extension/webpack.config.js bundles Extension/src/main.ts for Node as CommonJS, preserves source maps, excludes the VS Code runtime module, and loads native modules. Extension/src/cppTools.ts implements versioned custom configuration-provider registration and readiness notifications. Extension/.scripts/test.ts runs Mocha unit tests and VS Code Electron scenario tests. Extension/src/id.ts hashes Windows MAC addresses with SHA-256 before logging machine-ID mapping telemetry.
Observed
- License
- MIT License, stated in repository source headers.
- Primary language
- TypeScript implementation bundled into CommonJS JavaScript for the VS Code Node runtime.
- Install surface
- Packaged as a VS Code extension; compatibility logic refers to VSIX packages.
- Interface
- VS Code extension API with an exported CppTools API for custom configuration providers.
- Platform support
- Windows, Linux, and macOS with documented MSVC, Clang, and GCC combinations.
- Architectures
- Documented support includes x64, x86, Arm64, and Arm, varying by platform.
- Testing structure
- Repository scripts support Mocha unit tests and VS Code Electron scenario tests.
- Localization
- Build tooling exports and imports localized strings for thirteen language identifiers.
Read from README.md, ExtensionPack/main.js, Extension/gulpfile.js, Extension/eslint.config.js, Extension/webpack.config.js, Extension/translations_auto_pr.js, Extension/src/id.ts, Extension/src/main.ts, Extension/src/common.ts, Extension/src/expand.ts, Code Samples/Fib/main.cpp, Extension/src/cppTools.ts, Extension/.scripts/code.ts, Extension/.scripts/test.ts, Extension/src/constants.ts.
What it can do
Provide code completion and syntax highlighting for C/C++
C/C++ source code being typed → Auto-completion suggestions and highlighted syntax
Debug C/C++ applications
C/C++ executable and breakpoint locations → Step-by-step execution control and variable inspection
Navigate to function and variable definitions
C/C++ identifier or symbol → Location of definition in source code
Find all references to a symbol
C/C++ function, variable, or class name → List of all locations where symbol is used
Configure build tasks and compiler settings
Compiler toolchain configuration → Executable build process and compilation commands
Display error and warning diagnostics
C/C++ source code with syntax or semantic errors → Highlighted errors with descriptive messages
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.