257 KiB
257 KiB
C/C++ for Visual Studio Code Changelog
Version 1.22.8: October 8, 2024
Bug Fixes
- Fix an issue with the 'Add #include' code action incorrectly using a relative path for a system include. #12010
- Fix an issue with lingering incorrect squiggles after an edit. #12175
- Fix an issue with clang-format/tidy version checks for some builds. #12806
- Revert/postpone changes related to recursive includes handling due to issues with some projects.
- Fix a memory leak.
Version 1.22.7: September 30, 2024
Enhancement
Bug Fixes
- Fix some Copilot-related issues. PR #12773
- Fix an issue preventing use of a full command line in
compilerPath. PR #12774 - Fix an infinite loop on shutdown after changing the selected settings.
- Fix a crash (from
insert_lines).
Version 1.22.6: September 25, 2024
Bug Fixes
- Fix an issue with usage of
#cppwith Copilot chat. vscode-copilot-release#1634 - Fix a performance regression with tag parsing.
- Fix a document buffer issue related to edits within files containing multi-byte characters.
Version 1.22.5: September 24, 2024
Enhancement
- Add the database path to the
C/C++: Log Diagnosticsoutput.
Bug Fixes
- Fix some synchronization and crash issues with
handle_edits. #12747 - Fix usage of
#cppwith Copilot chat. PR #12755 - Fix some document buffer issues.
Version 1.22.4: September 19, 2024
Enhancements
- Performance improvements related to how custom configurations are processed. #12632
- Performance improvements related to LSP request processing.
Bug Fixes
- Fix an issue with missing database symbols after a Rename operation. #12480
- Work around IntelliSense issues with clang 18 due to
size_tnot being defined. #12618 - Fix some crashes with recursive includes. #12643
- Possibly fix a crash in
find_existing_intellisense_client. #12666 - Fix issues applying
files.excludesettings whenC_Cpp.caseSensitiveFileSupportis enabled. #12672 - Fix an issue with duplicate tag parsing occurring after a Rename operation. #12728
- Fix an issue causing unnecessary TU updates for files opened during a Rename operation, when
"files.refactoring.autoSave": falseis used.
Version 1.22.3: September 12, 2024
Enhancement
- Add support for providing additional context information to Copilot Chat. PR #12685
- Currently, it requires
"C_Cpp.experimentalFeatures": "enabled"and typing#cppin the chat.
- Currently, it requires
Bug Fixes
- Fix the compiler selection control not keeping the list in sync with contents of the textbox. #7427
- Fix a string localization issue. #7824
- Stop logging duplicate compiler path messages. #12445
- Fix some crashes with recursive includes. #12643
- Fix a rare crash on macOS related to
get_memory_usage. #12667 - Fix an issue with 'Extract to Function' formatting. #12677
- Fix a potential deadlock in
process_paths. #12690
Version 1.22.2: August 29, 2024
Enhancement
- Remove the
C_Cpp.intelliSenseEngineFallbacksetting. #12596
Bug Fix
- Fix a deadlock when doing "Find All References" and a file is deleted. #12656
Version 1.22.1: August 29, 2024
Enhancement
- Add "Additional Tracked Settings" to
C/C++: Log Diagnosticsoutput. PR #12635
Bug Fixes
- Fix hover over static constexpr variables sometimes not working. #12284
- Fix completion not giving results in several scenarios. #12412
- Fix include completion showing results for deleted folders with recursive includes. #12636
- Fix the
/FUflag not working for C++/CLI . #12641 - Fix some crashes with recursive includes. #12643
- Fix IntelliSense not working on Windows when
C_Cpp.caseSensitiveFileSupportisenabled. #12648 - Changes that might fix a crash with
translate_encoding_to_utf8. #12652 - Fix a random crash during IntelliSense creation.
Version 1.22.0: August 26, 2024
Performance Improvements
- Switch to an alternative implementation of recursive includes (that sends all the paths instead of only the "used" paths). #11780
- Performance improvement: Configuration is no longer blocked on tag parsing of all dependent headers.
- Configuration change: Recursive include paths now take precedence over system include paths (similar to compiler behavior and non-recursive includes). #11485
- Initialization performance improvements. #12030
- Improve the implementation of file buffers to reduce memory usage.
Enhancements
- Add modified
C_Cppsettings to theC/C++: Log Diagnosticsoutput. #11700 - Change the default C/C++
"editor.stickyScroll.defaultModel"to"foldingProviderModel". #12483 - Add better validation for settings. #12371
- Various IntelliSense parsing updates/fixes.
Bug Fixes
- Stop logging duplicate compiler path messages. #12445
- Fix an issue where a file is incorrectly processed as C instead of C++. #12466
- Fix include path ordering being incorrect if there is a duplicate. #12525
- Fix a WebAssembly "Out of Memory" error. #12529
- Fix an error message not being shown if the connection failed with remote attach debugging. #12547
- Thank you for the contribution. @MrStanislav0 (Stanislav)
- Fix
-Inot being used if-iquoteis also used for the same path. #12551 - Fix issues with relative paths on
nvcc(CUDA) command lines not being handled correctly. #12553 - Fix a random crash when a child process is created. #12585
- Fix a crash on shutdown on macOS with a verbose logging level. #12567
- Fix some issues with recursive includes handling of symbolic links, multi-root, exclusion changes, and file/folder deletion.
- Fix unnecessary IntelliSense resetting when a new file or folder was created.
- Fix accumulation of stale signature help and completion requests.
- Fix some bugs with include completion.
Version 1.21.6: August 5, 2024
- Fix a cpptools-srv crash on shutdown. #12354
Version 1.21.5: July 31, 2024
Bug Fixes
- Fix clang-format and clang-tidy not working on Windows 10. #12289
- Fix a crash with cpptools-srv on certain macOS versions. #12354
- Fix cpptools crashing on macOS Big Sur or older. #12511
- Fix debugging on Windows ARM64. #12520
Version 1.21.4: July 25, 2024
- Re-enable compatibility with VS Code 1.67.0 (instead of 1.82.0). #12507
Version 1.21.3: July 24, 2024
- Fix a crash on Linux ARM OS's. #12497
Version 1.21.2: July 12, 2024
Enhancements
- Add
seeandsato theC_Cpp.doxygen.sectionTagssetting. #12384 - Update the vcpkg header database. PR #12430
- Disable the pre-release prompt if the
extensions.ignoreRecommendationssetting istrue. #12438 - Switch to an alternative workspace symbol search implementation (performance and results will be slightly different from previous versions).
- Various IntelliSense engine updates/fixes.
Bug Fixes
- Stop logging file watch events for excluded files. #11455
- Fix a crash if the Ryzen 3000 doesn't have updated drivers. #12201
- Fix handling of
-isystemand-iquotefor IntelliSense configuration. #12207 - Fix doxygen comment generation when
/**comments are used. #12249 - Fix a code analysis crash on Linux if the message is too long. #12285
- Fix relative paths in
compile_commands.jsonto be relative to thecompile_commands.json's directory. #12290 - Fix a tag parser performance regression. #12292
- Fix a regression with cl.exe system include path detection. #12293
- Fix code analysis, find all references, and rename from getting the wrong configuration for non-open files on the first run when using a configuration provider. #12313
- Fix handling of doxygen comment blocks with
*//*in them. #12316 - Fix potential crashes during IntelliSense process shutdown. #12354
- Fix the language status not showing it's busy while the tag parser is initializing. #12403
- Fix the vcpkg code action not appearing for missing headers available via vcpkg. #12413
- Fix custom configurations sometimes not getting used. PR #12427
- Fix a code analysis error when using gcc 14. #12428
- Fix warning notification showing when
C_Cpp.getIncludesis disabled. PR #12470 - Fix a cause of colorization, inactive regions, and inlay hints getting cleared when an update is pending.
- Update the default clang/gcc versions used for IntelliSense if an unknown version is found.
- Fix a cause of semantic tokens transiently being placed in the wrong location.
- Update clang-format and clang-tidy from 18.1.2 to 18.1.7 (for the bug fixes).
- Fix a potential deadlock when configured using compile commands.
Version 1.20.5: May 6, 2024
Enhancements
- Add support for C++ modules IFC version 0.43. #10843
- Add support for
${userHome}inc_cpp_properties.json. #11756 - Reduce the default max workspace symbol search results and add
C_Cpp.maxSymbolSearchResults. PR #12131 - Update
clang-format/clang-tidyto 18.1.2. PR #12135 - Log
cpptoolsandcpptools-srvcrash call stacks in the 'C/C++ Crash Call Stacks' Output channel for bug reporting (on x64 Linux and x64/arm64 Mac). - Increase the fuzzy symbol character limit from 16 to 28.
- Update the IntelliSense engine.
Bug Fixes
- Fix an IntelliSense parsing issue. #6183
- Fix 'Copy Declaration / Definition' code not being formatted. #10956
- Fix semantic colorization of certain macro arguments. #11416
- Fix 'Add #include' code actions for code scoped by a namespace or class. #11541
- Fix 'Create Declaration / Definition' not working if the cursor isn't on the function name. #11834
- Fix duplicate 'Add #include' code actions. #11989
- Fix directories being incorrectly recursively traversed in certain cases. #11993
- Fix
forcedIncluderesolution for relative paths. PR #12035 - Fix 'Add Configuration...' in
launch.jsonwheneditor.suggest.showSnippetsisfalse. #12059 - Fix
c_cpp_properties.jsonwarnings forincludePaths with**wildcard glob patterns. #12070 - Fix non-existent relative path variables not showing a warning in
c_cpp_properties.json(and other related issues). #12089 - Fix call stacks for
cpptoolsandcpptools-srvnot being available on Linux. #12091 - Fix IntelliSense processes shutting down immediately if not enough memory is detected. #12126
- Fix code analysis aborting after encountering an excluded file (instead of just skipping it). #12127
- Fix
"Cannot open source"errors on missing includes not appearing ifC_Cpp.errorSquigglesisenabled. #12134 - Fix the IntelliSense server not starting when a completion, signature help, or document highlight occurs from external commands. #12143
- Fix the IntelliSense configuration not falling back to the
c_cpp_properties.jsonconfiguration for a file not handled by a configuration provider. #12144 - Fix duplicate URIs in calls to provideConfigurations. #12177
- Fix a crash and deadlock with a high
C_Cpp.loggingLevel. #12194 - Fix handling of
-iquotefor code analysis and#includecompletions. #12198 - Fix a crash during startup. #12237
- Fix IntelliSense configuration on Windows ARM64. #12253
- Fix a
cpptoolsprocess crash and deadlock during shutdown.
Version 1.19.9: March 20, 2024
Bug Fixes
- Fix an issue with Cygwin system headers not being properly detected. #12113
- Fix a crash in cpptools-srv when low on memory. #12121
- Fix an issue preventing cpptools-srv from being relaunched after a crash.
Version 1.19.8: March 13, 2024
Bug Fixes
- Fix an issue with applying the proper working directory from a
compile_commands.jsonwhen acompilePathis also set. #12024 - Fix a deadlock. #12051
- Fix a crash that could occur when failing to query clang-cl.
- Fix an issue with handling of
winsysrootargs for clang-cl. - Fix an issue with processing relative include paths returned by clang-cl.
Version 1.19.7: March 11, 2024
Bug Fixes
- Fix some potential deadlocks. #12051
- Fix a crash related to parsing concepts. #12060
- Fix flickering status updates in the language status bar. #12084
- Fix a cpptools crash that can occur if cpptools-srv crashes on initialization.
Version 1.19.6: March 6, 2024
Enhancement
- Performance improvement.
Version 1.19.5: March 4, 2024
Enhancements
- Change how
argsandcommandfields are handled incppbuildtasks, to match the behavior of VS Codeshellbuild tasks, including explicitquotingsupport. #12001 - Enable C23 IntelliSense support, and add support for
clateststdvalue for MSVC. #12020
Bug Fixes
- Fix the IntelliSense cache not being pruned. #11925
- Fix an issue with duplicate
Add #includecode actions appearing if the same header name exists in multiple locations. #11989 - Fix compiler querying with a
-index-store-pathargument. #12012 - Fix an issue with changes to
C_Cpp.inlayHintssettings not taking effect immediately. #12013 - Fix an issue with how Doxygen
briefandparamare displayed on hover. #12015 - Fix an issue preventing the extension from functioning if installed via snap on Linux. #12021
- Fix compiler querying with a
-Xclang -mllvmargument. #12024 - Fix the include graph lookup not occurring for source files. #12036
- Fix exclusions not applying to dependent headers with recursive includes. #12042
- Fix a potential cpptools process hang on shutdown.
Version 1.19.4: February 21, 2024
Enhancements
- Enable support for fuzzy symbol searches. #2751
- This may not be enabled for all users unless
C_Cpp.experimentalFeaturesisenabled.
- This may not be enabled for all users unless
- Implement progressive population of IntelliSense results. #7759
- Improve performance of symbol searches. #7908, #7914, #11557
- This may not be enabled for all users unless
C_Cpp.experimentalFeaturesisenabled.
- This may not be enabled for all users unless
- Support insert mode for auto-complete. #10613
- Use the
"[cpp]": { "editor.suggest.insertMode": "insert" }and"[c]": { "editor.suggest.insertMode": "insert" }settings to override the extension's defaults.
- Use the
- Improve memory efficiency by using token parsing in the 'Add #include' feature. #11515
- Change the default setting value for
C_Cpp.intelliSenseUpdateDelayfrom 2s to 1s. PR #11932 - Improve the types supported for the 'Add #include' code action.
- Various performance improvements.
Bug Fixes
- Fix IntelliSense bug with type deduction using concepts. #8132
- Fix clang-format error messages not being logged. #8944
- Fix indentation missing in markdown fenced code blocks. #11379
- Fix shell escaping for
cppbuildtask command line arguments. #11422 - Fix IntelliSense not updating when a
#includeis added from a refactor command. #11549 - Fix 'Add '#include' code actions for Mac frameworks. #11579
- Fix the parent path of the source file in
compile_commands.jsonnot being added to the browse.path. #11631 - Fix the database not getting updated in certain cases when switching configurations. #11649
- Fix a cpptools crash with certain projects. #11674
- Fix snippet and include completion. #11715, #11720
- Fix formatting not working in headers after using 'Extract to Function'. #11729
- Fix document symbol requests not checking for cancellation. #11750
- Fix the default
editor.wordBasedSuggestionssetting for VS Code versions 1.85 or newer. PR #11773- This change doesn't work with VS Code versions 1.84 or older, due to Microsoft/vscode#200685
- Fix code analysis results getting cleared after there's a configuration update. #11790
- Fix an exception getting thrown if IntelliSense is disabled but a configuration provider is registered. #11795
- Fix an EACCES error when using include wildcards with system includes. #11833
- Fix German code analysis translations. PR #11845
- Thank you for the contribution. @Sir2B (Tobias Obermayer)
- Trim trailing spaces from include paths in the configuration UI. #11862
- Fix comma delimited lists in
@paramDoxygen parameters. #11868 - Fix incorrect errors for
compilerPathin the configuration UI for compilers that can be found in PATH. #11903 - Fix an issue with include sorting when formatting with clang-format. #11914
- Fix the
-includearg of-Xarg_<arg1>getting filtered out, leading to a failed compiler query. #11965 - Fix the
-archflag overwriting the-targetflag's value when it shouldn't. #11971 - Fix an issue in which the directory specified in a
compile_commands.jsonwas not being used as the current directory when querying the specified compiler path. - Fix an issue with configuring IntelliSense for a header file after having chosen an associated source file in which inclusion of the header is disabled or removed.
- Fix an issue where use of an explicit
compilerPathto override the compiler in acompile_commands.jsonwill also throw out the compiler arguments. - Fix IntelliSense passes occurring while a user is still typing, instead of honoring the
C_Cpp.intelliSenseUpdateDelaysetting. - Fix issues related to support for C++ modules and parsing of related compiler arguments.
- Fix issues with the tag parsing status sometimes not being accurately reflected in the UI.
- Fix document and workspace symbol requests being blocked by an IntelliSense request.
- Remove the requirement that a file be open in the editor from various LSP requests.
- Fix a crash if
compile_commands.jsondoesn't have an array at the root. - Fix a call hierarchy bug leading to use of header-only TU's unnecessarily.
- Fix an issue that could result in the Outline pane not being populated.
- Fix a bug that could lead to missing TU source file candidates.
- Address multiple issues with compiler querying of clang-cl.
- Fix a potential crash when using 'Find All References'.
- Fix a "random" IntelliSense crash during completion.
- Fix a crash if access to
/dev/urandomis restricted. - Fix some crashes reported by crash telemetry.
- Lots of other minor fixes.
Version 1.18.5: November 16, 2023
Bug Fix
- Fix
~/vscode-cpptoolsbeing used as the cache folder instead of~/.cache/vscode-cpptoolson Linux. #11693
Version 1.18.4: November 14, 2023
Bug Fixes:
- Fix 'Extract to function' not scrolling to and selecting the added header declaration. #11676
- Fix the extension sometimes failing to activate with VS Code versions less than 1.85. #11680
Version 1.18.3: November 13, 2023
New Features
- Add an 'Extract to function' (or member function) code action after selecting code. #1162
- Compiler acquisition improvements. #10525
- Provide
Add '#include'code action suggestions for IntelliSense errors related to symbols not being found. #10791
Enhancements
- Add keyboard support for 'Inline Macro'. #11260
- Add setting
C_Cpp.refactoring.includeHeaderto customize whether or not to add an include header when doing a refactoring code action. #11271 - Improve the walkthrough wording. #11320
- Update clang-format and clang-tidy to 17. PR #11491
- Add a pre-release available notification. PR #11569
Bug Fixes
- Fix the debugger truncating long strings when inspecting values. #1786
- Switch to using
XDG_CACHE_HOMEon Linux for the default database path. #10191 - Fix an IntelliSense error with std::is_trivially_copyable_v. #10712
- Fix incorrect status and commands with the tag parsing language status UI. #10749
- Fix an empty (
"")compilerPathin a base configuration overriding the compiler specified by a custom configuration provider or acompile_commands.json. #11373 - Fix a startup crash when reading values from JSON (settings) that are not the type expected. #11375
- Fix a crash detected by crash telemetry. #11401
- Fix handling of an undefined
envvariable on Linux and macOS. #11447 - Fix multiple issues with querying
nvcc(CUDA) as a compiler. #11454 - Fix an IntelliSense crash when hovering over an invalid array index expression. #11510
- Fix an issue that could cause a C language standard to be applied to a C++ file, or vice versa.
- Remove
cppandclang-cpppreprocessors from the list of detectable compilers. - Fix an autocomplete crash bug (primarily on Mac).
Version 1.17.5: August 28, 2023
Bug Fixes
- Fix a language server crash for platforms that don't support the IntelliSense cache (AutoPCH). #10789
- Fix markdown in comments when inline/block code is used. #11322
- Fix Find All References and Call Hierarchy for C files when the cursor is at the end of a symbol. #11338
- Fix usage of the
/Zc:alignedNew-MSVC compiler option. #11350
Version 1.17.4: August 21, 2023
Bug Fixes
- Fix crash recovery for the main extension process. #11335
- Fix an IntelliSense process crash when certain error messages occur with a language pack enabled. #11336
Version 1.17.3: August 16, 2023
Bug Fix
- Fix a regression with attaching the debugger to processes on Linux and macOS. #11328
Version 1.17.2: August 14, 2023
Enhancements
- Enable a subset of markdown to render in hover by default and a
C_Cpp.markdownInCommentssetting. #6020, #10461 - Add support for gcc 13 features. #11038
- Add default compiler detection of additional compilers in MSYS environments. #11211
- Use musl for building Linux binaries of the extension.
- Add support for additional compiler wrappers: gomacc, distcc, buildcache, and icecc.
Bug Fixes
- Fix a couple bugs with documentation comments. #5241
- Added
__float128support in gcc IntelliSense mode. #9558 - Fix an issue where the debugger would get stuck while using cl.exe options. #10231
- Fix C/C++ commands showing in the Command Palette with non-C/C++ files. #10421
- Fix the 'Select IntelliSense Configuration' command to also update an existing
compilerPathin c_cpp_properties.json. #10808 - Update clang-format (and clang-tidy) to 16.0.6 to fix a bug. #11027
- Fix
#includecompletion leaving an extra>. #11042 - Fix an issue with matching of glob patterns containing path delimiters. #11132
- Fix Create Declaration/Definition via
Quick Fix…from hover tooltip. #11157 - Fix issues with compiler querying of clang-cl. #11207
- Fix
files.encodingsetting on startup. #11210 - Fix a crash related to directories with a very large number of files. #11226
- Fix the parameter format of call hierarchy items. #11247
- Remove the vcpkg code action from the missing includes code action list. #11252
- Fix the file path info of call hierarchy items to display the relative path to a workspace folder. #11254
- Fix colorization for macro expansions in macro arguments. #11256
- Fix a crash for CUDA projects with '>' in the command line. #11289
- Increase the default standard for the 'Build and Debug Active File' feature to c++14 on macOS. #11292
- Fix an issue with the compiler currently configured for use with IntelliSense being listed last in the task creation popup. PR #11299
- Fix an IPCH issue on Linux due to the Position Independent Executable (PIE) option not being set since 1.17.0.
- Fix Rank > 1 Display Strings for Natvis. PR MIEngine#1406
- Fix some crashes identified by crash telemetry.
- Fix an issue that could cause zombie processes on Linux/Mac.
- Address some issues with glibc version compatibility. Native binaries for cpptools and the bundled clang-tidy/clang-format are now built with musl and fully statically linked.
- Fix the wrong compiler being set as default when configured to use
compile_commands.jsonand overriding the compiler used there with an explicitcompilerPath.
Thank You to the Contributors
- @gareth-rees (Gareth Rees): Always use
--simple-valuesin newer versions of GDB. PR MIEngine#1400 - @iAbadia (Iñaki): Align use of 'sendInvalidate' request arguments. PR MIEngine#1402
- @intel-rganesh (Rakesh Ganesh): Introduce
--threadand--frame options. PR MIEngine#1401 - @michalmaka (Michał Mąka): Add support for Toybox to the remote process picker. PR #11175
- @sbobko (Sergey Bobko): Add 'sendInvalidate' request. PR MIEngine#1367
- @yne (Rémy F.): Add wildcard support for
includePath. PR #10388
Version 1.16.3: June 23, 2023
Bug Fix
- Fix "cout is ambiguous" error. #11122
Version 1.16.2: June 22, 2023
New Features
- Add Call Hierarchy. #16
- Add "Copy Definition" and "Copy Declaration" code actions (for when the default Create placement isn't desired). #10238, #10942
Enhancements
- Add support for other glob pattern syntax, such as
[]and^. #8960 - Add support for C++23 z/Z and zu/ZU suffixes in clang/gcc modes. #10190
- Add warning logging when the database is reset due to a version change. #10984
- Move user compilers to the beginning of the "known compilers" lists. #10985
- Add file path to the details of a call hierarchy result. #10997
- Add
miDebuggerArgsto debugger attach option.- Thank you for the contribution @Summon528 PR #11066
Bug Fixes
- Fix an IntelliSense parsing bug with C++20 ranges. #8039
- Fix incorrect insertion of Create Declaration/Definition when it also adds a #include. #10464
- Fix an IntelliSense bug with user-defined floating-point literals. #10837
- Fix deadlock with Find All References. #10855
- Fix performance issues on machines with > 32 threads. #10874
- Fix localization of "C/C++ Configurations". #10907
- Fix the workspace folder not getting added to the browse.path in some cases. #10914
- Fix incorrect Apple clang to LLVM clang version mappings. #10920
- Revert -fms-extensions being added for mingw compilers by default (due to bugs). #10940
- Fix the "known compilers" list not getting updated with "user compilers". #10943
- Fix cancelation of Find All References while confirming references. #10947
- Fix a bug with workspace parsing status. PR #10974
- Fix some bugs if settings were empty string or null. #10994
- Fix cancellation for Find All References/Rename/Call Hierarchy. #10998
- Fix two Doxygen comment generation bugs. #10995, #11016
- Fix the thread pool sometimes not increasing in size, which could lead to the cpptools process incorrectly being shut down. #11003
- Stop using vcFormat if .editorconfig exists with only non-formatting cpp settings. PR #11015
- Use integratedTerminal when user is running cl.exe for debugger. #11032
- Thank you for the contribution @caiohamamura PR #11035
- Fix the configure your IntelliSense notification to not show again when the "Don't Show Again" option is selected. #11070
- Fix a bug that could cause incomplete reading of stdout/stderr of child processes on Windows.
- Fix incorrect "declaration is incompatible" IntelliSense errors.
- Fix some potential crashes.
Version 1.15.4: May 1, 2023
Enhancements
- Support multiple natvis files in
visualizerFile. #925 - Enable error squiggles for single file mode if includes resolve. #10062
- Improve the description of the
C_Cpp.codeAnalysis.clangTidy.enabledsetting. #10454 - Add a 'Select an IntelliSense configuration' code action and error message for standard headers which can't be found. #10531
- Change the 'Edit "includePath" setting' code action to reference "compilerPath" for missing system includes. #10675
- Add a "Configure IntelliSense" status bar warning (currently controlled by an experiment). #10685
- Re-enable an updated C/C++ walkthrough (currently only available for some users). PR #10707
- Update to clang-format/tidy 16. #10725
- Move the configuration status bar item out of the language status UI. #10755
- Change
Select Default CompilertoSelect IntelliSense Configurationwith configuration providers and compile commands added. #10756
Bug Fixes
- Support use of
ccache, 'sccache', and 'clcache' incompilerPathandcompile_commands.jsoncommand lines. #7616 - Enable
-fms-extensionsby default for Cygwin and MinGW. #8353 - Fix incorrect, excessive logging with compile commands. #9865
- Fix IntelliSense errors with C++ 20 range and span. #10024, #10252
- Fix two vcFormat settings being inverted. #10262, #10263
- Fix 'Create Declaration / Definition' making modifications to files outside the workspace folder. #10402
- Fix code analysis when
--use-color=trueis used. #10407 - Fix IntelliSense errors with CUDA. #10455
- Fix random save failures while code analysis is running on the saved file. #10482
- Fix the compile commands prompt setting
compileCommandsto acompile_commands.jsonin a different workspace folder. #10588 - Fix code analysis with
_Float16. #10610 - Fix code analysis with c23/gnu23. #10615
- Fix 'Reset IntelliSense Database' being delayed until parsing is finished. #10616
- Fix uncaught exception with some configuration providers. #10634
- Fix crashes with a multi-root workspace. #10636
- Fix bugs with the "You do not have IntelliSense configured" prompt. #10658, #10659
- Fix random failures when adding or removing workspace folders. PR #10665
- Fix missing clang-tidy checks setting values. #10667
- Fix 'Select IntelliSense configuration' so that it works if it's already set in the workspace or workspace folder settings. #10674
- Fix clang-tidy 'clang-analyzer-' documentation links not working. #10678
- Fix the browse configuration provider cache not getting cleared. #10692, #10877
- Fix a crash with recursive environment variables on Windows. #10704
- Fix
#importof.tlbfiles failing due to/Foarguments tocl.exenot being processed. #10710 - Fix
cppbuildtasks not using the workspace folder as thecwdby default. #10742 - Fix lots of IntelliSense processes getting launched after a Find/Replace operation (potentially freezing the OS). #10743
- Fix workspace folder variable resolution with
clang_format_style. #10752 - For remote attach, use an absolute
/bin/shpath on Linux. PR #10765 - Fix the first registered configuration provider still being automatically used after a second registers. PR #10772
- Fix
C_Cpp.default.compilerPathin the settings UI showing a string editor when it shouldn't. #10795 - Fix some issues due to usage of the spread operator not doing a deep copy. PR #10803
- Fix a deadlock with Find All References. #10855
- Fix the Code Analysis Options dropdown showing 'Resume' instead of 'Pause' after a cancel is done in a paused state. #10879
- Fix "Code Analysis Mode" not being localized when initially shown. #10881
- Fix the C/C++-related status bar items flickering off/on when switching documents. PR #10888
- Fix
__GXX_RTTIincorrectly being defined by IntelliSense with clang and-fms-compatibility. - Reduce the likelihood of an
onWillSaveWaitUntiltimeout. - Fix an IntelliSense crash with C++20 concepts.
- Stop querying clang-cl.exe as C.
Version 1.14.5: March 22, 2023
Bug Fix
- Fix a deadlock with a multi-root workspace. #10719
Version 1.14.4: February 28, 2023
Enhancements
- Add
c23andc2xsupport for clang and gcc modes. #7471 - Filter out clang-tidy
#pragma once in main filewarnings. #10539 - Auto-configure
configurationProvidereven ifdefault.compilerPathis set. PR #10607
Bug Fixes
- Fix
--in args making compiler querying fail. #10529 - Fix every .C file being opened in a compile_commands.json if it's build for C++. #10540
- Fix
-std=c++not being used in compile_commands.json for .C files. #10541 - Fix a crash when an error occurs in a forced include. #10598
- Fix the configuration provider browse cache not getting cleared. PR #10608
- Fix a bug that could cause IntelliSense to randomly stop updating.
- Fix some random failures that could happen during database deletion.
- Fix some random crashes on shutdown.
Version 1.14.3: February 14, 2023
New Features
- Add recursive macro expansion on hover. #3579
- Move status bar items to the language status UI. #8405
- This may not be enabled for all users unless
C_Cpp.experimentalFeaturesisenabled.
- This may not be enabled for all users unless
- Add the 'Select Default Compiler' command that lets you choose a default compiler to configure IntelliSense. #10027
Enhancements
- Exclude rename results external to the workspace. #9235
- Add error messages for Create Declaration / Definition. #10163
- Add support for LLVM-based Intel C/C++ compilers. #10218
- SSH output improvements. PR #10292
- Reorder commands in the code action context menu. #10400
- Add Ada to supported languages for debugging. #10475
- Anthony Leonardo Gracio (@AnthonyLeonardoGracio) PR #10476
Bug Fixes
- Fix usage of relative paths in IntelliSense configuration settings with multi-root workspaces. #4983
- Fix infinite recursion in scout_parser. #8898
- Fix an IntelliSense crash with the seqan3 library. #8956
- Fix looping between C and C++. #9689
- Fix Doxygen comments for the function signature being autogenerated when typing inside a function. #9742
- Show a reload prompt after
C_Cpp.hoveris changed. #10076 - Fix function inlay hints not working with
std::string_literalarguments. #10078 - Fix IntelliSense completion for
std::stringwith?:andstring(). #10103 - Fix semantic colorization not working in a certain case. #10105
- Fix IntelliSense completion not working inside constructor calls that are incomplete. #10111
- Fix changes to the enclosing type not being taken into account after "Create Declaration / Definition" is used once. #10162
- Fix "False positive expression must have a constant value with __builtin_choose_expr in _Static_assert". #10168
- Fix Create Declaration / Definition with an anonymous namespace. #10189
- Fix file exclusions not being applied to the first directory found for each browse.path entry. #10205
- Fix IntelliSense mode auto-detection for VS 2015 compiler paths. #10207
- Fix clang-cl 15 querying with /WX. #10221
- Fix an incorrect IntelliSense error with
std::bind, c++17, and windows-msvc-arm64 mode. #10304 - Fix vcFormat when using lambda functions. #10326
- Fix IntelliSense crash in field_for_lambda_capture. #10359
- Fix for cpptools getting shutdown after waking up from sleep. #10362
- Fix an IntelliSense crash when using the French language pack. #10374
- Fix the process id picker only showing part of the process on a remote machine. #10379
- Fix temp files generating at the incorrect path. #10386
- Fix a crash in extractArgs. PR #10394
- Fix a bug with settings changes not being handled correctly for multi-root. PR #10458
Version 1.13.9: January 4, 2023
Bug Fix
- Fix clang-format and clang-tidy not working for macOS 11 arm64. #10282
Version 1.13.8: December 15, 2022
Bug Fixes
- Fix tag parser failure on machines with multiple extension users. #10224
- Fix a
--using_directoryIntelliSense error if LIBPATH is defined with non-msvc IntelliSense modes. #10249 - Fix a crash when the configuration name is missing. #10251
Version 1.13.7: December 8, 2022
Bug Fix
- Fix
files.associationsnot working. #10244
Version 1.13.6: December 6, 2022
New Features
- Add the ability to generate definitions from declarations and vice versa. #664
- Add SSH Target Selector. PR #9760
- Add rsync support in deploySteps. PR #9808
Enhancements
- Add
C_Cpp.caseSensitiveFileSupportfor enabling case sensitive file handling on Windows. #1994 - Add sections to settings. #8237
- Make Doxygen hover comments customizable with
C_Cpp.doxygen.sectionTags. #8525 - Add better build and debug task handling for when a compiler or debugger doesn't exist. #8836
- Delay applying
c_cpp_properties.jsonchanges until after a save. #9185 - Create directories on Linux/Mac with 755 instead of 777 permissions. #9670
- Check for MSVC environment variables for configuring IntelliSense. #9745
- Enable the inlay hint settings to be set per-workspace folder. #9782
- Add a
C_Cpp.hoversetting to enable disabling hover results. #9793 - Update to clang-format and clang-tidy 15.0.3. #9816
- Enable hiding the SSH Targets view with the
C_Cpp.sshTargetsViewsetting. #9836 - Change "Enabled", "Disabled", "Default" settings to camelCase. PR #9862
- Add support for C++ modules IFC version 0.42. #9884
- Add SSH terminal for targets. PR #9895
- Make array settings give a warning for duplicates. PR #9959
- Add "iar" and "armcc5" problem matchers. #10054
- Pass
--Wno-error=unknownto clang-format (12 or newer) to avoid failing on unsupported settings. #10072 - Add support for
/cygdrivepaths returned by some versions of Cygwin. #10112 - Switch from RapidJSON to VS's internal JSON parser.
Bug Fixes
- Fix "final" breaking formatting. #6638
- Fix incorrect "expected concept name" IntelliSense error. #6876
- Fix incorrect Outline view with C++20 namespace ::inline syntax. #7216
- Fix updates to compile_commands.json not being handled if specified using a relative path. #7610
- Fix variadic macros not expanding correctly. #8178
- Fix the
editor.parameterHints.enabledsetting not being used whenC_Cpp.autocompleteAddParenthesesistrue. #9314 - Fix IntelliSense bug "A result type of
__builtin_choose_exprthat returns a pointer to a function is not correctly inferred in clang mode". #9368 - Fix some invalid macro redefinition errors. #9435
- Fix wordexp sometimes getting stuck on Mac (and Linux). #9688
- Fix ctrl+space completion for Doxygen tags. #9732
- Fix the position of inlay parameter hints when using at or operator[]. #9741
- Fix
-std=being passed to clang-tidy in certain cases . #9776 - Fix
${workspaceFolder}not being resolved inC_Cpp.clang_format_style. #9786 - Fix debugger visualization for ArrayItem elements more than 1000. #9801
- Fix extra comma in the generated the
(gdb) attachconfiguration inlaunch.json. #9818 - Fix IntelliSense crash with range-v3
ranges::views::addressof. #9870 - Fix slow compiler querying. #9882
- Handle
-fexperimental-libraryclang argument. #9888 - Fix compiler querying with multiple -arch. #9894
- Fix code analysis errors related to SSE being enabled when gcc is used. #9898
- Fix issue with parsing SSH configurations that could cause the extension to fail to activate. #9933
- Fix inlay hints showing "type" for lambdas in certain cases. #9971
- Resolve variables for
C_Cpp.codeAnalysis.clangTidy.argsandheaderFilter. #9981, #9996 - Fix some translations. #9986, #10011, #10012, #10013
- Fix "Step Over past a logpoint stops at the wrong place". #9995
- Disable the "Generate Doxygen Comment" context menu when IntelliSense is disabled. PR #10007
- Fix Doxygen code action from appearing on a function that already has a
*/comment. #10009 - Fix clang-tidy and clang-format not working on CentOS7 and other Linux OS's without glibc 2.27 or greater. #10019
- Fix various bugs with the
C_Cpp.codeAnalysis.clangTidy.headerFiltersetting. #10023 - Fix Doxygen comment generation when there's a selection. #10028
- Fix issue that could cause document corruption. #10035
- Fixed crash on Linux/Mac when a full command line is specified in
compilerPathcontaining invalid arguments. PR #10070 - Fix random "Failed to spawn IntelliSense process: 65520" on Mac. #10091
- Fix debugger throwing error "stdout maxBuffer exceeded". 10107
- Fix "Can't attach to process on Windows: Unexpected token \ in JSON". #10108
- Fix "Don't hardcode path to kill in UnixUtilities". #10124
- Ellie Hermaszewska (@expipiplus1) PR #1373
- Fix formatting when clang-format 11 or earlier is used (and another issue for version 8 or earlier). #10178
- Fix "Natvis: are multi-dimensional arrays supported in gdb natvis?". MIEngine#980
- Fix include completion sorting extensionless headers (e.g. string) after headers with an extension (e.g. string.h).
- Fix extensionHost logging an error related to onWillSaveTextDocument whenever a save is done.
- Fix random "Failed to spawn IntelliSense process" on Mac.
- Fix a deadlock when IntelliSense errors are updating.
- Fix redundant rescan when adding a workspace folder.
Removed Feature
- Removed explicit WSL support in favor of using the WSL extension. PR #10066
Version 1.12.4: August 31, 2022
Other
- Revert changes to telemetry key format. PR #9822
Version 1.12.3: August 30, 2022
New Features
- Add Doxygen comment generation via command, context menu, code action, or typing. #5683
- Add auto-complete of Doxygen keywords in comments.
Enhancements
- Add auto-formatting of lines that are changed by code analysis fixes. #9322
- Add compile arguments to enable colorized output in cppBuild tasks for clang. #9643
- Cache and reuse SSH passwords in the current remote debugging session. PR #9654
- Fix "natvis collections only show the first 50 elements". MIEngine#821
- Related #9377
- Fix "cppdbg doesn't support array view of char* buf". MIEngine#1258
- Support explicit
thisreferences in natvis files.- @Trass3r PR MIEngine#1163
- Do std fallback when compiler querying, even when explicitly specified via a compiler arg.
Bug Fixes
- Fix several IntelliSense parsing bugs. #3683, #6659, #7446, #9215
- Fix crash when tag parsing files containing certain string literals. #9538
- Fix incorrect semantic tokens with templated operator overloads. #9556
- Fix
.to->completion in functions defined in the class/struct definition. #9599 - Fix inlay hint filtering not working with some cases of whitespace. #9606
- Fix Chinese translation mistakes.
- kouhe3 (@kouhe3) PR #9624
- Fix IntelliSense error with ARM register declarations. #9627
- Fix files with a
.cextension not using a C++stdversion passed in thecompilerArgsorcompilerFragments. #9628 - Fix unnecessary IntelliSense process restarting on file creation handling. #9630
- Fix tag parsing of classes and enums with attributes. #9672
- Add PID to the extended remote process picker. PR #9673
- Fix tag parser crash. #9679, #9695
- Fix code analysis fixes generating invalid code when the fix has escaped characters. #9683
- Fix unintended generation of
nul.dfile when querying clang or gcc, when compiler arguments include dependency generation arguments. #9707 - Fix code analysis fixes not being available when more than one check is associated with a fix. #9755
- Fix error when debugging is started without a launch.json and IntelliSense is disabled. #9762
- Fix "The result of GDB -exec evaluate request in all contexts is printed in debug console." MIEngine #1236
- Fix "Evaluating a variable after a failed Step Out causes a fatal error, leaving debug session unusable". MIEngine#1336
- Gareth Rees (@gareth-rees) PR MIEngine#1337
- Fix deadlock in HandleStackTraceRequestAsync where lock was hold too long.
- GeorgeMay (@JoergMeier106) PR MIEngine#1309
- Fix potential crashes on shutdown.
Version 1.11.5: August 9, 2022
Bug Fixes
- Fix crash when tag parsing files containing certain string literals. #9538
- Fix
llvm-projectparser crash on file:clang/test/parser/parser_overflow.c. #9653 - Fix
llvm-projectparser crash on file:libcxx/test/support/test.support/make_string_header.pass.cpp. #9679
Version 1.11.4: July 21, 2022
New Features
- Add inlay hints for parameters and auto types. #5845
- Add extended remote support for debugging. #8497, #9195, #9491, #9505
Enhancements
- Add deploySteps and variables to cppdbg. PR #9418
Bug Fixes
- Fix "unknown register name" IntelliSense error. #4382
- Fix performance issue with tag parsing a file with a lot of defines. #6454
- Fix IntelliSense with gcc vector extension types. #6890
- Fix doc comments for macros and typedefs. #8320
- Fix issue with CUDA configuration when using a custom config provider and no config is available for the file. #8483
- Fix missing logging when
C_Cpp.intelliSenseEngineis set toDisabled. #9277 - Fix doxygen comments not being displayed for multiple adjacent
@briefor@returntags. #9316 - Fix the code analysis "disable" option not automatically clearing the disabled diagnostics. #9364
- Fix
-isystemnot being used for system headers with code analysis. #9366 - Fix compiler querying for EDG-based compilers. #9410
- Fix hiding IntelliSense dependent commands when
C_Cpp.intelliSenseEngineisDisabled. #9451 - Fix cl.exe build tasks not showing for .c files and .c build tasks being cached for .cpp files (and vice versa). PR #9544
- Fix code analysis not detecting warnings with relative paths. #9555
- Fix
--header-filterbeing used with clang-tidy when it shouldn't when a .clang-tidy file exists. #9566 - Fix code analysis giving an error with
__has_includewith gcc 9. #9575 - Fix
-targetnot being processed incompilerArgs. #9586
Version 1.10.8: July 7, 2022
Enhancements
- Allow breakpoints for Rust debugging. PR #9484
- Make
C_Cpp.debugShortcutsettable per-workspace folder. PR #9514
Bug Fixes
- Fix crash if clang-tidy returns a replacement with an empty FilePath. #9437
- Fix skipping the compiler argument after
-c. #9453 - Fix
-std:c++20not being handled with cl.exe. #9458 - Fix bug with the environment being incorrect when compiler querying. #9472
- Fix duplicate compiler args in compiler query with custom configuration providers using cpptools-api prior to v6. #9531
- Fix process launching concurrency issues on Windows.
Version 1.10.7: June 15, 2022
Bug Fixes
- Fix bugs with process creation on Windows (which caused IntelliSense to fail). #9431
Version 1.10.6: June 14, 2022
Bug Fixes
- Fix
@responseFileincompilerArgsnot being handled on Linux/Mac. #9434 - Fix debug preLaunchTask not working when
C_Cpp.intelliSenseEngineisDisabled. #9446 - Make the
C_Cpp.legacyCompilerArgsBehaviorsetting non-deprecated.
Version 1.10.5: June 8, 2022
New Features
- Add code actions to apply clang-tidy fixes (and other actions). #8476
- Added support for setting values on top level watch window expressions. #9019
- Make the "Run and Debug" button feature available to all users. #9306
Enhancements
- Add
C_Cpp.clangTidy.useBuildPathsetting to enable using-pwith clang-tidy. #8740, #8952 - Generate launch.json when adding a new debug configuration. #9100
- Prioritize the "folder" option when doing a
#includecompletion. #9222 - Add compiler path to debug configuration details. PR #9264
- Update the bundled clang-format and clang-tidy to version 14.0.0.
Bug Fixes
- Fix 'System.NullReferenceException when continuing after adding breakpoint.' #1297
- Fix completion not working in
#definedefinitions and in definition names when manually invoked. #4662, #8973, #9078 - Fix several IntelliSense bugs. #6226, #8294, #8530, #8725, #8751, #9076, #9224, #9336.
- Fix issue with shell processing incorrectly occurring for
argumentsfields incompile_commands.jsonfiles. #8649 - Fix handling of
@responsefiles for clang-tidy on Windows. #8843, #9032, #9102 - Fix issue with inconsistent handling of shell escaping in compiler arg fields. All compiler arg array fields are now assumed to not include shell quoting, escaping or shell variables. Added a
C_Cpp.legacyCompilerArgsBehaviorto restore the legacy behavior. #8963 - Add localized strings for build tasks. #9051
- Fix Go to Definition with C for identifiers that are C++ keywords. #9081
- Fix the new Run/Debug Code button not working with a modified program location. #9082
- Fix
__GNUC__system defines causing clang-tidy to undefine_Float32. #9091 - Fix 'breakpoints set before launch in shared objects cannot be disabled/deleted' #9095
- Fix compiler querying failing for compilers that don't output system includes. #9099
- Fix completion occurring (when it shouldn't) after the comma in a definition list. #9101
- Fix
;incorrectly matching forbreak;andcontinue;completion. #9115 - Fix Go to Definition on a
#includewith an absolute path. #9287 - Fix formatting issue with vcFormat when using multi-byte UTF-8 sequences. #9297
- Fix language server disabling due to a TypeError when invalid json values are used. #9302
- Add support for "user" level and "workspace" level debug configurations. #9319
- Prevent language service activation for macOS older than 10.12. PR #9328
- Fix code analysis with g++ 12 system headers. #9347
- Enable correct symbol parsing for methods that call loop-like macros without requiring the macro be added to cpp.hint. #9378
- Fix a code analysis error when C++23 is used. #9404
- Fix a potential crash in cpptools (in
get_identifier_at_offset). - Other Run and Debug button updates/fixes.
Version 1.9.8: April 20, 2022
Bug Fixes
- Fix an issue with extension activation failing if
C_Cpp.intelliSenseEnginewas set toDisabled. #9083
Version 1.9.7: March 23, 2022
New Features
- Add debugger support for Apple M1 (osx-arm64). #7035
- Resolves issue "[Big Sur M1] ERROR: Unable to start debugging. Unexpected LLDB output from command "-exec-run". process exited with status -1 (attach failed ((os/kern) invalid argument))". #6779
- Add a build and debug button when
C_Cpp.debugShortcutistrue. #7497- The "Build and Debug Active File" command has been split into "Debug C++ File" and "Run C++ File", and it has been removed from the context menu.
- Add Alpine Linux arm64 support (VSIX).
- Add x64 debugger for CppVsdbg on Windows x64.
Enhancements
- Reserved identifiers with characters that match typed characters in the correct order but not contiguously are initially filtered in the auto-completion list. Doing a
ctrl+spacein the same location will show all auto-complete suggestions. #4939 - Add
dotConfigproperty to IntelliSense Configuration (c_cpp_properties.json) to use .config file created by Kconfig system.- Matheus Castello (@microhobby) PR #7845
- Rework how cancelation is processed for semantic tokens and folding operations. PR #8739
- Make SwitchHeaderSource use the
workbench.editor.revealIfOpensetting.- Joel Smith (@joelmsmith) PR #8857
- Add tag parser error logging. #8907
- Add error and warning messages if the VSIX for an incompatible or mismatching platform or architecture is installed. #8908
- Add a "More Info" option when an incompatible VSIX is encountered. PR #8920
- Add
;tobreakandcontinuecompletion keywords. #8932 - Prevent stripping of format specifiers from -exec commands.
- Gareth Rees (@gareth-rees) PR MIEngine#1277
- Improve messages for unknown breakpoints and watchpoints.
- Gareth Rees (@gareth-rees) PR MIEngine#1282
Bug Fixes
- Fix some IntelliSense parsing bugs. #5117
- Fix IntelliSense process crashes caused by a stack overflow on Mac. #7215, #8653
- Fix exclusions not applying during tag parsing of non-recursive dependent includes. #8702
- Fix issue that could cause an infinite loop when clicking on a preprocessor conditional directive. #8717
- Fix excludes applying to cases it should not when running code analysis. #8724
- Fix a crash when visualizing local variables for Microsoft Edge (msedge.exe) #8738
- Fix some system defines being incorrectly removed when running code analysis. #8740
- Prevent an error from being logged due to custom configuration processing prior to the provider being ready. #8752
- Fix incorrect crash recovery with multi-root. #8762
- Fix random compiler query, clang-tidy, or clang-format failure on Windows. #8764
- Fix invoking commands before cpptools is activated. #8785
- Fix a bug on Windows with semantic tokens updating. #8799
- Fix tag parser failure due to missing DLL dependencies on Windows. #8851
- Fix semantic tokens getting cleared for all other files in a TU after editing a file. #8867
- Fix a bug and typos with cppbuild task providers.
- InLAnn (@inlann) PR #8897
- Fix an issue that could cause the extension to fail to start up properly. PR #8906
- Fix handling of
-Bwith compiler querying. #8962 - Fix incorrect "Running clang-tidy" status indications with multi-root workspaces. #8964
- Fix a crash during shutdown and potential database resetting due to shutdown being aborted too soon. PR #8969
- Fix an issue that could cause the active file to not be configured by a configuration provider when custom configurations are reset. #8974
- Fix detection of Visual Studio 2015. #8975
- Fix mingw clang being detected as gcc. #9024
- Fix a random crash on file open.
- Fix some IntelliSense crashes.
- Fix some IntelliSense parsing bugs.
- Fix a bug with IntelliSense updating not working if a file was closed and reopened while its TU was processing an update.
- Fix a potential heap corruption when
files.associationsare changed. - Update translated text.
Documentation
- Clarify how to get binaries when debugging the source from GitHub.
- Hamir Mahal (@hamirmahal) PR #8788
Version 1.8.4: February 7, 2022
Bug Fixes
- Suppress incorrect warnings on ARM64 macOS. #8756
- Fix debugger regressions. #8760
- Remove
Offline Installationsection from README.md. #8769 - Fix performance issue with loading large PDBs. #8775
Version 1.8.2: January 31, 2022
New Features
- Add data breakpoints (memory read/write interrupts) with
gdbdebugging. #1410 - Add "All Exceptions" Breakpoint for cppdbg #1800
- Add multi-threaded code analysis (using
clang-tidy) based on the IntelliSense configuration. It defaults to using up to half the cores, but it can be changed via theC_Cpp.codeAnalysis.maxConcurrentThreadssetting. #2908 - Add support for Alpine Linux #4827
- Implement platform-specific VSIX's via the marketplace. #8152
Enhancements
- The maximum number of threads to use for Find All References can be configured with the
C_Cpp.references.maxConcurrentThreadssettings. #4036 - The IntelliSense processes launched to confirm references during Find All References can be cached via the
C_Cpp.references.maxCachedProcessessetting. #4038 - The maximum number of IntelliSense processes can be configured with the
C_Cpp.intelliSense.maxCachedProcessessetting, and the number of processes will automatically decrease when the free memory becomes < 256 MB and it can be configured to use less memory via themaxMemorysettings (memory usage from code analysis is not handled yet). #4811 - Switch from 32-bit to 64-bit binaries on 64-bit Windows. #7230
- Add a compiler arg to the generated gcc build task to display colored text. PR #8165
- Add
staticand other modifiers to IntelliSense hover results. #8173 - Add a configuration warning when the default compiler modifies an explicitly set
intelliSenseMode.
Bug Fixes
- Fix several IntelliSense bugs. #5704, #6759, #8412, #8434
- Fix newlines not being handled in comments with a Doxygen tag. #5741
- Fix Doxygen comments with
\0being truncated. #6084 - Fix
files.excludenot working for directories external to the active workspace folder. #6877 - Fix [MSYS2 GDB 10.2] gdb: ERROR: Unable to start debugging. Unexpected GDB output from command "-exec-run". Error creating process #7706
- Fix a bug with vcFormat inserting additional spaces between
}andelse. #7731 - Fix GCC system include processing on Windows. #8112, #8496
- Remove redundant cl.exe from the build and debug active file configuration list. #8168
- Fix string elements to render as code in the IntelliSense configuration UI. PR #8271
- Fix IntelliSense process crash on AMD Ryzen 3000 series processors without updated drivers. #8312
- Fix bug with
wmicnot being recognized during Windows attach debugging. #8328 - Fix Go to Type Definition on pointer types. #8337
- Fix a "Cannot read property" error during deactivation if the language service wasn't fully activated. #8354
- Fix an issue in which the language id for header files were not updated to match the source file of its TU. #8381
- Fix parsing of
bit_castwith gcc mode IntelliSense. #8434 - Fix the tag parser getting stuck on certain code. #8459
- Fix an invalid success message when a build task fails. #8467
- Fix compiler querying with certain Cygwin/MSYS2 compilers on Windows. #8496
- Fix a bug with conditional breakpoints. #8515
- Fix non-ASCII output with
cppbuildtasks. #8518 - Fix 3 settings not getting environment variables resolved after a settings change. #8531
- Don't block running a task if it doesn't use the active file. #8586
- Fix a command not found error message after clicking the database status icon when commands aren't available. #8599
- Fix /RTC compiler checks failures don't break into debugger #8646
- Fix workspace rescanning (tag parsing) not automatically happening after c/cpp associations are added to
files.associations. #8687 - Fix debugging when Windows binaries are linked with /PDBPageSize > 4k. #8690
- Switch usage of
-dDto-dMwhen compiler querying. #8692 - Fix breakpoints with msys2 gcc. #8696
- Fix no document symbols appearing in certain cases. #8726
- Fix an issue in which multiple (potentially different) diagnostics were delivered for headers shared by multiple TUs.
- Fix some translations.
Other
- Remove trailing whitespaces in source code.
- Alexander (@Gordon01) PR #8254
Version 1.7.1: October 19, 2021
Bug Fixes
- Fix an extension crash that occurred on activation while a workspace is open with no folders in it. #8280
- Fix an issue in which configuration defaults were not properly applied. #8298
Version 1.7.0: October 13, 2021
New Features
- Add a command to restart IntelliSense for a specific file. #3727
- Add support for macOS app bundles #6726
- Add support for Go To / Peek Type Definition. #7999
Enhancements
- Detect IntelliSenseMode target architecture for
cl.exebased on its path. #8044 - In generated build tasks, add a compiler arg to cause color to be displayed in gcc/clang output in terminal. PR #8165
- Add new configuration
mergeConfigurationsthat enables include paths, defines, and forced includes from c_cpp_properties.json to be merged with those provided by a configuration provider.- Thomas Willson (@willson556) PR #8174
Bug Fixes
- Fix an issue with signature help for overloaded constructors. #1664
- Add markdown to settings descriptions. #4544
- Fix an IntelliSense process crash. #5584, #8110
- Fix an issue with incorrect E0513 and E0167 IntelliSense errors. #6338
- Fix issue with IntelliSense for anonymous members. #6412
- Fix an issue with incorrect "no suitable user-defined conversion" errors. #6721
- Fix some issues with punctuation in setting descriptions. #6870
- Add descriptions for setting enum values. #7358
- Add support for
${execPath}and${pathSeparator}inc_cpp_properties.json. #7753 - Move the scope of document symbols from the name (on the left) to the details (on the right). #7785
- Fix an issue with config validation of Force Include values. #7822
- Fix an issue related to arg parsing in build tasks. #7891
- Add a check when cppbuild task is used when the active file is not a source file. #7892
- Fix a cpptools crash #8055
- Fix issue "LogPoint stopped working v1.6.0". #8065
- Fix issue "Debugger won't read/write from/to stdio". #8075
- Fix an issue with VC 14.0 headers not being found. #8078
- Fix an issue with CUDA support with
compile_commands.json. #8091 - Fix an issue with
/kernelarg tocl.exefor C files. #8158 - Fix an issue where inactive regions no longer dimmed after switching between open files. #8206
Version 1.6.0: August 24, 2021
New Features
- Added support for standard
.editorconfigentries when using vcFormat. #7920 - Debug Step Granularity for cppdbg PR MIEngine#1169
- Thank you for the contribution @Trass3r
- InstructionBreakpoints for cppdbg PR MIEgnine#1192
Enhancements
- Debugger now runs on .NET 5 #7858
- When using the
Defaultsetting forC_Cpp.formatting, vcFormat will now be selected if a.editorconfigfile is found with vcFormat entries and no.clang-formatfile was found with nearer proximity to the source file. #7929
Bug Fixes
- Fix incorrect sizeof for packed structs (gcc/clang) #5267
- Fix designated initializers not working at file scope. #6316
- Fix an IntelliSense crash on template code. #7349
- Rank existence of a custom configuration higher than filename similarity and path proximity, when choosing a TU source for a header #7396
- Fix an IntelliSense crash when the display language is set to Italian. #7685
- Enable the C++ status bar items to be selectively disabled. #7700
- Fix an issue causing incorrect color selection for semantic tokens. #7773
- Fix some cl.exe and clang installations not being detected. #7767 #7795 #7800
- Fix an issue with recursive includes not found. #7783
- Fix an issue with code folding of single-line blocks. #7809
- Fix a typo in a localized string. #7823
- Add open file parsing status when hovering over the database icon. PR #7831
- Fix an issue with IntelliSense flame icon getting stuck on. #7838
- Fix an issue with character position after include completion. #7856
- Fix wrong version of clang-format being used in multi-root workspaces. #7870
- Fix issue with setting of MS extensions when
-fms-extensionsis used. #7886 - Fix an issue with support detection on Android. #7906
- Fix a bug with handling of
"C_Cpp.vcFormat.newLine.beforeOpenBrace.block": "newLine". #7926 - Fix Disassembly view is blank on linux #7960
- Fix an issue with cppdbg debugging on Windows x64. #7971
- Fix an issue with VS
<execution>header causing IntelliSense process crash. #7972 - Fix insiders update install loop for remote scenarios. #8000
- Fix macOS unable to use external terminal to debug #8008
Version 1.5.1: July 9, 2021
Bug Fixes
- cppvsdbg Debugging becomes no-op between 1.4.1 and 1.5.0 #7808
Version 1.5.0: July 8, 2021
New Feature
Enhancements
- Add auto-detection of clang compilers on Windows (and different versions of cl.exe). #6718
- Stop adding .cu files to
files.associations(switch to using setTextDocumentLanguage). #7359 - Add "Symbol Options" for CppVsdbg to configure symbol settings PR #7680
- Update CppVsdbg to use newer CppEE and msdia.
Bug Fixes
- Fix switch header/source not checking
files.exclude. #4429 - Fix code folding causing
} else iflines to be hidden. #5521 - Add abort handling to recursive includes directory iteration. #6461
- Fix include completion with recursive includes in header files. #6842
- Add the get-task-allow entitlement to macOS binaries to enable call stacks to be obtained when SIP is enabled. #7412
- Fix Find All References reporting certain references in headers as inactive. #7609
- Fix IntelliSense process crash and tag parser failure with columns > 65535. #7621
- Fix incorrect localization translations.
- jogo- (@jogo-) PR #7625
- Fix
autocompleteAddParenthesesfor some template argument deduction cases. #7626 - Fix some incorrect IntelliSense errors. #6639, #7630
- Change references of "OS X" to "macOS".
- Tyler Davis (@TylerADavis) PR #7636
- Prevent the root path from being added to the
browse.path. #7648 - Fix a configuration squiggle when
${workspaceFolder}is used withcompilerPath. #7649 - Fix an issue causing editorConfig not to be used or cached. PR #7666
- Fix document symbols nesting with templates. #7673
- Fix include paths not being found when the paths start with /D or /I. #7701, #7757
- Fix Find All References on a global variable giving incorrect references to local variables. #7702
- Fix
vcFormatnot working near the end of the file with UTF-8 characters > 1 byte. #7704 - Fix a configuration squiggle for a recursively resolved
forcedInclude. PR #7722 - Fix
Build and Debug Active Filefor certain file extensions (.cu, .cp, etc.).- jogo- (@jogo-) PR #7726
- Fix
browse.pathbeing incorrect if an invalidcompileCommandsis set. #7737 - Fix an incorrect error message when
C_Cpp.errorSquigglesisEnabled. #7744 - Fix compiler querying sometimes not working with Cygwin. #7751
- Fix a duplicate IntelliSense update when a new C/C++ file is opened and after switching from a non-C/C++ file and back.
- Fix a potential IntelliSense process crash on shutdown.
Version 1.4.1: June 8, 2021
Bug Fixes
- Fix the configuration UI sometimes not populating initially with VS Code 1.56 or later. #7641
Version 1.4.0: May 27, 2021
New Features
- Add a C++ walkthrough to the "Getting Started" page. #7273
- Note: VS Code may only make this available to a subset of users while they continue working on the feature.
Enhancements
- Update to clang-format 12. #6434
- Add
privateorprotectedscope labels to class symbols. #7120 - Fix file:line path for $FILEPOS #7193
- Add
stopAtConnectandhardwareBreakpointslaunch options PR #7449stopAtConnectstops the debugger on connection to a remote target PR MIEngine#1109hardwareBreakpointscontrols usage and number of remote hardware breakpoints PR MIEngine#1128
- Add support for loading Concord extensions to the cppvsdbg debug adapter (see documentation for more information)
- Add support for exception conditions to cppvsdbg (see documentation for more information)
Bug Fixes
- Fix an incorrect IntelliSense error with object initialization. #3212
- Fix IntelliSense errors with designated initializers. #3491, #5500
- Fix IntelliSense configuration with cl.exe compiler args
/external:I,/Zc:preprocessor, and others. #4980, #6531, #7259 - Switch to showing no document symbols instead of random symbols for
files.exclude'd documents. #5142 - Fix macros getting undefined when duplicate
#includeare used. #5182, #7270 - Fix provider failed error logging. #5487
- Fix an IntelliSense crash with
#pragma GCC target. #6698, #7377 - Fix bitness detection for compilers targeting esp32. #7034
- Fix -idirafter directories being included too early. #7129
- Fix issue with the cpptools process lingering when no longer needed. #7262
- Filter out C++ std when querying the compiler as C (and vice versa). #7269
- Fix
files.excludeending with/folder/**not excluding/folder. #7331 - Fix VS Code UI freezing when hovering over very large literals. #7334, #7577
- Fix clang-format formatting bug when new lines are removed. #7360
- Change default cwd in launch.json to
${fileDirname}. #7362- Syed Ahmad (@HackintoshwithUbuntu) PR #7363
- Fix the compile commands entry not being used when -Werror is used. #7388
- Fix some potential race conditions during vsix installation. #7405
- Fix completion at the end of a file. #7472
- Fix completion of constructors. #7505
- Fix typos.
- Fix an IntelliSense crash with the arrow library. #7518
- Fix the configuration UI randomly being blank (more frequently when remote). #7523
- Fix IntelliSense mode switching from
linuxtomacosif__unix__is defined but__linux__is not. #7525 - Fix enabling of the
ms_extensionsflag for clang on Windows. #7529 - Fix
autocompleteAddParentheseswith no argument const/non-const overloads and deduction guides. #7540, #7541 - Fix the browse configuration not being preserved when the configuration provider is auto-detected. #7542
- Fix clang-format failure on macOS 10.13 or older. #7561
- Fix an IntelliSense crash with std::ranges::unique. #7576
- Prevent 'Configuration Warnings' output when a custom configuration provider omits optional fields.
- Prevent 'Configuration Warnings' caused by corrections to auto-detected default configuration values.
- Reduce IntelliSense memory and CPU usage in certain scenarios (e.g. large files).
- Fix a crash on Linux with a
/**includePath.
Version 1.3.1: April 19, 2021
Bug Fixes
- Fix extension not activating when
/.vscode/c_cpp_properties.jsonexists but no C/C++ file is open. #7344 - Fix logging for an invalid provider configuration.
- Yonggang Luo (@lygstate) PR #7350
- Fix extension activation with 32-bit Windows. #7368
Version 1.3.0: April 13, 2021
New Features
- Add language service support for CUDA.
- Add highlighting of matching conditional preprocessor statements. #2565
- Add commands for navigating to matching preprocessor directives in conditional groups. #4779
- Add native language service binaries for ARM64 Mac. #6595
Enhancements
- Add parentheses to function calls when
C_Cpp.autocompleteAddParenthesesistrue. #882 - Add @retval support to the simplified view of doc comments. #6816
- Add auto-closing of include completion brackets. #7054
- Add support for nodeAddonIncludes with Yarn PnP.
- Mestery (@Mesterry) PR #7123
- Add a
C_Cpp.files.excludesetting, which is identical tofiles.excludeexcept items aren't excluded from the Explorer view. PR #7285
Bug Fixes
- Display integer values for char and unsigned char on hover instead of character symbols. #1552
- Fix directory iteration to check files.exclude and symlinks and use less memory. #3123, #4206, #6864
- Fix an issue with stale IntelliSense due to moving or renaming header files. #3849
- Fix go to definition on large macros. #4306
- Fix a spurious asterisk being inserted on a new line if the previous line starts with an asterisk. #5733
- Fix bug with placement new on Windows with gcc mode. #6246
- Fix size_t and placement new squiggles with clang on Windows. #6573, #7106
- Fix an incorrect IntelliSense error squiggle when assigning to std::variant in clang mode. #6623
- Fix incorrect squiggle with range-v3 library. #6639
- Fix incorrect squiggle with auto parameters. #6714
- Fix (reimplement) nested document symbols. #6830, #7023, #7024
- Fix detection of bitness for compilers targeting esp32. #7034
- Fix include completion not working after creating a new header with a non-standard extension until a reload is done. #6987, #7061
- Fix endless CPU/memory usage in cpptools-srv when certain templated type aliases are used. #7085
- Fix "No symbols found" sometimes occurring when a document first opens. #7103
- Fix vcFormat formatting after typing brackets and a newline. #7125
- Fix a performance bug after formatting a document. #7159
- Fix random crashes of cpptools-srv during shutdown. #7161
- Fix a bug with relative "." paths in compile commands. #7221
- Fix configuration issues with Unreal Engine projects. #7222
- Fix bug when
${workspaceFolder}is used incompileCommands. #7241- Aleksa Pavlovic (@aleksa2808) PR #7242
- Fix field requirements for custom configurations. PR #7295
- Fix integrity hash checking of downloaded packages for the extension. PR #7300
- Fix a bug preventing successful validation and receipt of browse configurations from custom configuration providers. PR# 7131
- Fix a potential crash when editing at the end of a document.
- Fix "Configure Task" selection to show root folder names for multi-root workspace PR #7315
Version 1.2.2: February 25, 2021
Bug Fixes
- Fix IntelliSense errors with variable length arrays with C Clang mode. #6500
- Fix for random IntelliSense communication failures on Mac. #6809, #6958
- Fix an extension activation failure when a non-existent folder exists in the workspace. #6981
- Fix infinite loops during document symbol processing. #6988, #7012, #7022, #7025
- Fix a regression with handling of -isysroot/--sysroot compiler arguments. #6992
- Fix issue querying certain compilers, including armclang and arm-poky-linux-musleabi-gcc. #7021
- Fix invalid "console" property when generating a "cppdbg" task. #7048
Version 1.2.1: February 16, 2021
Bug Fixes
- Fix
Switch Header/Sourcein two cases when symlinks are in the path. #6855 - Fix clang-format FixNamespaceComments default. #6894
- Fix an issue with querying certain compilers for system defines and system includes #6898
- Fix an issue preventing detection of default target and default language standard of Cygwin and WSL compilers. #6902
- Fix an issue with detection of Apple Clang. #6916
- Fix endless memory usage (or a crash) with certain code. #6940
- Fix "format after newline" with vcFormat. #6942
- Fix compiler querying with -Xclang and -include-pch arguments. #6944
- Switch to the signed LLDB-MI on Mac 10.14 or newer with the online vsix. #6945
Version 1.2.0: February 2, 2021
New Features
- Add support for cross-compilation configurations for IntelliSense. For example,
intelliSenseModevalue "linux-gcc-x64" could be used on a Mac host machine. #1083
Enhancements
- Show configuration squiggles when configurations with the same name exist. #3412
- Add
C_Cpp.addNodeAddonIncludePathssetting to add include paths fromnanandnode-addon-apiwhen they're dependencies. #4854- Bruce MacNaughton (@bmacnaughton) PR #67331
- Add command
Generate EditorConfig contents from VC Format settings. #6018 - Update to clang-format 11.1. #6326
- Add clang-format built for Windows ARM64. #6494
- Add support for the
/awaitflag with msvc IntelliSense. #6596 - Increase document/workspace symbol limit from 1000 to 10000. #6766
- Add new "console" launch config for cppvsdbg. PR #6794
Bug Fixes
- Fix handling of
--sysrootand-isysrootwithcompileCommands. #1575 - Fix IntelliSense not updating if a non-opened header is changed. #1780
- Fix IntelliSense involving overflow for unsigned int values. #2202
- Fix IntelliSense not switching the language mode after changing C versus C++
files.associations. #2557 - Fix Switch Header/Source not switching to an existing file in another column if it's not visible. #2667, #6749
- Fix autocomplete not working with
forloop variables with C code. #2946 - Fix
#includecompletion not sorting _ last. #3465 - Fix completion not working for templates in gcc/clang mode. #3501
- Fix crash when certain JavaScript files are parsed as C++. #3858
- Fix IntelliSense squiggle about not being able to assign to an object of its own type. #3883
- Fix hover and Find All References for template function overloads. #4044, #4249
- Fix the Outline view for nested namespaces. #4456
- Fix some IntelliSense parsing errors. #4595, #6362, #6685
- Fix Outline view with
"**/.*"infiles.exclude. #4602 - Fix build tasks errors in single file mode. #4638, #6764
- Fix the Outline view for nested structs/classes. #4781
- Fix
files.excludenot applying to watched files handlers. #5141 - Fix code folding incorrectly matching an inactive
}. #5429 - Fix IntelliSense Clang version for Apple Clang. #5500
- Fix hover doc comments not working if there's a selection. #5635, #6583
- Fix
#includecompletion to include results for non-standard header file extensions. #5698 - Fix clang-format failing due to missing libtinfo5 on Linux ARM/ARM64. #5958
- Automatically configure to use a custom configuration provider if available and no other configuration exists. #6150
- Fix not being able to attach to cpptools and cpptools-srv on Mac (to get crash call stacks). #6151, #6736
- Fix IntelliSense crashing with cl.exe with C++20 and span. #6251
- Stop querying unsupported compilers. #6314
- Fix an entry not found error for files in
compile_commands.jsonthat didn't initially exist. #6311 - Fix IntelliSense errors with C++20 std::ranges in gcc/clang modes. #6342
- Add a workaround for a missing compiler path for the
compile_commands.jsongenerated by Unreal Engine. #6358 - Fix IntelliSense crash with coroutines. #6363
- Add localized strings for
cppbuildtasks. #6436 - Fix IntelliSense squiggle with C++20 non-type templates. #6462
- Fix
compilerArgsprocessing with-MFand other multi-arg arguments. #6478 - Fix bug causing
Unable to read process.env.HOME. #6468 - Fix gcc problem matcher when the column is missing.
- @guntern PR #6490
- Disable Insiders prompt for Codespaces. #6491
- Fix
compile_commands.jsonnot working correctly for*.Cfiles. #6497 - Show an error message when gdb can't be found when generating a
launch.json(instead of using an invalidmiDebuggerPath). #6511 - Fix IntelliSense not supporting
__float128(andQliterals) on x64 Linux. #6574 - Fix IntelliSense crash with a parenthesized type followed by an initializer list. #6554, #6624
- Fix IntelliSense updating after pasting multi-line code. #6565
- Use "method" instead of "member" for semantic tokens. #6569
- Fix
__builtin_coro_*methods not recognized by IntelliSense in gcc mode with-fcoroutines. #6575 - Fix the
elsesnippet interfering with entering one lineelsestatements. #6582 - Stop showing an "unknown error" message after canceling the creation of a
launch.json. #6608 - Fix potential extension activation delay. #6630
- Fix the executed command not appearing with cppbuild tasks. #6647
- Fix IntelliSense crash on Mac due to IPCH file corruption. #6673
- Fix
_Debugnot being defined when/MDdor/MTdare used. #6690 - Fix infinite IntelliSense processing when C++20, gcc mode, and
-fcoroutinesand used. #6709 - Allow the extension to run on M1 Macs. #6713
- Xiangyi Meng (@xymeng16) PR #6601
- Fix IntelliSense errors when "module" is used as a variable name with C++20. #6719
- Fix
.to->completion with multiple cursors. #6720 - Fix bug with configured cl.exe path not being used to choose appropriate system include paths, or cl.exe not being used at all if it's not also installed via the VS Installer. #6746
- Fix bugs with parsing of quotes and escape sequences in compiler args. #6761
- Fix the configuration not showing in the status bar when
c_cpp_properties.jsonis active. #6765 - Fix compiler querying with compilers that do not output
__STD_VERSION__by default (gcc <= 4.8.x). #6792 - Fix document symbols when nested symbols have the same name as a parent. #6830
- Fix automatic adding of header files to
files.associationsafterGo to Definitionon a#include. #6845 - Fix
InsidersupdateChannelfor VS Code - Exploration. #6875 - Fix "D" command line warnings not appearing with cl.exe cppbuild build tasks.
- Fix cl.exe cppbuild tasks when
/nologois used (and make /nologo a default arg). - Fix a cpptools crash and multiple deadlocks.
Version 1.1.3: December 3, 2020
Bug Fixes
- Disable the "join Insiders" prompt for Linux CodeSpaces. #6491
- Fix "shell" tasks giving error "Cannot read property
includesof undefined". #6538 - Fix various task variables not getting resolved with
cppbuildtasks. #6538 - Fix warnings not appearing with
cppbuildtasks. #6556 - Fix endless CPU/memory usage if the cpptools process crashes. #6603
- Fix the default
cwdforcppbuildtasks. #6618
Version 1.1.2: November 17, 2020
Bug Fixes
- Fix resolution of
${fileDirname}withcppbuildtasks. #6386
Version 1.1.1: November 9, 2020
Bug Fixes
- Fix cpptools binaries sometimes not getting installed on Windows. #6453
Version 1.1.0: November 5, 2020
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 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 querying, and the "C/C++ Configuration Warnings" output channel. #5259
- Add compile commands info to Log Diagnostics. #5761
- Add
intelliSenseUpdateDelaysetting. #6142- YuTengjing (@tjx666) PR #6344
- 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 - [cppdbg] Stepping out of a function will display '$ReturnValue'.
- @Trass3r PR MIEngine#1036
- [cppdbg] Support composite expressions in natvis ArrayItems
- @Trass3r PR MIEngine#1044
- 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
- Change macOS Framework searching to only parse the "Current" framework folder when the "Headers" folder is not found. #2046
- Show the compiler path in the
Build and Debug Active Filedropdown. #4278 - Fix incorrect signature help active argument with multiple template parameters. #4786
- Fix bug with directories not getting created for browse.databaseFilename. #5181
- 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
- Change the Windows SDK detection to require the shared, ucrt, and um folders. #5817
- 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
Build and Debug Active Filerace condition with EngineLogs. #6304 - Fix changes to some
c_cpp_properties.jsonproperties not taking effect (until a reload) ifcompileCommandsis set. #6332 - Fix issue with compiler querying not handling various clang command line options correctly. #6356, #6359
- Fix multi-root workspace tag parsing when
compileCommandsis set. #6383 - Fix mingw32 compilers not being detected. #6394
- Various bug fixes for vcFormat. PR #6408
- Fix issue causing zh-cn and zh-tw language files not to be used. PR #6418
- 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.
- Fix issue causing some localized messages to be displayed incorrectly.
- Fixed issue with shipping an older version of vsdbg in offline packages.
Other Contributions
- Refactoring provider classes.
- Abhishek Pal (@devabhishekpal) PR #5998
Version 1.0.1: September 21, 2020
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
Version 1.0.0: September 14, 2020
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.
- @dan-shaw PR #5954
- 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 multi-root 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 querying 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
- Using
clang-formaton ARM may require installing libtinfo5. #5958
Version 0.29.0: July 15, 2020
New Features
- Add Doxygen comment support (to tooltip display of hover, completion, and signature help). #658
- The way comments are formatted is controlled by the
C_Cpp.simplifyStructuredCommentssetting.
- The way comments are formatted is controlled by the
- Auto-convert
.to->when the type is a pointer. #862 - Switch to using the VS Code Semantic Tokens API for semantic colorization (works with remoting). PR #5401, #3932, #3933, #3942
- Add support for LogMessage Breakpoints for debug type
cppdbg. PR MIEngine#1013
Enhancements
- Automatically add
"${default}"to the defaultincludePathinc_cpp_properties.jsonifC_Cpp.default.includePathis set. #3733 - Add configuration provider logging to
C/C++: Log Diagnostics. #4826 - Add support for the Debug Welcome Panel. #4837
- Update to clang-format 10. #5194
- Add system to store and query properties from the active C/C++ configuration.
- bugengine (@bugengine) PR #5453
- Add
quoteArgstolaunch.jsonschema. PR #5639 - Add logs for a resolved
launch.jsonif "engineLogging" is enabled. PR #5644 - Add threadExit and processExit logging flags for 'cppvsdbg'. PR #5652
Bug Fixes
- Fix IntelliSense when using "import_" in a variable name. #5272
- Add localization support for autocomplete and hover text. #5370
- Some
updateChannelfixes. PR #5465 - Fix wrong language standard used with compile commands. #5498
- Fix issue with defines and includes not being handled correctly in
compilerPathorcompilerArgs. #5512 - Add gcc/gcc-10 compiler detection. #5540
- Fix
--targetcompiler arg getting overridden. #5557- Matt Schulte (@schultetwin1)
- Fix Find All References and Rename when multiple references are on the same line. #5568
- Fix IntelliSense process crashes. #5584, #5629
- Fix an add/remove workspace folder crash. #5591
- Fix default build tasks failing on Windows if the compiler isn't on the PATH. #5604
- Fix updating
files.associationsand .C files being associated with C instead of C++. #5618 - Fix IntelliSense malfunction when RxCpp is used. #5619
- Fix an incorrect IntelliSense error. #5627
- Ignore "screen size is bogus" error when debugging. PR #5669
- nukoyluoglu (@nukoyluoglu)
- Fix
compile_commands.jsonsometimes not updating. #5687 - Add msys2 clang compilers to the compiler search list (previously only gcc was handled). #5697
- Fix extension getting stuck when an "@" response file that doesn't end with ".rsp" is used in
compilerArgs. #5731 - Fix forced includes not handled properly when parsed as compiler args. #5738
- Fix potential thread deadlock in cpptools.
- Fix copying a long value from debug watch results in pasting partial value #5470
- Fix Modifying conditional breakpoints #2297
- Fix find .exe in Windows path #3076
Version 0.28.3: June 9, 2020
Enhancements
- Update version of vscode-cpptools API to 4.0.1 PR #5624
Version 0.28.2: June 1, 2020
Regression Bug Fixes
- Fix string arrays in
envnot being joined properly. #5509- Krishna Ersson (@kersson) PR #5510
- Fix
shellbeing used as the C/C++ build task source instead ofC/C++. vscode-docs#3724
Other Bug Fixes
- Fix
problemMatchernot being added to C/C++ build tasks. #3295 - Fix
/usr/binbeing used as the defaultcwd(instead of${workspaceFolder}) for C/C++ build tasks. #4761 - Fix processing of quoted arguments with spaces in
compilerPath. PR #5513 - Fix inconsistent task
labelandpreLaunchTaskbeing used for C/C++ build tasks. #5561
Version 0.28.1: May 20, 2020
Bug Fixes
- Fix errors not appearing after switching between a WSL and non-WSL config on Windows. #5474
- Fix cpptools crash when gcc is not in $PATH in a Docker container. #5484
- Fix top IntelliSense crash regression. #5486
- Fix squiggles appearing too soon (while typing). #5531
Version 0.28.0: May 12, 2020
New Features
- Add C/C++ language-aware code folding. #407
- Add GNU (and C17) language standard options. #2782
- Add ARM and ARM64 IntelliSense modes. #4271, PR #5250
Enhancements
- Change the
gccproblem matcher to useautoDetectforfileLocation. #1915 - Add support for IntelliSense-based
Go to Definitionon#includestatements. #2564 - Support relative paths with
forcedInclude. #2780 - Make the
Visual Studioformatting style respect the C++ standard (e.g.> >for C++03 or earlier). #3578 - Add support for more C++20 features, such as concepts (not 100% complete yet). #4195
- Process the "std" and bitness (-m64/-m32) compiler args. #4726
- Switch from our custom Rename UI to VS Code's Refactor Preview. #4990
Bug Fixes
- Fix
browse.pathnot getting set correctly whencompileCommandsis used. #1163 - Fix an issue with squiggle updates not occurring when a dependent file is created, deleted, or renamed. #3670
- Fix temporary VSIX files not getting deleted after installation #3923
- Process "$CPATH" on non-Windows OS's. #3940
- Fix missing include message when a configuration provider is used. #3971
- Change machine-dependent settings to use remote settings instead of user settings. #4121
- Fix compiler querying for compilers that output non-English strings. #4542
- Fix compiler querying when the '-include' argument is used. #4655
- Fix the "Unable to load schema" error for
c_cpp_properties.json. #4841 - Change "Visual Studio"
clang_format_fallback_stylesetting to use NamespaceIndentation All. #5124 - Fix "C++98" and "C++0x" modes. #5157, #5225
- Improve the error message for multi-root projects using
compile_commands.json. #5160 - Fix some cpptools process crashes. #5280
- Avoid
<…>truncation on hover. #5291 - Fix incorrect translations. PR #5300
- Fix cpptools auto-restarting after a crash. #5303
- Fix incorrect
c_cpp_properties.jsonsquiggles. #5314, #5322 - Fix error
The task provider for "C/C++" tasks unexpectedly provided a task of type "shell".#5388 - Fix
compilerPathset to""not working. #5392 - Fix IntelliSense sometimes not working on a header file (or giving "Cannot Confirm Reference") if an existing TU is chosen that doesn't actually contain the header file.
- Fix random crashes after a settings change.
- Fix redundant squiggle updates.
Version 0.27.1: April 28, 2020
Bug Fix
- Disable Insiders
updateChannelfor 32-bit Linux and VS Code older than 1.43.0.
Version 0.27.0: March 30, 2020
Enhancements
- Improved multi-root implementation with a single language server process and database for the entire workspace (shared between workspace folders). Fixes most multi-root bugs.
- Update to clang-format 9.0.1 (and without shared library dependencies). #2887, #3174
- Add new setting
C_Cpp.debugger.useBacktickCommandSubstitutionto fix debugging when CShell is the remote default shell. #4015- @Helloimbob PR #5053
- Rename language server processes to
cpptoolsandcpptools-srv(IntelliSense process). #4364 - Add support for
-iframeworkincompile_commands.json. #4819 - Add
cpptools.setActiveConfigNamecommand. #4870- @aleksey-sergey PR #4893
- Default to the bundled
clang-formatif its version is newer. #4963 - Add URI's to the debug logging for messages (e.g.
fileChanged). #5062 - Use
lldb-mifor macOS Mojave or newer. - Support '`' in addition to '-exec' for sending gdb commands PR MIEngine#967
Bug Fixes
- Fix issue in which the user is not again prompted to use a custom configuration provider if settings files have been deleted. #2346
- Fix "Unrecognized format of field "msg" in result" on macOS. #2492
- Fix IntelliSense using too much CPU when switching branches. #2806
- Fix for timeout on slow terminals while debugging. #2889
- @Epikem PR MIEngine#965
- Fix non-localized text. #4481, #4879
- Fix issues with paths containing certain Unicode sequences on Mac. #4712
- Fix IntelliSense parsing bugs and crashes. #4717, #4798
- Fix configuration UI disabling
compilerPathif no default compiler is found. #4727 - Fix issue with providing custom configurations for files specified using URIs schemes we do not recognize. #4889
- Fix Outline view not updating fast enough after switching branches. #4894
- Fix failure to detect CL.exe if VS Installer files are stored on a drive other than the system drive. #4929
- Fix extension randomly getting stuck while communicating with the IntelliSense process on Mac. #4989
- Fix completion results appearing after numeric literals. #5019
- Fix issue with cancellation of a
Renameoperation causing subsequentFind All ReferencesandRenameoperations to fail. #5022 - Fix some settings not being editable in the UI. PR #5126
- Fix
cpp_properties.jsonerror squiggles not appearing. #5131 - Fix
search.excludenot applying if there are > 1 symbols matching in the excluded file. #5152 - Fix tag parsing not working on Windows 7 without SP1. #5155
- Fix
updateChannelbeing settable per-workspace. PR #5185 - Fix opened files external to the workspace folder being removed from the database during loading. #5190
- Fix invalid
c_cpp_properties.jsonand configuration UI warningCompiler path with spaces and arguments is missing double quotes. #5215 - Fix environment variables used for the RunInTerminal Request. MIEngine#979
- Fix a race condition that could cause the Outline,
Find All References, etc. to stop working.
Version 0.26.3: January 22, 2020
Bug Fixes
- IntelliSense bug fixes. #2774
- Improve memory usage in projects with a large number of files. #3326
- Fix a crash when failing to launch external executables on Linux and Mac. #3607
- Update output of
C/C++: Log Diagnosticsto include the correct set of defines when custom configurations or compile commands are used. #3631 #4270 - Fix Insiders channel not working on remote targets. #3874
- Fix
compile_commands.jsonprompt appearing when a configuration provider is used. #3972 - Improve IntelliSense performance with range-v3. #4414
- Fix template members not being nested under the template type in the Outline view. #4466
- Fix an issue in which failure to invoke a compiler could result in a loss of functionality on Linux and Mac. #4627
- Fix custom configurations sometimes not being applied to headers. #4649
- Fix headers opening into header-only TU's instead of TU's for candidate source files. #4696
- Fix the missing description of
C_Cpp.clang_format_style.- @Enna1 PR #4734
- Fix Insiders channel not auto-downgrading after an Insiders vsix is unpublished. #4760
- Fix compiler querying with more than 40
compilerArgs. #4791 - Fix an issue in which files may be unnecessarily removed from the tag parser database on startup, if using a custom configuration provider, resulting in a large number of files being reparsed. #4802
- Fix an issue in which
Build and Debug Active Filewould fail to detect a compiler, without a compiler present incompilerPath. #4834 - Add a version check for
-break-insertso later versions oflldb-mican be used as amidebugger. MIEngine#946 - Fix clang-cl detection for system includes and defines.
- Fix a bug that could cause the browse database threads to get stuck.
Enhancements
- If clang-format is found in the environment path, that version will take precedence over the copy of clang-format bundled with the extension. #3569
- When tag parsing is complete, and includer/includee relationships become available, header-only TU's will be replaced with TU's for candidate source files, if available.
Version 0.26.2: December 2, 2019
Enhancements
- Reworked how a source file is selected for TU creation when opening a header file. #2856
- Updated the default value of the
C_Cpp.intelliSenseCachePathsetting to a path underXDG_CACHE_HOMEon Linux, or~/Library/Cacheon macOS. #3979 - Reset memory usage of the IntelliSense process if it grows beyond a threshold. #4119
- Add validation that the new symbol name provided to 'Rename Symbol' is a valid identifier. Add the setting
C_Cpp.renameRequiresIdentifierto allow that verification to be disabled. #4409 - Enable setting of breakpoints in CUDA sources.
- Paul Taylor (@trxcllnt) PR #4585
- Deferred TU creation until the file is visible in the editor. This avoids the overhead of TU creation when the file is opened by VS Code internally for IntelliSense operations. #4458
Bug Fixes
- Fix child process creation when the Windows code page is set to a language with non-ASCII characters and there are non-ASCII characters in the extension's install path. #1560
- Fix path canonicalization of UNC paths to avoid duplicate files opening with different casing. #2528, #3980
- Fix header opening without IntelliSense due to creation of a TU from a source file that includes the header in an inactive region. #4320
- Fix an infinite loop in the extension process that can occur when using a scope named 'interface'. #4470
- Fix an issue with the Rename UI that could cause the rename to not be applied. #4504
- Show an error message when a Rename fails due to the symbol not being found. #4510
- Fix
launch.jsoncreation due to localized strings containing quotes. #4526 - Fix configuration error squiggles not being applied unless the setting was set in both
c_cpp_properties.jsonandsettings.json. PR #4538 - Fix document symbol for Outline view and breadcrumbs on Windows 7. #4536
- Add support for
ms-vscode.cmake-toolsconfigurationProviderid. #4586 - Fix cancellation of Find All References sometimes resulting in an exception. #2710
- Fix the sort order of files in the Find All References and Rename UI's. #4615
- Fix localized Chinese strings not displaying on systems with case-sensitive file systems. #4619
- Fix files with an extention of
.Hnot correctly associating with C++. #4632 - Fix -m64 or -m32 not being passed to gcc, causing the reported system includes and system defines to not match the requested
intelliSenseMode. #4635
Version 0.26.1: October 28, 2019
Bug Fixes
- Fix
launch.jsoncreation when using non-English display languages. #4464 - Fix CHS translation. #4422
- Fix debugging not working when Windows 10 Beta Unicode (UTF-8) support is enabled. #1527
Version 0.26.0: October 15, 2019
New Features
- Add localization support (translated text) via
Configure Display Language. #7 - Add
Rename Symbolwith a pending rename UI. #296, PR #4277 - Add support for navigation breadcrumbs and nested symbols in the Outline view (and removed the Navigation status bar item). #2230
- Add support for C++/CX (
/ZW,/ZW:nostdlib,/FI,/FU, and/AIcompiler arguments). #3039 - Add a tree view UI for the other C++ references results. #4079
Enhancements
- App support for .rsp files in
compile_commands.json. #1718 - Add support for
SymbolLoadInfotolaunch.json. #3324 - Enable
${workspaceFolder}incompilerPathandcompilerArgs. #3440 - Add support for parsing more file types by default. #3567
- Move status icons to the left to minimize shifting and change the red flame to use the foreground color. #4198
Bug Fixes
- Fix querying of non-ENU compilers. #2874
- Fix IntelliSense error with
constexpr const char* s[] = { "" }. #2939 - Add support for C++20 designated initializers for cl and gcc. #3491
- Fix
Find All Referencesnot confirming references of method overrides in an inheritance hierarchy. #4078 - Fix missing references on the last line. #4150
- Fix
Go to Definitionon implicit default constructors. #4162 - Fix configuration prompts from appearing if a configuration provider is set. #4168
- Fix vcpkg code action for missing includes with more than one forward slash. PR #4172
- Fix parsing of
__has_include(and other system macros) with gcc. #4193 - Fix tag parse database not getting updated after changes occur to unopened files in the workspace. #4211
- Fix
files.excludeending with/being treated like a per-file exclude (which aren't enabled by default). #4262 - Fix
Find All Referencesincorrect results for string and comment references. #4279 - Fix bug with forced includes in
compile_commands.json. #4293 - Fix
Find All ReferencesgivingNot a Referencefor constructors of templated classes. #4345 - Fix squiggles appearing after a multi-edit replace or rename. #4351
- Fix
gcc-x86andclang-x86modes. #4353 - Fix crashes if the database can't be created. #4359
- Fix bugs with comment references. #4371, #4372
Version 0.25.1: August 28, 2019
Bug Fixes
- Fix
Switch Header/Sourcefor.Hand.Ctargets. #3048 - Fix
C_Cpp.updateChannelnot respectingextensions.autoUpdate. #3632 - Fix duplicate content appearing after formatting of a new file (2nd fix). #4091
- Fix links in
Log Diagnosticsoutput. #4122 - Fix
NullReferenceExceptionwhen debugging if"description"is missing. #4125 - Fix
files.excludeprocessing when using\\. #4127 - Fix bug when attaching to an elevated process on Linux. #4133
- Fix IntelliSense-based
Go to Definitionfailing for a nested class in a template class. #4135 - Fix incorrect configuration squiggles with
compilerPathwhen variables are used. #4141- @mistersandman PR #4142
- Fix
executeReferenceProviderwhen code is selected. #4147 - Fix code action for resolving missing includes via the
vcpkgdependency manager. PR #4156
Version 0.25.0: August 21, 2019
New Features
- Add
Find All References. #15 - Add
-x86options forintelliSenseMode. #2275, #2312 - Add
c++20option tocppStandard. #3448 - Add a code action for resolving missing includes via the
vcpkgdependency manager. PR #3791
Enhancements
- Added support for compile commands:
- Switch to using VS Code's
Go to Declaration. #2959 - Added
compilerArgsproperty setting. PR #3950 - Added support for V3 API. PR #3987
- Add
not supportedmessages for ARM and Alpine containers. PR #4027 - Add validation for paths from
envvariables. #3912
Bug Fixes
- Fix wrong type of
thispointer. #2303 - Fix previous cache path not deleted when new cache path is specified. Note that the VS Code bug Microsoft/vscode#59391 still occurs on the settings UI, but this fix should delete any incomplete path names as the extension receives changes from the cache path setting. #3644
- Fix broken shell script when launch/attaching as root. #3711
- Christian A. Jacobsen (@ChristianJacobsen) PR MIEngine#906
- Fix ".H" files not appearing in include completion results on Linux/macOS. #3744
- Fix
compile_commands.jsonfile changes not updated. #3864 - Fix
Failed to parseerror message in the open file scenario. #3888 - Fix loading the wrong symbols when creating or copying a file. #3897
- Fix IntelliSense process crash in clang mode. #3898
- Fix IntelliSense-based
Go to Definitionfailing withusing namespace. #3902, #4018 - Fix completion not showing results for smart pointers. #3926, #3930
- Fix
clang_format_pathcannot be set in workspace settings. #3937 - Fix typos and grammar in documentation.
- @pi1024e PR #4014
- Fix NullReferenceException when unable to launch and an unresolved parameter exists in the string. This was causing a useless error message. #4024, #4090
- Fix debugger can't debug file whose folder path includes a parenthesis. #4030
- Fix duplicate content appearing after formatting of a new file. #4091
- Fix
files.excludebug on Windows. #4095 - Fix NullReferenceException when
cwdis null. MIEngine#911 - Fix wrong IntelliSense for C++ types after editing within a function and after a lambda.
Version 0.24.1: July 22, 2019
Bug Fixes
- Fix an issue with the Outline not being populated when a file is opened. #3877
- Update scopes used by semantic colorization. PR# 3896
Version 0.24.0: July 3, 2019
New Features
- Semantic colorization Documentation #230
- Add
Rescan Workspacecommand. microsoft/vscode-cpptools-api#11
Enhancements
- Configuration UI editor improvements:
- Enable
envFileforcppdbg. PR #3723 - Change the default path value of
C_Cpp.intelliSenseCachePath. #3347 #3664 - Change
C_Cpp.clang_format_pathtomachinescope. #3774 - Add validation to the advanced configuration UI settings. PR #3838
- Add
Current ConfigurationtoC/C++: Log Diagnostics. PR #3866
Bug Fixes
- Fix for gdb
follow-fork-modechildnot working. #2738 - Fix IntelliSense process crash on hover with certain arrays. #3081
- Fix IntelliSense-based
Go to Definitionfor goto labels. #3111 - Fix IntelliSense behaving incorrectly when files are opened with different casing on Windows. #3229
- Fix user defined literals crashing IntelliSense in clang/gcc mode. #3481
- Improve
sourceFileMapto be more dynamic. #3504 - Fix IntelliSense-based hover document comments being shown for invalid declarations not used by the current translation unit. #3596
- Fix
Go to Definitionwhen isvoidmissing in the parameter list of a function definition a .c file. #3609 - Fix configuration validation of compiler path and IntelliSense mode compatibility for
clang-cl.execompiler. #3637 - Fix resolving
${workspaceFolderBasename}and add${workspaceStorage}. #3642 - Fix IntelliSense-based
Go to Definitionperformance issue due to extra database iteration. #3655 - Fix
SourceRequestcausing debugging to stop withNotImplementedException. #3662 - Fix typo in
intelliSenseModedescription.- Karsten Thoms (@kthoms) PR #3682
- Fix invalid warning with typedef enums in .c files. #3685
- Fix incorrect
keywordcompletion occurring for pragma#keyword. #3690 - Fix problem matcher to show fatal errors from GCC #3712
- Fix multi-root folders with the same name sharing the same browse database. PR #3715
- Fix
remoteProcessPickeron Windows. #3758 - Fix crash when tag parsing Objective-C code. #3776
- Fix duplicate slashes getting added to
c_cpp_properties.json. PR #3778 - Fix
envFilevariable substitution. #3836 - Fix missing headers popup. PR #3840
- Fix multiple anonymous unions not showing correctly in Locals while debugging. MIEngine#820
- Fix pause not working when using
DebugServer/MIDebuggerServerAddresson Linux and macOS. MIEngine#844 - Improvements to CPU and memory usage when editing.
Version 0.23.1: May 13, 2019
Bug Fixes
- Fix
launch.jsoncreation whenintelliSenseEngineisDisabled. #3583 - Fix C/C++ commands not working if the language service isn't activated. #3615
- Fix missing extension
"Details"page. #3621 - Fix some random crashes related to IntelliSense inactive region processing.
Version 0.23.0: May 6, 2019
New Features
- Add a configuration UI editor to edit IntelliSense settings defined in the underlying
c_cpp_properties.jsonfile. PR #3479, PR #3487, PR #3519, #3524, PR #3563, #3526- Add a new command
C/C++: Edit configurations (UI)to open the UI editor. - Replace the
C/C++: Edit configurations...command withC/C++: Edit configurations (JSON)to openc_cpp_properties.json. - The default whether to open the UI editor or JSON file is based on the
workbench.settings.editorsetting.
- Add a new command
- Add command
C/C++: Log Diagnosticsto log language service diagnostics. PR #3489 - Add support for
.envfiles forcppvsdbg. #3490
Other Changes
- Enable flag
/permissive-as an argument tocompilerPathwithcl.exe. #1589, #3446 - Configuration squiggles for
c_cpp_properties.jsonnow validates if the setting values ofcompilerPathandintelliSenseModematch on Windows. #2983 - Enable
-fms-extensionsto be used as an argument tocompilerPathon Linux/Mac. #3063 - Change the default value of
C_Cpp.intelliSenseEngineFallbacksetting toDisabled. #3165 - Add squiggle when
compilerPathuses spaces and arguments without". #3357 - Change the
Disabledvalue forC_Cpp.errorSquigglesto stop showing missing header squiggles. #3361 - Add
enableConfigurationSquigglessetting to allow squiggles to be disabled forc_cpp_properties.json. #3403 - Switch to using the
installExtensioncommand for offline/insider vsix installing (to reduce install failures). #3408 - Add a better example to the description of
C_Cpp.clang_format_styleandC_Cpp.clang_format_fallback_style. #3419 - Add a new (default) value of
EnabledIfIncludesResolvetoC_Cpp.errorSquiggles, which only shows error squiggles if include headers are successfully resolved. PR #3421 - Disable debug heap by default with cppvsdbg. #3484
- Reported by Djoulihen (@Djoulihen)
- Enable configuration squiggles for paths delimited by semicolons. PR #3517
- Don't show release notes if the extension has never been installed before. #3533
- Remove IntelliSense fallback code actions.
Bug Fixes
- Fix browsing for functions with BOOST_FOREACH. #953
- Fix code action sometimes not appearing over a squiggled identifier. #1436
- Work around issue with VS Code not treating
.Cfiles as C++ files Microsoft/vscode#59369 --.Cfiles become associated by name infiles.associations. #2558 - Fix various IntelliSense parsing bugs. #2824, #3110, #3168
- Preserve newlines in documentation comments. #2937
- Fix documentation comments above multi-line templates (and some other issues). #3162
- Fix "Extension causes high cpu load" due to module loading. #3213
- Fix auto-removal of compiler-provided paths in
includePathwhen they end with a directory separator on Windows. #3245 - Fix duplicate compiler build tasks appearing when
compilerPathhas arguments. PR #3360 - Fix environment variables not resolving with
C_Cpp.intelliSenseCachePath. #3367 - Fix the formatting of snippets text. #3376
- Fix the default
AccessModifierOffsetused when formatting. #3376 - Fix null reference during initialization when using custom configuration providers. PR #3377
- Fix symbol parsing when
__MINGW_ATTRIB_*is used. #3390 - Fix
compile_commands.jsonconfiguration prompt being disabled per user instead of per folder. PR #3399 - Fix
.cmdand.batfiles not working forcompilerPathon Windows. #3428 - Fix
compilerPathwith arguments that are surrounded by quotes. #3428 - Fix documentation comments interpreting special characters as markdown. #3441
- Fix hover using the configuration of the active document instead of the hovered document. #3452
- Fix
c_cpp_properties.jsonsquiggles when the configuration name has regex characters. PR #3478 - Use the
editor.tabSizesetting instead of2when creating build tasks. PR #3486 - Fix some potential crashes on hover. #3509
- Fix for
NullReferenceExceptionoccurring when"args"is not specified inlaunch.json. #3532 - Fix
Go to Definitiongiving no results when IntelliSense doesn't find the symbol. #3549 - Fix configuration squiggles with trailing backslashes. PR #3573
- Fix
includePathcode actions, configuration prompts, and theC/C++: Change configuration provider...command. PR #3576 - Fix randomly occurring crash (that could occur when opening files while IntelliSense squiggles are pending).
- Fix crash on hover (that could occur when document comments have blank lines).
- Fix icon of parameters in completion results.
Version 0.22.1: March 21, 2019
- Fix
tasks.jsonwith single-line comments being overwritten whenBuild and Debug Active Fileis used. #3327 - Fix an invalid
compilerPathproperty getting added totasks.jsonafter doingConfigure Taskwith a C/C++ compiler. - Add IntelliSense caching for macOS 10.13 or later (0.22.0 only supported Windows and Linux).
Version 0.22.0: March 19, 2019
Major Changes
- Add warning squiggles for invalid properties and paths in
c_cpp_properties.json. #2799, PR #3283 - Add C/C++ compiler build tasks for compiling the active source file, with support for
F5debugging and theBuild and Debug Active Filecontext menu command. PR #3118, PR #3244 - Add AutoPCH support to reduce IntelliSense parsing time, with
C_Cpp.intelliSenseCachePathandC_Cpp.intelliSenseCacheSizesettings. It isn't enabled for Mac yet. PR #3184
Minor Changes
- Fix IntelliSense not working on Windows when the username has a space in it and file
C:\Users\<firstname>exists. #1377, #2114, #2176, #3052, #3139 - Enable
${command:cpptools.activeConfigName}in tasks. #1524 - Fix bugs with squiggles and IntelliSense updating after edits. #1779, #3124, #3260
- Fix formatting (and other non-IntelliSense operations) being blocked by IntelliSense processing. #1928
- Fix completion when the start of an identifier matches a keyword. #1986
- Fix auto-removal of compiler-provided paths in
includePath. #2177 - Fix crash on Windows when 8.3 filenames are used. #2453, #3104
- Add support for
Scope::Memberscoped symbol searches. #2484 - Fix signature help active parameter selection when parameter names are missing or subsets of each other. #2952
- Fix
--enable-pretty-printingwithgdbwhen complex objects are used as keys in maps. #3024 - Fix IntelliSense-based
Go to Definitionfornoexceptmethods. #3060 - Render macro hover expansions as C/C++. #3075
- Enable completion after
structwhen manually invoked. #3080 - Add
C_Cpp.suggestSnippetssetting to disable language server snippets. #3083 - Show a prompt for changing
C_Cpp.updateChanneltoInsiders. #3089- lh123 (@lh123) PR #3221
- Fix
compilerPathnot getting priority over thecompile_commands.jsoncompiler. #3102 - Fix Linux
compile_commands.jsoncompiler querying with relative paths. #3112 - Allow
*inincludePathto apply tobrowse.pathwhenbrowse.pathis not specified. #3121- Tucker Kern (@mill1000) PR #3122
- Disable
(and<completion commit characters. #3127 - Add Chinese translations for command titles. PR #3128
- Fix remote process picker bug. #2585, #3150
- Fix command not found and empty
c_cpp_properties.jsonif activation is too slow. #3160, #3176 - Fix
cppvsdbgdebugger showing"An unspecified error has occurred."for structured binding variables. #3197 - Fix bugs with the Insider reload prompt appearing when it shouldn't. #3206
- Fix variable expansion (e.g.
${env.HOME}) not working when${default}is used inc_cpp_properties.json. #3309 - Fix other unreported IntelliSense engine bugs.
Version 0.21.0: January 23, 2019
New Features
- Add documentation comments for hover, completion, and signature help. #399
- Add completion committing for methods after
(. #1184 - Add macro expansions to hover. #1734
- Add support for
__int128_tand__uint128_ttypes. #1815 - Add Italian translations for command titles.
- Julien Russo (@Dotpys) PR #2663
- Add icons for operators, structs/unions, enum values, template arguments, and macros. #2849
- Change
#includecompletion to show individual folders instead of the entire paths, fixing previous performance problems. #2836 - Add text
(declaration),(typedef),(type alias), and(union)to symbols. #2851 - Add a refresh button to the
Attach to Processpicker. #2885- Matt Bise (@mbise1993) PR #2895
- Add completion committing for templates after
<. #2953
Bug Fixes
- Add the Microsoft digital signature to Windows binaries to avoid getting incorrectly flagged by virus scanners. #1103, #2970
- Fix bugs when UTF-8 characters > 1 byte are used. #1504, #1525, #2034, #2082, #2883
- Fix some IntelliSense process crashes. #1785, #2913
- Fix several incorrect IntelliSense error squiggles. #1942, #2422, #2474, #2478, #2597, #2763
- Fix some main process crashes. #2505, #2768
- Fix incorrect IntelliSense error with Mac clang 10.0 libraries. #2608
- Fix completion not working in template specializations. #2620
- Fix incorrect completions after Enter is used after struct, class, etc. #2734
- Fix memory "leak" when parsing a large workspace. #2737
- Fix IntelliSense-based
Go to Definitionwith overloads that return a template with a default param (e.g. vector) #2736 - Fix
Go to Definitionwhen__catch(),_NO_EXCEPT_DEBUG, or_LIBCPP_BEGIN_NAMESPACE_STDis used. #2761, #2766 - Fix
Go to Definitionwhenmethod(void)is used. #2802 - Fix error
"TypeError: Cannot read property 'map' of undefined at asCompletionResult". #2807 - Fix quotes around defines not supported for custom configuration providers. #2820
- Fix PowerShell bug on Win7. #2822
- Fix Tag Parser completion details missing keywords (i.e.
using,class,#define, etc.). #2850 - Fix problem with empty recursive include paths. #2855
- Fix
NullReferenceExceptionon debugger launch with VS Code Insiders. #2858, PR Microsoft/MIEngine#810 - Fix IntelliSense errors with template argument deduction. #2907, #2912
- Retry Insider VSIX downloading with
http.proxySupportoff. #2927 - Fix snippet completions being offered when they shouldn't be. #2942
- Set the
editor.wordBasedSuggestionstofalseby default to prevent incorrect completions. #2943 - Fix IntelliSense-based
Go to Definitionfor functions with function pointer parameters. #2981 - Fix
<incorrectly triggering completions. #2985 - Fix recursive includes not adding paths used by
forcedIncludefiles. #2986 - Fix crash when
//is used in a recursiveincludePath. #2987 - Fix compiler in
compile_commands.jsonnot taking precedence over theCpp.default.compilerPath. #2793 - Fix
#includecompletion not working for symlinks. #2843 - Fix IntelliSense-based
Go to Definitionforconstmethods. #3014 - Support
C_Cpp.updateChannelfor VS Code Exploration builds.
Version 0.20.1: October 31, 2018
- Fix IntelliSense-based
Go to Declarationwhen there's only a definition in a TU. #2743 - Fix
#includecompletion for standalone header files. #2744 - Fix the highest hitting main process crash.
- Fix IntelliSense process crash with completion.
Version 0.20.0: October 30, 2018
- Add IntegratedTerminal support for Linux and Windows. #35
- Unify Visual Studio Code debug protocol parsing by using a shared library with Visual Studio.
- Fix IntelliSense-based
Go to Definitionon overloads (in the same TU). #1071 - Fix inactive regions not being disabled when falling back to the Tag Parser. #2181
- Fix
#includecompletion not working withcompile_commands.jsonor custom configuration providers. #2242 - Fix IntelliSense failing if recursive includes removes all paths. #2442
- Fix incorrect IntelliSense errors with MinGW (stop using
-fms-extensionsby default). #2443, #2623 - Fix error squiggles sometimes not updating after typing. #2448
- Add support for Mac framework paths in
compile_commands.json. #2508 - Fix IntelliSense-based
Go to Definitionfalling back to the Tag Parser for definitions not in the TU. #2536, #2677 - Fix IntelliSense-based
Go to Definitionon the identifier of a definition with no declaration. #2573 - Fix IntelliSense-based
Go to Definitionnot falling back to the declaration (in certain cases). #2574 - Fix IntelliSense-based
Go to Definitiongoing to the wrong location after edits are made. #2579 - Fix
Go to Definitionwhen theintelliSenseEngineFallbackisDisabledand#includes are missing. #2583 - Fix empty
C_Cpp.default.*settings not being used. #2584 - Fix quoting around
ssh's command (for the debugger). #2585 - Fix crash on hover (and
Go to Definition) when using theTag Parser. #2586 - Fix errors when a workspace folder isn't open. #2613, #2691
- Fix
-isystemwithout a space after getting ignored incompile_comamands.json. #2629 - Fix Insiders update channel installation bugs. #2636, #2685
- Fix IntelliSense-based
Go to Declarationfalling back to the Tag Parser if the definition is also in the TU. #2642 - Fix the
DisabledintelliSenseEnginesetting not working with custom configuration providers. #2656
Version 0.19.0: September 27, 2018
- Change the symbol database to update without needing to save. #202
- Enable IntelliSense-based
Go to Definitionfor the current translation unit, including local variables and overloaded operators. #255, #979 - Improved the
Go to Definitionperformance with large workspaces and files with lots of#includes. #273 - Disable
Go to Definitionfor invalid tokens, e.g. comments, strings, keywords, etc. #559 - Add
C_Cpp.updateChannelsetting for easier access to Insider builds of the extension. #1526 - Add support for v2 of the configuration provider API. #2237
- Fix bug with parsing definitions in
compile_commands.json. #2305 - Fix
shfailure when attaching to a remote Linux process. #2444 - Fix incorrect default
cl.exemacro. PR #2468 - Fix multiple bugs with the symbols in the Outline view not updating correctly. #2477, #2500, #2504
- Add support for
workspaceFolderBasenameexpansion. #2491 - Fix bug with variable resolution. #2532
- Fix off-by-one bug with hover and
Go to Definition. #2535 - Fix Microsoft/vscode#54213
Version 0.18.1: August 17, 2018
Version 0.18.0: August 17, 2018
New Features
- Add the
C_Cpp.intelliSenseEnginesetting value ofDisabled(for users who only use the debugger). #785 - Add
C_Cpp.workspaceSymbolssetting with defaultJust My Codeto filter out system header symbols. #1119, #2320 - Add
C_Cpp.inactiveRegionForegroundColorandC_Cpp.inactiveRegionBackgroundColorsettings. #1620, #2212- John Patterson (@john-patterson) PR #2308
- Add
gcc-x64intelliSenseModeand send the correct clang or gcc version to our parser, fixing various IntelliSense errors. #2112, #2175, #2260, #2299, #2317 - Make
Go to Definitionon the definition go to the declaration instead. #2298 - Add multi-pass environment variable resolution allowing variables defined in terms of other variables. #2057
- John Patterson (@john-patterson) PR #2322
- Allow users to use
~for${userProfile}on Windows. PR #2333 - Add support for compiler flags
-fms-extensionsand-fno-ms-extensionson Windows (the default for MinGW-based compilers). #2363 - Make completion "show more results" (i.e. inaccessible members) when invoked a 2nd time. #2386
Bug Fixes
- Fix attach to process for systems without
bashby usingshinstead. #569- Andy Neff (@andyneff) PR #2340
- Fix IntelliSense crash after hover or completion with
_Complextypes. #689, #1112 - Fix
files.excludenot working to exclude non-workspace folders from symbol parsing. #1066 - Fix
Switch Header/Sourceto give results that match the parent folder name before using just the file name. #1085 - Fix incorrect IntelliSense errors caused by namespace lookup failure when instantiation template arguments in clang mode. #1395, #1559, #1753, #2272
- Fix missing parameter help when using { for constructors. #1667
- Fix Mac framework dependencies not being discovered. #1913
- Fix
compilerPathnot working with${workspaceFolder}. #1982 - Fix red flame getting stuck after modifying
c_cpp_properties.json. #2077 - Don't add empty
windowsSDKVersionif none exists. #2300 - Fix IntelliSense crash when the gcc-8 type_traits header is used. #2323, #2328
- Limit configuration popups to one at a time. #2324
- Don't show
includePathcode actions if compile commands or custom configuration providers are used. #2334 - Fix
C_Cpp.clang_format_pathnot accepting environment variables. #2344 - Fix IntelliSense not working with non-ASCII characters in the WSL install path. #2351
- Filter out incorrect IntelliSense error
"= delete" can only appear on the first declaration of a function. #2352 - Fix IntelliSense failing with WSL if gcc is installed bug g++ isn't. #2360
- Fix WSL paths starting with
/mnt/failing to get symbols parsed. #2361 - Fix IntelliSense process crash when hovering over a designated initializer list with an anonymous struct. #2370
- Stop showing "File: " in completion details for internal compiler defines. #2387
- Invoke
Edit Configurations...when theConfiguration Helpbutton is clicked. #2408 - Fix provider configuration prompt not showing for newly added workspace folders. #2415
- Fix to allow SIGINT to be sent using the kill -2 command when using pipeTransport.
Version 0.17.7: July 22, 2018
- Fix
Go to Definitionfor code scoped with an aliased namespace. #387 - Fix incorrect IntelliSense errors with template template-arguments. #1014
- Fix crash when using designated initializer lists. #1440
- Add
windowsSdkVersiontoc_cpp_properties.json. #1585 - Add
${vcpkgRoot}variable. #1817 - Fix dangling IntelliSense processes. #2075, #2169
- Fix incorrect IntelliSense errors when class template argument deduction is used. #2101
- Skip automatic parsing of source files in Mac system framework paths. #2156
- Fix
Edit Configurations...not working afterc_cpp_properties.jsonis deleted. #2214 - Fix indexing of the entire root drive on Windows when no is folder open. #2216
- Disable the config provider message for headers outside the workspace and when debugging. #2221
- Add
Change Configuration Provider...command. #2224 - Fix out-of-memory crash with
#includecode actions when no folder is open. #2225 - Fix
intelliSenseModewith custom config providers on Windows. #2228 - Fix formatting not working on Windows if the VC++ 2015 redist isn't installed. #2232
- Fix variables not resolving in
macFrameworkPath. #2234 - Fix
Go to Definitionnot working for macros followed by.or->. #2245 - Fix
#includeautocomplete with Mac framework headers. #2251 - Fix debugging to support empty arguments for debuggee. #2258
- Fix
Go to Definitionbug (missing symbols outside the workspace). #2281 - Fix incorrect hover in enum definitions. #2286
- Add a setting to silence configuration provider warnings. #2292
- Fix debugging async Visual C++ causing the debugger to stop responding.
- Fix
mainsnippet.
Version 0.17.6: July 2, 2018
- Fix the database icon getting stuck with recursive includes. #2104
- Fix the red flame appearing late with recursive includes. #2105
- Fix source files being parsed in system directories. #2156
- Fix internal document corruption (visible after formatting) when edits are made too soon after activation. #2162
- Fix a crash when saving with recursive includes. #2173
- Fix a crash when the
includePathorbrowse.pathis"**". #2174 - Fix IntelliSense for WSL without g++ installed. #2178
- Fix random IntelliSense (completion) failures due to edits being delayed. #2184
- Fix database deletion failure with non-ASCII file paths on Windows. #2205
- Fix
Go to Definitionresults withvar::andvar->, and filter out invalid constructor results. #2207 - Fix a performance bug with recursive includes.
- Fixed a CPU usage problem on Mac related to system frameworks parsing.
- Keep the IntelliSense process around for 10 seconds after a file is closed in case it's needed again.
- Added an API so build system extensions can provide IntelliSense configurations for source files. More details at npmjs.com.
- Fix automatic argument quoting when debugging with gdb/lldb to include when the argument has a '(' or ')' in it. Also escape existing '"' symbols.
- Removed
-inpscall for ProcessPicker and RemoteProcessPicker. #2183
Version 0.17.5: June 21, 2018
- Detect
compile_commands.jsonand show prompt to use it. #1297 - Change inactive regions from gray to translucent. #1907
- Improve performance of recursive includes paths. #2068
- Fix IntelliSense client failure due to
No args provider. #1908 - Fix
#includecompletion with headers in the same directory. #2031 - Fix non-header files outside the workspace folder not being parsed (i.e. so
Go to Definitionworks). #2053 - Fix some crashes. #2080
- Support asm clobber registers on Windows. #2090
- Fix usage of
${config:section.setting}. #2165 browse.pathnow inheritsincludePathif not set inc_cpp_properties.json.- On Windows,
compilerPathnow populates with the guessedcl.exepath, and theMSVCinclude path is based on thecl.exepath. - Fix files under a non-recursive
browse.pathbeing removed from the database. - Fix
*not working inbrowse.pathwith WSL. - Fix -break-insert main returning multiple bind points. PR Microsoft/MIEngine#729
- Use -- instead of -x for gnome-terminal. PR Microsoft/MIEngine#733
- Added
miDebuggerArgsin order to pass arguments to the program inmiDebuggerPath. PR Microsoft/MIEngine#720
Version 0.17.4: May 31, 2018
- Fix infinite loop (caused by deadlock) when using recursive includes. #2043
- Stop using recursive includes in the default configuration.
- @Hyzeta PR #2059
- Fix various other potential deadlocks and crashes.
- Fix
Go to Definitionon#includenot filtering out results based on the path. #1253, #2033 - Fix database icon getting stuck. #1917
Version 0.17.3: May 22, 2018
- Add support for
${workspaceFolder:folderName}. #1774 - Fix infinite loop during initialization on Windows. #1960
- Fix main process IntelliSense-related crashes. #2006
- Fix deadlock after formatting large files. #2007
- Fix recursive includes failing to find some system includes. #2019
Version 0.17.1: May 17, 2018
- Fix IntelliSense update slowness when using recursive includes. #1949
- Fix code navigation failure after switching between WSL and non-WSL configs. #1958
- Fix extension crash when the
includePathis a file or the root drive. #1979, #1965 - Fix IntelliSense crash in
have_member_access_from_class_scope. #1763 - Fix
#includecompletion bugs. #1959, #1970 - Add
Debugvalue forloggingLevel(previously the hidden value"6"). - Fix C++17 features not being fully enabled with msvc-x64 mode. #1990
- Fix IntelliSense interprocess deadlocks. #1407, #1777
Version 0.17.0: May 7, 2018
- Auto-complete for headers after typing
#include. #802 - Add support for recursive
includePath, e.g.${workspaceFolder}/**. #897 - Configuration improvements. #1338
- Add support for querying system includes/defines from WSL and Cygwin compilers. #1845, #1736
- Fix IntelliSense for WSL projects in Windows builds 17110 and greater. #1694
- Add snippets. PR #1823
- Add support for vcpkg. PR #1886
- Add support for custom variables in
c_cpp_properties.jsonviaenv. #1857, #368 - Stop automatically adding
/usr/includeto theincludePath. #1819 - Fix wrong configuration being used if there are four or more. #1599
- Fix
c_cpp_properties.jsonrequiring write access. #1790 - Change file not found in
compile_commands.jsonmessage from an error to a warning. #1783 - Fix an IntelliSense crash during completion requests. #1782
- Update the installed clang-format to 6.0.
- Fix bug with
compile_commands.jsonwhen "arguments" have both a switch and a value in the arg. #1890 - Fix bug with garbage data appearing in tooltips on Linux/Mac. #1577
Version 0.16.1: March 30, 2018
- Fix random deadlock caused by logging code on Linux/Mac. #1759
- Fix compiler from
compileCommandsnot being queried for includes/defines ifcompilerPathisn't set on Windows. #1754 - Fix OSX
UseShellExecuteI/O bug. #1756 - Invalidate partially unzipped files from package manager. #1757
Version 0.16.0: March 28, 2018
- Enable autocomplete for local and global scopes. #13
- Add a setting to define multiline comment patterns:
C_Cpp.commentContinuationPatterns. #1100, #1539 - Add a setting to disable inactive region highlighting:
C_Cpp.dimInactiveRegions. #1592 - Add
forcedIncludeconfiguration setting. #852 - Add
compilerPath,cStandard, andcppStandardconfiguration settings, and query gcc/clang-based compilers for default defines. #1293, #1251, #1448, #1465, #1484 - Fix text being temporarily gray when an inactive region is deleted. Microsoft/vscode#44872
- Add support for
${workspaceFolder}variable in c_cpp_properties.json. #1392 - Fix IntelliSense not updating in source files after dependent header files are changed. #1501
- Change database icon to use the
statusBar.foregroundcolor. #1638 - Enable C++/CLI IntelliSense mode via adding the
/clrarg to thecompilerPath. #1596 - Fix delay in language service activation caused by cpptools.json downloading. #1640
- Fix debugger failure when a single quote is in the path. #1554
- Fix terminal stdout and stderr redirection to not send to VS Code. #1348
- Fix blank config and endless "Initializing..." if the file watcher limit is hit when using
compileCommands. PR #1709 - Fix error squiggles re-appearing after editing then closing a file. #1712
- Show error output from clang-format. #1259
- Fix
add_expression_to_indexcrash (most frequent crash in 0.15.0). #1396 - Fix incorrect error squiggle
explicitly instantiated more than once. #871
Version 0.15.0: February 15, 2018
- Add colorization for inactive regions. #1466
- Fix 3 highest hitting crashes. #1137, #1337, #1497
- Update IntelliSense compiler (bug fixes and more C++17 support). #1067, #1313
- Fix duplicate
cannot open source fileerrors. #1469 - Fix
Go to Symbol in File...being slow for large workspaces. #1472 - Fix stuck processes during shutdown. #1474
- Fix error popup appearing with non-workspace files when using
compile_commands.json. #1475 - Fix snippet completions being blocked after
#. #1531 - Add more macros to
cpp.hint(fixing missing symbols). - Add
__CHAR_BIT__=8to default defines on Mac. #1510 - Added support for config variables to
c_cpp_properties.json. #314- Joshua Cannon (@thejcannon) PR #1529
- Define
_UNICODEby default on Windows platforms. #1538- Charles Milette (@sylveon) PR #1540
Version 0.14.6: January 17, 2018
- Fix tag parser failing (and continuing to fail after edits) when it shouldn't. #1367
- Fix tag parser taking too long due to redundant processing. #1288
- Fix debugging silently failing the 1st time if a C/C++ file isn't opened. #1366
- Skip automatically adding to
files.associationsif it matches an existing glob pattern or ifC_Cpp.autoAddFileAssociationsisfalse. #722 - The debugger no longer requires an extra reload. #1362
- Fix incorrect "Warning: Expected file ... is missing" message after installing on Linux. #1334
- Fix "Include file not found" messages not re-appearing after settings changes. #1363
- Performance improvements with
browse.pathparsing, and stop showing "Parsing files" when there's no actual parsing. #1393 - Fix crash when settings with the wrong type are used. #1396
- Allow semicolons in
browse.path. #1415 - Fix to handle relative pathing in source file paths properly when normalizing. #1228
- Fix delay in language service activation caused by cpptools.json downloading. #1429
- Add
C_Cpp.workspaceParsingPrioritysetting to enable using less than 100% CPU during parsing of workspace files. - Add
C_Cpp.exclusionPolicydefault tocheckFoldersto avoid expensivefiles.excludechecking on every file.
Version 0.14.5: December 18, 2017
- Fix stackwalk
NullReferenceException. #1339 - Fix
-isystem(or-I) not being used incompile_commands.jsonif there's a space after it. #1343 - Fix header switching from
.ccto.hppfiles (and other cases). #1341 - Fix reload prompts not appearing in debugging scenarios (after the initial installation). #1344
- Add a "wait" message when commands are invoked during download/installation. #1344
- Prevent blank "C/C++ Configuration" from appearing when debugging is started but the language service is not. #1353
Version 0.14.4: December 11, 2017
- Enable the language service processes to run without glibc 2.18. #19
- Enable the language service processes to run on 32-bit Linux. #424
- Fix extension process not working on Windows with non-ASCII usernames. #1319
- Fix IntelliSense on single processor VMs. #1321
- Enable offline installation of the extension. #298
- Add support for
-isystemincompile_commands.json. #1156 - Remember the selected configuration across launches of VS Code. #1273
- Fix 'Add Configuration...` entries not appearing if the extension wasn't previously activated. #1287
- Add
(declaration)to declarations in the navigation list. #1311 - Fix function definition body not being visible after navigation. #1311
- Improve performance for fetching call stacks with large arguments. #363
Version 0.14.3: November 27, 2017
- Fix disappearing parameter hints tooltip. #1165
- Fix parameter hints only showing up after the opening parenthesis. #902, #819
- Fix customer reported crashes in the TypeScript extension code. #1240, #1245
- Fix .browse.VC-#.db files being unnecessarily created when an shm file exists. #1234
- Fix language service to only activate after a C/C++ file is opened or a C/Cpp command is used (not onDebug).
- Fix database resetting if shutdown got blocked by an IntelliSense operation. #1260
- Fix deadlock that can occur when switching configurations.
- Fix browse.databaseFilename changing not taking effect until a reload.
Version 0.14.2: November 9, 2017
- Unsupported Linux clients sending excessive telemetry when the language server fails to start. #1227
Version 0.14.1: November 9, 2017
- Add support for multi-root workspaces. #1070
- Fix files temporarily being unsavable after Save As and other scenarios on Windows. Microsoft/vscode#27329
- Fix files "permanently" being unsavable if the IntelliSense process launches during tag parsing of the file. #1040
- Show pause and resume parsing commands after clicking the database icon. #1141
- Don't show the install output unless an error occurs. #1160
- Fix bug with
${workspaceRoot}symbols not getting added if a parent folder is in thebrowse.path. #1185 - Fix
Add configurationC++ launch.json on Insiders. #1191 - Fix extension restart logic so that the extension doesn't get stuck on "Initializing..." when it crashes. #893
- Remove the Reload window prompt after installation (it only appears if launch.json is active).
- Prevent browse database from being reset if shutdown takes > 1 second.
- Remove the
UnloadLanguageServercommand and theclang_format_formatOnSavesetting. - Fix bugs with include path suggestions.
- Fix max files to parse status number being too big, due to including non-
${workspaceRoot}files. - Update default
launch.jsonconfigurations to use${workspaceFolder}instead of${workspaceRoot}. - Update how default initial configurations for
launch.jsonare being provided. Microsoft/vscode#33794 - Add support for normalizing source file locations. (Windows #272), (Mac OS X #1095)
Version 0.14.0: October 19, 2017
- Add support for
compile_commands.json. #156 - Fix crash with signature help. #1076
- Skip parsing redundant browse.path directories. #1106
- Fix
limitSymbolsToIncludedHeadersnot working with single files. #1109 - Add logging to Output window. Errors will be logged by default. Verbosity is controlled by the
"C_Cpp.loggingLevel"setting. - Add new database status bar icon for "Indexing" or "Parsing" with progress numbers, and the previous flame icon is now just for "Updating IntelliSense".
- Stop showing
(Global Scope)if there's actually an error in identifying the correct scope. - Fix crash with the IntelliSense process when parsing certain template code (the most frequently hit crash).
- Fix main thread being blocked while searching for files to remove after changing
files.exclude. - Fix incorrect code action include path suggestion when a folder comes after "..".
- Fix a crash on shutdown.
Version 0.13.1: October 5, 2017
- Delete unused symbol databases when
browse.databaseFilenameinc_cpp_properties.jsonchanges. #558 - Fix infinite loop during IntelliSense parsing. #981
- Fix database resetting due to the extension process not shutting down fast enough. #1060
- Fix crash with document highlighting #1076
- Fix bug that could cause symbols to be missing when shutdown occurs during tag parsing.
- Fix bug that could cause included files to not be reparsed if they were modified after the initial parsing.
- Fix potential buffer overrun when logging is enabled.
- Add logging to help diagnose cause of document corruption after formatting.
Version 0.13.0: September 25, 2017
- Reference highlighting is now provided by the extension for both IntelliSense engines.
- Parameter help is now provided by both IntelliSense engines.
- Light bulbs (code actions) for
#includeerrors now suggest potential paths to add to theincludePathbased on a recursive search of thebrowse.path. #846 - Browse database now removes old symbols when
browse.pathchanges. #262 - Add
*on new lines after a multiline comment with/**is started. #579 - Fix
Go to Definition, completion, and parameter hints for partially scoped members. #635 - Fix bug in
macFrameworkPathnot resolving variables.
Version 0.12.4: September 12, 2017
- Fix a crash in IntelliSense for users with non-ASCII user names (Windows-only). #910
- Add
macFrameworkPathtoc_cpp_properties.json. #970 - Fix incorrect auto-complete suggestions when using template types with the scope operator
::. #988 - Fix potential config file parsing failure. #989
- Support
${env:VAR}syntax for environment variables inc_cpp_properties.json. #1000 - Support semicolon delimiters for include paths in
c_cpp_properties.jsonto better support environment variables. #1001 - Add
__LITTLE_ENDIAN__=1to default defines so that "endian.h" is not needed on Mac projects. #1005 - Fix source code files on Windows with incorrect casing. #984
Version 0.12.3: August 17, 2017
- Fix regression for paths containing multibyte characters. #958
- Fix bug with the Tag Parser completion missing results. #943
- Add /usr/include/machine or i386 to the default Mac
includePath. #944 - Add a command to reset the Tag Parser database. #601, #464
- Fix bug with error-related code actions remaining after the errors are cleared.
- Fix bug with Tag Parser completion not working when :: preceded an identifier.
- Upgrade SQLite (for better reliability and performance).
Version 0.12.2: August 2, 2017
- Fix bug in our build system causing Windows binaries to build against the wrong version of the Windows SDK. #325
- Added a gcc problemMatcher. #854
- Fix bug where .c/.cpp files could get added to
files.associationsas the opposite "cpp"/"c" language afterGo to Definitionon a symbol. #884 - Remove completion results after
#pragma. #886 - Fix a possible infinite loop when viewing Boost sources. #888
- Fix
Go to Definitionnot working for files in#include_next. #906- Also fix incorrect preprocessor suggestions at the end of a
#include_next.
- Also fix incorrect preprocessor suggestions at the end of a
- Skip automatically adding to
files.associationsif they already match global patterns. Microsoft/vscode#27404 - Fix a crash with the IntelliSense process (responsible for ~25% of all crashes).
Version 0.12.1: July 18, 2017
- Fix Tag Parser features not working with some MinGW library code.
- Fix a symbol search crash.
- Fix an IntelliSense engine compiler crash.
- Fix
Go to Declarationto returnGo to Definitionresults if the declarations have no results. - Fix formatting with non-ASCII characters in the path. #870
- Fix handling of symbolic links to files on Linux/Mac. #872
- Move red flame icon to its own section so the configuration text is always readable. #875
- Remove
addWorkspaceRootToIncludePathsetting and instead make${workspaceRoot}inbrowse.pathexplicit. - Add
Show Release Notescommand. - Add
Edit Configurations...command to theSelect a Configuration...dropdown. - Update Microsoft Visual C++ debugger to Visual Studio 2017 released components.
- Fix issue in MinGW/Cygwin debugging where stop debugging causes VS Code to stop responding. PR Microsoft/MIEngine#636
Version 0.12.0: June 26, 2017
- The default IntelliSense engine now provides semantic-aware autocomplete suggestions for
.,->, and::operators. #13 - The default IntelliSense engine now reports the unresolved include files in referenced headers and falls back to the Tag Parser until headers are resolved.
- This behavior can be overridden by setting
"C_Cpp.intelliSenseEngineFallback": "Disabled"
- This behavior can be overridden by setting
- Added
"intelliSenseMode"property toc_cpp_properties.jsonto allow switching between MSVC and Clang modes. #710, #757 - A crashed IntelliSense engine no longer gives the popup message, and it automatically restarts after an edit to the translation unit occurs.
- Fix the IntelliSense engine to use "c" mode if a C header is opened before the C file.
- Fix a bug which could cause the IntelliSense engine to not update results if changes are made to multiple files of a translation unit.
- Auto
files.associationregisters "c" language headers whenGo to Definitionis used in a C file. - Downloading extension dependencies will retry up to 5 times in the event of a failure. #694
- Changes to
c_cpp_properties.jsonare detected even if file watchers fail. - Update default IntelliSense options for MSVC mode to make Boost projects work better. #775
- Fix
Go to Definitionnot working until allbrowse.pathfiles are re-scanned. #788
Version 0.11.4: June 2, 2017
- Fix
System.Xml.Serialization.XmlSerializationReader threw an exceptionwhen debugging on Linux. #792 - Fix escaping for
${workspaceRoot}inlaunch.json.
Version 0.11.3: May 31, 2017
- Fix
x86_64-pc-linux-gnuandx86_64-linux-gnupaths missing from the defaultincludePath.
Version 0.11.2: May 24, 2017
- Revert the default
C_Cpp.intelliSenseEnginesetting back to "Tag Parser" for non-Insiders while we work on improving the migration experience.
Version 0.11.1: May 19, 2017
- Add keywords to auto-complete (C, C++, or preprocessor). #120
- Fix non-recursive
browse.pathon Linux/Mac. #546 - Fix .clang-format file not being used on Linux/Mac. #604
- Stop setting the c/cpp
editor.quickSuggestionsto false. #606- We also do a one-time clearing of that user setting, which will also copy any other c/cpp workspace settings to user settings. The workspace setting isn't cleared.
- Fix selection range off by one with
Peek Definition. #648 - Upgrade the installed clang-format to 4.0 #656
- Make keyboard shortcuts only apply to c/cpp files. #662
- Fix autocomplete with qstring.h. #666
- Fix C files without a ".c" extension from being treated like C++ for
errorSquiggles. #673 - Make the C IntelliSense engine use C11 instead of C89. #685
- Fix bug with clang-format not working with non-trimmed styles. #691
- Enable the C++ IntelliSense engine to use six C++17 features. #699
- Add reload prompt when a settings change requires it.
- Prevent non-existent files from being returned in
Go To Definitionresults.
Version 0.11.0: April 24, 2017
- Enabled first IntelliSense features based on the MSVC engine.
- Quick info tooltips and compiler errors are provided by the MSVC engine.
C_Cpp.intelliSenseEngineproperty controls whether the new engine is used or not.C_Cpp.errorSquigglesproperty controls whether compiler errors are made visible in the editor.
- Add
Go to DeclarationandPeek Declaration. #271 - Fix language-specific workspace settings leaking into user settings. Microsoft/vscode#23118
- Fix
files.excludenot being used in some cases. #485 - Fix a couple potential references to an undefined
textEditor. #584 - Move changes from
README.mdtoCHANGELOG.md. #586 - Fix crash on Mac/Linux when building the browse database and
nftwfails. #591 - Add
Alt+Nkeyboard shortcut for navigation. #593 - Fix autocomplete crash when the result has an invalid UTF-8 character. #608
- Fix symbol search crash with
_symbol. #611 - Fix the
Edit Configurationscommand when '#' is in the workspace root path. #625 - Fix clang-format
TabWidthnot being set when formatting with theVisual Studiostyle. #630 - Enable
clang_format_fallbackStyleto be a custom style. #641 - Fix potential
undefinedreferences when attaching to a process. #650 - Fix
files.excludenot working on Mac. #653 - Fix crashes during edit and hover with unexpected UTF-8 data. #654
Version 0.10.5: March 21, 2017
- Fix a crash that randomly occurred when the size of a document increased. #430
- Fix browsing not working for Linux/Mac stdlib.h functions. #578
- Additional fixes for switch header/source not respecting
files.exclude. #485 - Made
editor.quickSuggestionsdependent onC_Cpp.autocomplete. #572- We recommend you close and reopen your settings.json file anytime you change the
C_Cpp.autocompletesetting. More info here.
- We recommend you close and reopen your settings.json file anytime you change the
Version 0.10.4: March 15, 2017
- Fix a crash in signature help. #525
- Re-enable switch header/source when no workspace folder is open. #541
- Fix inline
clang_format_style. #536 - Some other minor bug fixes.
Version 0.10.3: March 7, 2017
- Database stability fixes.
- Added enums to the C_Cpp settings so the possible values are displayed in the dropdown.
- Change from
${command.*}to${command:*}. #521 - Current execution row was not highlighting in debug mode when using gdb. #526
Version 0.10.2: March 1, 2017
- New
addWorkspaceRootToIncludePathsetting allows users to disable automatic parsing of all files under the workspace root. #374 - The cpp.hint file was missing from the vsix package. #508
- Switch header/source now respects
files.exclude. #485 - Switch header/source performance improvements. #231
- Switch header/source now appears in the right-click menu.
- Improvements to signature help.
- Various other bug fixes.
Version 0.10.1: February 9, 2017
- Bug fixes.
Version 0.10.0: January 24, 2017
- Suppressed C++ language auto-completion inside a C++ comment or string literal. TextMate based completion is still available.
- Fixed bugs regarding the filtering of files and symbols, including:
- Find-symbol now excludes symbols found in
files.excludeorsearch.excludefiles - Go-to-definition now excludes symbols found in
files.excludefiles (i.e.search.excludepaths are still included).
- Find-symbol now excludes symbols found in
- Added option to disable
clang-format-based formatting provided by this extension via"C_Cpp.formatting" : "disabled" - Added new
pipeTransportfunctionality within thelaunch.jsonto support pipe communications withgdb/lldbsuch as usingplink.exeorssh. - Added support for
{command.pickRemoteProcess}to allow picking of processes for remote pipe connections duringattachscenarios. This is similar to how{command.pickProcess}works for local attach. - Bug fixes.
Version 0.9.3: December 8, 2016
- December update for C/C++ extension
- Ability to map source files during debugging using
sourceFileMapproperty inlaunch.json. - Enable pretty-printing by default for gdb users in
launch.json. - Bug fixes.
Version 0.9.2: September 22, 2016
- Bug fixes.
Version 0.9.1: September 7, 2016
- Bug fixes.
Version 0.9.0: August 29, 2016
- August update for C/C++ extension.
- Debugging for Visual C++ applications on Windows (Program Database files) is now available.
clang-formatis now automatically installed as a part of the extension and formats code as you type.clang-formatoptions have been moved from c_cpp_properties.json file to settings.json (File->Preferences->User settings).clang-formatfallback style is now set to 'Visual Studio'.- Attach now requires a request type of
attachinstead oflaunch. - Support for additional console logging using the keyword
logginginsidelaunch.json. - Bug fixes.
Version 0.8.1: July 27, 2016
- Bug fixes.
Version 0.8.0: July 21, 2016
- July update for C/C++ extension.
- Support for debugging on OS X with LLDB 3.8.0. LLDB is now the default debugging option on OS X.
- Attach to process displays a list of available processes.
- Set variable values through Visual Studio Code's locals window.
- Bug fixes.
Version 0.7.1: June 27, 2016
- Bug fixes.
Version 0.7.0: June 20, 2016
- June Update for C/C++ extension.
- Bug fixes.
- Switch between header and source.
- Control which files are processed under include path.
Version 0.6.1: June 3, 2016
- Bug fixes.
Version 0.6.0: May 24, 2016
- May update for C/C++ extension.
- Support for debugging on OS X with GDB.
- Support for debugging with GDB on MinGW.
- Support for debugging with GDB on Cygwin.
- Debugging on 32-bit Linux now enabled.
- Format code using clang-format.
- Experimental fuzzy auto-completion.
- Bug fixes.
Version 0.5.0: April 14, 2016
- Usability and correctness bug fixes.
- Simplify installation experience.