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.autoGuessEncoding
support. #414 - Support for running the extension on Linux ARM devices (armhf/armv7l and aarch64/arm64), using remoting. #429, #2506
- Add the
vcFormat
option toC_Cpp.formatting
(withC_Cpp.vcFormat.*
options) to enable VS-style formatting (instead of clang-format formatting). #657- Add support for vcFormat settings in
.editorconfig
files. 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:__cplusplus
incompilerArgs
for cl.exe. #2595 - Search for
compilerPath
in 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
wmain
snippet 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.json
if the.vscode
folder 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
intelliSenseMode
is set. #5352 - Get the default language standard of the compiler and use that std version if no version is specified. #5579
- Fix
configuration.includePath
to only add thedefaultFolder
when the defaultincludePath
is 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
compilerArgs
not being used if nocompilerPath
is 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
cStandard
being set toc11
instead ofgnu18
with 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.compilerPath
is 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.json
could result in custom configurations for currently open files being discarded and not re-requested.
Potentially Breaking Changes
- Settings
commentContinuationPatterns
,enhancedColorization
, andcodeFolding
are no longer available in per-Folder settings (only Workspace or higher settings). PR #5830 - Fix compile command arguments not being used when
compilerPath
is set (so the compile command arguments need to be compatible now). - If a non-matching
intelliSenseMode
was 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
#error
is hit, most likely for projects that aren't properly configured, with an unrecoverable parser error occurring in a header file. #6114 - Using
clang-format
on 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