Releases: microsoft/vscode-cpptools
1.1.0-insiders4 (release candidate)
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.49.0 or later.
Changes
Bug Fixes
- Show the compiler path in the
Build and Debug Active Filedropdown. #4278 - Allow the debug configuration to wait for the preLaunchTask to complete before continuing on and resolving environment variables or processes that may have been set in the 'tasks.json'. #5287
- Fixed "F5" to choose the correct build task. #6375
- Fix multiroot workspace tag parsing when
compileCommandsis set. #6383 - Fix extra tabs appearing in the cppbuild terminal output. PR #6384
- Fix Windows SDK detection on ARM64. #6391
- Fix mingw32 compilers not being detected. #6394
- Fix cl.exe path detection with non-default install locations on ARM64. #6397
- Various bug fixes for vcFormat. PR #6408
- debugServerPath is not used in 1.1.0-insiders3 if miDebuggerServerAddress is not specified. #6411
- 1.1.0-insiders3: Setup commands do not work when attaching #6417
- Fix issue causing zh-cn and zh-tw language files not to be used. PR #6418
- Fix issue causing some localized messages to be displayed incorrectly.
- Fixed issue with shipping an older version of vsdbg in offline packages.
Known Issues
- "F5" runs the wrong "preLaunchTask", if preLaunchTask is a default custom task name. Microsoft/vscode#109939
- Debugging on Windows ARM64 isn't supported. #6392
1.1.0-insiders3
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.49.0 or later.
Changes
New Features
- Add language server support for Windows ARM64 (no debugging yet). #5583
- [cppdbg] Debugger Protocol Updates:
- ReadMemoryRequest PR MIEngine#1028
- ModulesRequest and ModuleEvent PR MIEngine#1054
- [cppdbg] Support new SourceFileMap schema PR #6319
Enhancements
- Add
intelliSenseUpdateDelaysetting. #6142 - [cppdbg] Stepping out of a function will display '$ReturnValue'.
- [cppdbg] Support composite expressions in natvis ArrayItems
Bug Fixes
- Change macOS Framework searching to only parse the "Current" framework folder when the "Headers" folder is not found. #2046
- Fix incorrect signature help active argument with multiple template parameters. #4786
- Fix changes to some
c_cpp_properties.jsonproperties not taking effect (until a reload) ifcompileCommandsis set. #6332 - Fix compiler querying when
compileCommandsis used with a file name with spaces. #6339 - Fix issue with compiler querying not handling various clang command line options correctly. 6359
- Fix issue to not overwrite the compiler options and args when building from a custom defined task. #6366
- Fix issue where std change warnings were not generated if IntelliSense mode was not set.
Known Issues
1.1.0-insiders2
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.49.0 or later.
Changes
Bug Fixes
1.1.0-insiders
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.49.0 or later.
Changes
Enhancements
- Add support to run c/cpp build tasks. #3674, #5270, #5285
- Tasks: Configure Task
- Tasks: Run Build Task
- C/C++: Build and debug active file.
- Add logging around compiler probing, and the "C/C++ Configuration Warnings" output channel. #5259
- Add compile commands info to Log Diagnostics. #5761
- Enable support for specifying a compiler by only the filename if it's in the environment path. #6179
- Restart the IntelliSense process if its memory usage exceeds the
C_Cpp.intelliSenseMemoryLimitsetting. #6230 - Add handling of the "-ansi" compiler arg when querying gcc/clang compilers.
- Add support for inferring the IntelliSenseMode based on the "--target" compiler arg.
- Add support for inferring the C standard based on new c11/c17 language standard args for cl.exe.
- Allow custom config providers to omit IntelliSenseMode and C/C++ language standard, enabling them to be inferred from the
compilerPathandcompilerArgs.
Bug Fixes
- Fix issues with IntelliSense for clang-cl.exe. #6075
- Fix "Comments are not permitted in JSON" error when
c_cpp_properties.jsonis open but not active. #6132 - Rename the C language standard setting values from c18 and gnu18 to c17 and gnu17. #6105
- Add more IntelliSense support for std ranges, concepts, and modules exports (__cpp_lib_concepts is now enabled). #6173
- Add "-fnoblocks" when querying clang on Mac, as IntelliSense does not currently support blocks. #6189
- Fix clang-format on 32-bit Windows. #6195
- Fix incorrect formatting results when clang-format removes duplicate includes. #6205
- Fix a case where the main process could get stuck. #6207
- Fix C files being treated as C++ files with compile_commands.json. #6279
- Fix issues with the handling of the standard version for clang-cl.exe.
- Fix the handling of various compiler arg pairs when querying compilers.
- Avoid parsing entries in compile_commands.json for file types that we do not support.
- Fixed an issue in which only C or C++ system headers were added to the browse path, rather than both.
Other Contributions
- Refactoring provider classes.
- Abhishek Pal (@devabhishekpal) PR #5998
1.0.1
Instructions
To use the "offline" .vsix (that doesn't download OS-based dependencies on extension activation), download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
Requirements
- VS Code 1.44.0 or later.
Changes
Bug Fixes
- Fix "No IL available" IntelliSense error on Linux/macOS when
#errordirectives are present in the source code. #6009, #6114 - Fix issue on Windows with the language server not shutting down properly which causes the IntelliSense database to become corrupted. PR #6141
- Fix "No IL available" IntelliSense error when predefined macros are undefined. #6147
- Fix infinite loop IntelliSense regression. #6166
Known Issues
- None so far.
1.0.1-insiders
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.44.0 or later.
Changes
Bug Fixes
- Fix IntelliSense breaks on linux/macOS when
#errordirectives are present in the source code. #6009, #6114 - Fix an issue on Windows with the language server not shutting down properly which can cause the IntelliSense database to be reset the next time the folder opens. PR #6141
Known Issues
- None so far.
1.0.0
Instructions
To use the "offline" .vsix (that doesn't download OS-based dependencies on extension activation), download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
Requirements
- VS Code 1.44.0 or later.
Changes
New Features
- Support non-UTF-8 file encodings (GBK, UTF-16, etc.), excluding
files.autoGuessEncodingsupport. #414 - Support for running the extension on Linux ARM devices (armhf/armv7l and aarch64/arm64), using remoting. #429, #2506
- Add the
vcFormatoption toC_Cpp.formatting(withC_Cpp.vcFormat.*options) to enable VS-style formatting (instead of clang-format formatting). #657- Add support for vcFormat settings in
.editorconfigfiles. PR #5932
- Add support for vcFormat settings in
Enhancements
- Improve the download and installation progress bar. #1961
- Add error codes and the "C/C++" source to IntelliSense errors. #2345
- Add support for
/Zc:__cplusplusincompilerArgsfor cl.exe. #2595 - Search for
compilerPathin the PATH environment variable. #3078, #5908 - Validate crypto signatures of binaries we download. #5268
- Add link to the documentation in the configuration UI. #5875
- Abhishek Pal (@devabhishekpal) PR #5991
- Allow comments, trailing commas, etc. in
c_cpp_properties.json#5885 - Prevent comments from being removed from json files when the extension modifies them.
- Add diagnostics on potentially conflicting recursive includes to
C/C++: Log Diagnostics, i.e. if a workspace uses files with the same name as system headers. #6009 - Add workspace parsing diagnostics. #6048
- Add
wmainsnippet on Windows. #6064 - More C++20 support.
Bug Fixes
- Fix member completion in C code after an operator is used in an expression. #2184
- Fix extension not creating
tasks.jsonif the.vscodefolder doesn’t exist. #4280 - Fix installation of clang-format 10 with the online vsix. #5194
- Get the compiler type to determine if it's Clang when querying for default compiler so that the correct default
intelliSenseModeis set. #5352 - Get the default language standard of the compiler and use that std version if no version is specified. #5579
- Fix
configuration.includePathto only add thedefaultFolderwhen the defaultincludePathis set. #5621 - Fix an IntelliSense crash when using C++20 on Linux. #5727
- Get the default target of the compiler. If the default target is ARM/ARM64, do not use the generic "--target" option to determine bitness. #5772
- Fix
compilerArgsnot being used if nocompilerPathis set. #5776 - Fix an incorrect IntelliSense error squiggle. #5783
- Fix semantic colorization and inactive regions for multiroot workspaces. #5812, #5828
- Fix bug with cl.exe flags /FU and /FI not being processed. #5819
- Fix
cStandardbeing set toc11instead ofgnu18with gcc. #5834 - Fix Doxygen parameterHint comment to display for a parameter name that is followed by colon. #5836
- Fix compiler probing when relative paths are used in
compile_commands.json. #5848 - Fix the compile commands compiler not being used if
C_Cpp.default.compilerPathis set. #5848 - Fix Doxygen comment to escape markdown characters. #5904
- Remove keyword completion of C identifiers that are defined in headers and aren't keywords (e.g.
alignas). #6022 - Fix error message with
Build and Debug Active File. #6071 - Restore fallback to the base configuration if a custom configuration provider does not provide a configuration for a file and does not provide compiler info in a custom browse configuration.
- Fix a bug that could cause the extension to delay processing a newly opened file until any outstanding IntelliSense operations are complete, if using a custom configuration provider.
- Fix a bug with incorrect configuration of a file when using a custom configuration provider and no custom configuration is available for that file. This now falls back to the compiler info received from the configuration provider with the browse configuration.
- Fix a bug in which making a modification to
c_cpp_properties.jsoncould result in custom configurations for currently open files being discarded and not re-requested.
Potentially Breaking Changes
- Settings
commentContinuationPatterns,enhancedColorization, andcodeFoldingare no longer available in per-Folder settings (only Workspace or higher settings). PR #5830 - Fix compile command arguments not being used when
compilerPathis set (so the compile command arguments need to be compatible now). - If a non-matching
intelliSenseModewas being used, such as clang-x64 with a gcc ARM compiler, then we may auto-fix it internally, which may cause changes to IntelliSense behavior.
Known Issues
- IntelliSense on Linux/Mac will stop working with a "No IL available" error after
#erroris hit, most likely for projects that aren't properly configured, with an unrecoverable parser error occurring in a header file. #6114 - Using
clang-formaton ARM devices may require installing libtinfo5. #5958 - Error "Comments are not permitted in JSON" appears when a c_cpp_properties.json with comments is open but hasn't been made active yet. #6133
0.30.0-insiders5
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.44.0 or later.
Changes
Enhancements
- Prevent comments from being removed from
tasks.jsonwhen the extension modifies it. - Add workspace parsing diagnostics. #6048
- Add
wmainsnippet on Windows. #6064
Bug Fixes
- Fix extension not creating
tasks.jsonif the.vscodefolder doesn’t exist. #4280 - Fix IntelliSense completion crash regression. #5960
- Fix error message with
Build and Debug Active File. #6071
Known Issues
- None so far.
0.30.0-insiders4
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.44.0 or later.
Changes
New Features
- Support non-UTF-8 file encodings (GBK, UTF-16, etc.). #414
- Add support for
/Zc:__cplusplusincompilerArgsfor cl.exe. #2595 - Support for running the extension on Linux arm/arm64 for older OS's without glibc 2.28 (Ubuntu 14-18, Debian 8-9, CentOS 7, etc.). #5984, #5993
- Add diagnostics on potentially conflicting recursive includes to
C/C++: Log Diagnostics, i.e. if a workspace uses files with the same name as system headers. #6009
Enhancements
- Improve the download and installation progress bar. #1961
- Add error codes and "C/C++" source to IntelliSense errors. #2345
- Add link to the documentation in the configuration UI. #5875
- Abhishek Pal (@devabhishekpal) PR #5991
Bug Fixes
- Fix member completion in C code after an operator is used in an expression. #2184
- Fix squiggles on
compilerPathfor compilers found from the PATH environment variable. #6006 - Remove keyword completion of C identifiers that are defined in headers and aren't keywords (e.g.
alignas). #6022 - Fix
vcFormatformatting not using VS Code'stabSize.
Known Issues
- IntelliSense crash during completion. #5960
0.30.0-insiders3
Instructions
Set the "C_Cpp.updateChannel" setting to "Insiders" to auto-install the latest Insiders vsix ("extensions.autoUpdate" needs to be true too). Or if that doesn't work (e.g. for remote ARM machines), manually download the vsix that matches the target OS and run the "Install from VSIX" command in VS Code (don't double click the vsix).
Requirements
- VS Code 1.44.0 or later.
Changes
New Features
- Support for running the extension on Linux arm64/aarch64 devices, using remoting. #2506, #5969
- Add support for vcFormat settings in
.editorconfigfiles. PR #5932
Enhancements
- Validate crypto signatures of binaries we download. #5268
- Search for
compilerPathin the PATH environment variable. #5908
Bug Fixes
- Fix
configuration.includePathto only add thedefaultFolderwhen the defaultincludePathis set. #5621 - Fix Doxygen parameterHint comment to display for a parameter name that is followed by colon. #5836
- Fix compiler probing when relative paths are used in
compile_commands.json. #5848 - Fix IntelliSense failures with gcc 10.2 headers with C++20. #5897, #5973
- Fix Doxygen comment to escape markdown characters. #5904
- Fix a regression introduced in a previous insiders in which additional format on-type characters were introduced when using clang-format. These on-type characters have been reverted, when using clang-format. #5962