Skip to content

1.0.0

Compare
Choose a tag to compare
@sean-mcmanus sean-mcmanus released this 14 Sep 18:13
· 1691 commits to release since this release
9525fc7

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 to C_Cpp.formatting (with C_Cpp.vcFormat.* options) to enable VS-style formatting (instead of clang-format formatting). #657
    • Add support for vcFormat settings in .editorconfig files. PR #5932

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 in compilerArgs 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
  • 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 the defaultFolder when the default includePath 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 no compilerPath 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 to c11 instead of gnu18 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, and codeFolding 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