Skip to content

Releases: microsoft/vscode-cpptools

1.35.2

1.35.2 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 22 Sep 21:35
11e7e21

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

New Feature

  • Dim unused local variables and parameters when editor.showUnused is enabled. #10490

Enhancements

  • Add support for formatting multiple selections with clang-format and vcFormat. #12082
  • Reduce language server memory usage in workspaces with many interconnected symbolic links.
  • Improve responsiveness when deleting source files associated with many open headers.
  • Improve #include completion performance in workspaces with many open files.

Bug Fixes

  • Fix IntelliSense handling of MSVC and clang-cl external include paths and environment variables. #14186, #14205
  • Fix missing IntelliSense definitions for additional MSVC predefined macros. #14312
  • Fix lost indentation in displayed documentation comments. #14567
  • Fix compiler queries failing to find dependencies installed alongside the compiler on Linux and macOS. #14575
  • Fix an incorrect class has more than one default constructor IntelliSense error. #14746
  • Fix the extension failing to start on Linux ARM64 because libc.so is not executable. #14779
  • Fix incorrect or missing #include completion suggestions for nonrecursive paths, frameworks, symbolic links, and extensionless files.
  • Fix compile_commands.json handling for symlinked sources, missing working-directory fields, and invalid database roots.
  • Fix stale 'Create Declaration/Definition' diagnostics after cancellation and reduce redundant diagnostic updates.
  • Fix missing IntelliSense errors for duplicate local variables, including redeclarations of function parameters.
  • Fix a language server crash when requesting #include completion with certain Unicode prefixes.
  • Fix incorrect undefined-identifier IntelliSense errors for macros using __COUNTER__ in C++20.
  • Fix recursive header lookup with duplicate include roots or .. paths through symbolic links.
  • Fix incorrect EUC-JP and GBK source decoding when multibyte characters span read buffers.
  • Fix IntelliSense using strict language modes instead of Clang's default GNU dialect.
  • Fix header lookup for long Windows paths when Windows long-path support is enabled.
  • Fix a Windows tag parser crash when a worker thread cannot be created.
  • Fix intermittent incorrect compiler architecture detection on Linux.
  • Various localization updates.
  • Update dependencies.

1.35.1

1.35.1 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 14 Sep 23:51
1188619

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

New Feature

  • Add the 'Select a Translation Unit...' command to choose which source file provides IntelliSense context for the active header file. PR #14688

Enhancements

  • Improve IntelliSense configuration lookup performance for symbolic links to compile_commands.json.
  • Update the bundled clang-tidy and clang-format from 23.1.0 to 23.1.1.
  • Improve performance when pruning large IntelliSense caches.

Bug Fixes

  • Fix /U and -U compiler arguments not undefining macros for IntelliSense and code analysis. #13786
  • Fix excessive CPU usage by idle parser workers while workspace parsing is still running. #14757
  • Remove the obsolete C_Cpp.default.recursiveIncludes.reduce setting and its configuration UI control. PR #14761
  • Fix missing or stale IntelliSense configurations when compile_commands.json is created after startup, changed, deleted, or accessed through symbolic links, including in multi-root workspaces.
  • Fix missing cp1125 support on all platforms, unsupported file encodings on Linux, and incorrect GB18030 decoding on Linux and macOS.
  • Fix recursive include lookup sometimes selecting the wrong header when directories are reached through multiple symbolic links.
  • Fix a potential language server deadlock during workspace initialization and concurrent document edits.
  • Fix an IntelliSense crash when parsing templates in Clang mode.
  • Fix a cpptools crash during shutdown on macOS.
  • Update dependencies.

1.35.0

1.35.0 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 10 Sep 19:47
0435314

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Enhancement

  • Improve workspace indexing performance.

Bug Fixes

  • Fix false IntelliSense errors when initializing a variable with a value from the same unnamed enum. #14726
  • Fix the workspace parsing status briefly reporting completion while a newer parse is still running.
  • Fix 'Create Declaration/Definition' incorrectly being offered for explicit template instantiations.
  • Fix tag parser hangs when database initialization fails or shutdown interrupts a pending request.
  • Various localization updates.

1.34.4

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 09 Sep 19:28
3c4ffe9

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Enhancements

  • Add folding support for C++ public, private, and protected access sections. #14645
  • Add the processFilter launch option to filter or automatically select processes for remote cppdbg attach configurations. #14682
  • Improve workspace indexing performance and reduce memory usage by deduplicating browse paths from compile_commands.json, excluding unrelated files from the browse database, and avoiding unnecessary tag parsing of non-included extensionless files. #14693
  • Improve C/C++ file classification by supporting extensionless headers and additional extensions such as .hip throughout extension features. PR #14711
  • Update the bundled clang-tidy and clang-format from 22.1.3 to 23.1.0, including available clang-tidy check suggestions and documentation. PR #14713
  • Reduce language server memory usage and RPC overhead for large messages and browse database snapshots.
  • Add IntelliSense support for C23 _BitInt, C++26 pack indexing, and C++26 structured binding packs.

Bug Fixes

  • Fix 'C/C++: Edit Configurations (UI)' not fully respecting custom theme colors. #11263
  • Fix formatting not inserting the final newline requested by InsertNewlineAtEOF. #12680
  • Fix inactive code being dimmed from the wrong column when a preprocessor directive is preceded by a comment. #12882
  • Fix 'Run/Debug C/C++ File' buttons being hidden when C_Cpp.intelliSenseEngine is set to disabled. #13001
  • Fix nested quoted #include directives failing to resolve source-relative headers when -iquote paths are used. #13606
  • Fix false IntelliSense errors for EnTT multi-component views caused by heterogeneous auto non-type template parameter packs. #14456
  • Fix false IntelliSense errors for GNU ARM stack-pointer clobbers, including CMSIS __set_PSP and __set_MSP. #14486
  • Fix incorrect semantic highlighting for explicit function template specializations. #14491
  • Fix IntelliSense using c17 instead of GCC's default GNU C language standard. #14560
  • Fix enum member completion in a switch label before the trailing :. #14605
  • Fix extension crashes caused by events communicating with the language client before it is ready. PR #14617
  • Fix configuration path diagnostics for paths containing regular expression metacharacters and for incorrect source ranges. PR #14674, PR #14679
  • Prevent browse database crashes on filesystems that do not support SQLite WAL shared memory, and warn when no compatible database location is available. PR #14683
  • Fix runaway CPU and memory usage in workspaces with cyclic document symbol data or multiple symbolic links that point to ancestor directories, and prevent cpptools from remaining active after VS Code exits. #14689
  • Fix false IntelliSense errors for constrained hidden friend function templates that use requires expressions. #14696
  • Fix include completion and symbol navigation using stale recursive include data after files are replaced by directories or symbolic link roots change.
  • Fix unnecessary IntelliSense reparsing after unrelated settings changes and incorrect language updates after files.associations changes.
  • Fix 'Find All References' misclassifying references in inactive preprocessor regions after falling back to header-only IntelliSense.
  • Fix several language server crashes during startup, shutdown, diagnostic processing, and concurrent code model updates.
  • Fix various IntelliSense completion, navigation, false error, code analysis, formatting, and colorization issues.
  • Fix custom C/C++ files.associations entries with certain non-ASCII characters being ignored on Windows.
  • Fix a potential language server deadlock caused by inconsistent lock ordering.
  • Harden temporary file storage on Linux and macOS.
  • Various localization updates.
  • Update dependencies.

1.34.3

1.34.3 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 04 Sep 18:49
913f74c

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Enhancement

Bug Fixes

  • Fix 'C/C++: Edit Configurations (UI)' not fully respecting custom theme colors. #11263
  • Fix 'Run/Debug C/C++ File' buttons being hidden when C_Cpp.intelliSenseEngine is set to disabled. #13001
  • Fix false IntelliSense errors for EnTT multi-component views caused by heterogeneous auto non-type template parameter packs. #14456
  • Fix false IntelliSense errors for GNU ARM stack-pointer clobbers, including CMSIS __set_PSP and __set_MSP. #14486
  • Fix false IntelliSense errors for constrained hidden friend function templates that use requires expressions. #14696
  • Fix compiler and include paths from some custom configuration providers being ignored. #14724
  • Fix a cpptools-srv2 crash when tag parsing a C macro that stringizes __VA_OPT__.
  • Various localization updates.
  • Update dependencies.

1.34.2

1.34.2 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 01 Sep 03:20
5adebc9

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Enhancements

  • Improve C/C++ file classification by supporting extensionless headers and additional extensions such as .hip throughout extension features. PR #14711
  • Update the bundled clang-tidy and clang-format from 22.1.3 to 23.1.0, including available clang-tidy check suggestions and documentation. PR #14713

Bug Fixes

  • Fix high CPU and memory usage in workspaces with multiple symbolic links that point to ancestor directories. #14689
  • Fix include completion and symbol navigation using stale recursive include data after files are replaced by directories or symbolic link roots change.
  • Fix 'Find All References' misclassifying references in inactive preprocessor regions after falling back to header-only IntelliSense.

1.34.1

1.34.1 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 29 Aug 01:01
ddb9e5f

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Bug Fixes

  • Fix formatting not inserting the final newline requested by InsertNewlineAtEOF. #12680
  • Fix nested quoted #include directives failing to resolve source-relative headers when -iquote paths are used. #13606
  • Fix incorrect semantic highlighting for explicit function template specializations. #14491
  • Fix IntelliSense using c17 instead of GCC's default GNU C language standard. #14560
  • Fix unnecessary IntelliSense reparsing after unrelated settings changes and incorrect language updates after files.associations changes.
  • Fix custom C/C++ files.associations entries with certain non-ASCII characters being ignored on Windows.
  • Fix cpptools-srv crashes under memory pressure while reading or processing RPC messages.

1.34.0

1.34.0 Pre-release
Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 26 Aug 21:52
50a2146

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Enhancements

  • Add folding support for C++ public, private, and protected access sections. #14645
  • Improve workspace indexing performance and reduce memory usage by deduplicating browse paths from compile_commands.json, excluding unrelated files from the browse database, and avoiding unnecessary tag parsing of non-included extensionless files. #14693
  • Reduce language server memory usage and RPC overhead for large messages and browse database snapshots.
  • Add IntelliSense support for C23 _BitInt, C++26 pack indexing, and C++26 structured binding packs.

Bug Fixes

  • Fix inactive code being dimmed from the wrong column when a preprocessor directive is preceded by a comment. #12882
  • Fix enum member completion in a switch label before the trailing :. #14605
  • Fix extension crashes caused by events communicating with the language client before it is ready. PR #14617
  • Fix configuration path diagnostics for paths containing regular expression metacharacters and for incorrect source ranges. PR #14674, PR #14679
  • Prevent browse database crashes on filesystems that do not support SQLite WAL shared memory, and warn when no compatible database location is available. PR #14683
  • Fix runaway CPU and memory usage caused by cyclic document symbol data, and prevent cpptools from remaining active after VS Code exits. #14689
  • Fix several language server crashes during startup, shutdown, diagnostic processing, and concurrent code model updates.
  • Fix various IntelliSense completion, navigation, false error, code analysis, formatting, and colorization issues.
  • Fix a potential language server deadlock caused by inconsistent lock ordering.
  • Harden temporary file storage on Linux and macOS.
  • Various localization updates.
  • Update dependencies.

1.33.8

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 17 Aug 19:25
ca5da8d

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

New Feature

  • Unification of tag parsing with the VS implementation. In particular, it's now done using multiple parallel cpptools-srv2 processes. PR #14426

Enhancements

  • Allow platform overrides in cppbuild tasks. #11601
  • Add the debuginfod launch option to the cppdbg debugger schema. #14458, #14460, PR #14471, PR #14506, MIEngine#1562
  • Add the ignoreRunWithoutDebuggingWarnings property to allow 'Run without debugging' warnings to be suppressed. #14515

Bug Fixes

  • Fix the wording for the #include errors detected message. #8227
  • Fix an incorrect invalid type conversion IntelliSense error. #11294
  • Fix include completion (with recursive includes) still suggesting headers from a deleted folder. #12636
  • Fix a spurious recursive includes (**) debug console log warning for paths merged from c_cpp_properties.json when C_Cpp.mergeConfigurations is enabled. #14125
  • Fix 'Find All References' dropping valid references when a template parameter type has a typedef alias in only one translation unit. #14344
  • Fix the remote process picker ps command not working with some shells. #14442
  • Fix a spurious IntelliSense error with class template argument deduction (CTAD). #14453, #14459, #14504
  • Add important to C_Cpp.doxygen.sectionTags. PR #14473
  • Update the minimum supported VS Code version to 1.77. PR #14502
  • Fix issues with the debugger launch.json schema. PR #14523
  • Fix [[no_unique_address]] empty-base layout sizeof being computed too large. #14524
  • Fix ${env:VAR} and ${env.VAR} not expanding to an empty string when the environment variable is unset, to match VS Code's behavior. PR #14535
  • Fix C/C++ debug data-tips on members of a dereferenced expression. PR #14540
    • Thanks for the contribution. @tieo
  • Fix Windows backslash paths being mangled when adding an SSH target. PR #14554
  • Fix 'Run C/C++ File' not running the program in PowerShell when terminal shell integration is unavailable. #14583
  • Fix the build tools walkthrough for Visual Studio 2026. PR #14589
  • Fix custom configurations being discarded when C_Cpp.mergeConfigurations is enabled and a provider supplies the file uri as a vscode.Uri. #14621
  • Fix a tag parser crash when a UTF-8 string literal is concatenated with a narrow string literal containing an invalid multibyte sequence.
  • Fix IntelliSense incorrectly resolving #include files through a symbolic link after the target directory was deleted from disk.
  • Fix potential browse database corruption when the same workspace is opened by multiple processes on Linux and macOS.
  • Fix crashes when reading files saved in certain multibyte encodings such as GB18030 or EUC-JP.
  • Fix empty database folders being created in every folder of a multi-root workspace.
  • Fix the C_Cpp.refactoring.includeHeader setting not honoring always.
  • Fix spurious IntelliSense error on std::variant brace-initialization.
  • Fix several potential deadlocks and data races in the language server.
  • Fix an incorrect file path in an error message on Windows.
  • Reduce memory usage to help avoid out-of-memory crashes.
  • Fix stale diagnostics after editing visible headers.
  • Fix several crashes in the recursive include cache.
  • Fix an incorrect #include casing error on Linux.
  • Various other fixes found internally.
  • Various localization updates.
  • Fix an IntelliSense crash.
  • Update dependencies.

1.33.7 (release candidate)

Pre-release

Choose a tag to compare

@sean-mcmanus sean-mcmanus released this 12 Aug 01:21
733fcbb

Instructions

The extension can be obtained by one of the methods below:

  • Install the "C/C++" or "C/C++ Extension Pack" extension published by Microsoft from the Extensions view in VS Code.
  • Download a vsix that matches your OS from the Assets section below (and install it via the method mentioned above). The previous download methods have the vsix signatures verified by the Marketplace, but for this method, you can do the verification by downloading the matching manifest and signature.p7s file and running npx @vscode/vsce@latest verify-signature -i <.vsix> -m <.signature.manifest> -s <.signature.p7s> vscode-vsce#1044.

Requirements

  • VS Code 1.77.0 or later (March 2023).
  • Windows 10+ (x64, arm64), macOS 10.13+, Linux (Ubuntu 16+, etc.).
    • Debugging is not supported on CentOS 7 or RHEL 7. The last supported version was 1.22.11: #13219.
    • The last supported version for Windows 7 and 8 was 1.30.5.

Changes

Bug Fixes

  • Fix another crash when reading files saved in certain multibyte encodings such as GB18030 or EUC-JP.
  • Fix newly created files not being associated with the correct configuration in the browse database.
  • Fix the language server becoming unresponsive during browse database initialization.
  • Fix stale diagnostics and missing code actions after editing visible headers.
  • Fix /ZW:nostdlib not being processed correctly by IntelliSense.
  • Update dependencies.