- 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
- 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.
- Fix member completion in C code after an operator is used in an expression. #2184
- Fix extension not creating
tasks.jsonif the.vscodefolder doesn’t exist. #4280 - Fix installation of clang-format 10 with the online vsix. #5194
- Get the compiler type to determine if it's Clang when querying for default compiler so that the correct default
intelliSenseModeis set. #5352 - Get the default language standard of the compiler and use that std version if no version is specified. #5579
- Fix
configuration.includePathto only add thedefaultFolderwhen the defaultincludePathis set. #5621 - Fix an IntelliSense crash when using C++20 on Linux. #5727
- Get the default target of the compiler. If the default target is ARM/ARM64, do not use the generic "--target" option to determine bitness. #5772
- Fix
compilerArgsnot being used if nocompilerPathis set. #5776 - Fix an incorrect IntelliSense error squiggle. #5783
- Fix semantic colorization and inactive regions for multiroot workspaces. #5812, #5828
- Fix bug with cl.exe flags /FU and /FI not being processed. #5819
- Fix
cStandardbeing set toc11instead ofgnu18with gcc. #5834 - Fix Doxygen parameterHint comment to display for a parameter name that is followed by colon. #5836
- Fix compiler probing when relative paths are used in
compile_commands.json. #5848 - Fix the compile commands compiler not being used if
C_Cpp.default.compilerPathis set. #5848 - Fix Doxygen comment to escape markdown characters. #5904
- Remove keyword completion of C identifiers that are defined in headers and aren't keywords (e.g.
alignas). #6022 - Fix error message with
Build and Debug Active File. #6071 - Restore fallback to the base configuration if a custom configuration provider does not provide a configuration for a file and does not provide compiler info in a custom browse configuration.
- Fix a bug that could cause the extension to delay processing a newly opened file until any outstanding IntelliSense operations are complete, if using a custom configuration provider.
- Fix a bug with incorrect configuration of a file when using a custom configuration provider and no custom configuration is available for that file. This now falls back to the compiler info received from the configuration provider with the browse configuration.
- Fix a bug in which making a modification to
c_cpp_properties.jsoncould result in custom configurations for currently open files being discarded and not re-requested.
- 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.
- Using
clang-formaton ARM may require installing libtinfo5. #5958
- 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. MIEngine#1013
- 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
- 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
- Update version of vscode-cpptools API to 4.0.1 PR #5624
- 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
- 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
- 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
- Add C/C++ language-aware code folding. #407
- Add GNU (and C18) language standard options. #2782
- Add ARM and ARM64 IntelliSense modes. #4271, PR #5250
- 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
- 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 multiroot 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.
- Disable Insiders
updateChannelfor 32-bit Linux and VS Code older than 1.43.0.
- 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
- 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.
- 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 hang 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.
- 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.
- 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
- 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 a hang 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-tools"configurationProviderid. #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
- Fix
launch.jsoncreation when using non-English display languages. #4464 - Fix CHS translation. #4422
- Fix debugging hang when Windows 10 Beta Unicode (UTF-8) support is enabled. #1527
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- Fix an issue with the Outline not being populated when a file is opened. #3877
- Update scopes used by semantic colorization. PR# 3896
- Semantic colorization Documentation #230
- Add
Rescan Workspacecommand. microsoft/vscode-cpptools-api#11
- 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
- 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.
- Fix
launch.jsoncreation whenintelliSenseEngineis"Disabled". #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.
- 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
- 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.
- 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.
- 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).
- 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
- 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.
- 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
- 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.proxySupport"off". #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.
- 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.
- 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
- 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
- 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
- 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.
- 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 debugger to hang.
- Fix
mainsnippet.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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
- 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.
- Unsupported Linux clients sending excessive telemetry when the language server fails to start. #1227
- 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)
- 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.
- 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.
- 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.
- 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
- 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).
- 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).
- 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 hang. PR Microsoft/MIEngine#636
- 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
- Fix
System.Xml.Serialization.XmlSerializationReader threw an exceptionwhen debugging on Linux. #792 - Fix escaping for
${workspaceRoot}inlaunch.json.
- Fix
x86_64-pc-linux-gnuandx86_64-linux-gnupaths missing from the defaultincludePath.
- Revert the default
C_Cpp.intelliSenseEnginesetting back to "Tag Parser" for non-Insiders while we work on improving the migration experience.
- 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.
- 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
- 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
- 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.
- 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
- 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.
- Bug fixes.
- 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.
- 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.
- Bug fixes.
- Bug fixes.
- 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.
- Bug fixes.
- 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.
- Bug fixes.
- June Update for C/C++ extension.
- Bug fixes.
- Switch between header and source.
- Control which files are processed under include path.
- Bug fixes.
- 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.
- Usability and correctness bug fixes.
- Simplify installation experience.
- Usability and correctness bug fixes.