- Add
Find All References
. #15 - Add
-x86
options forintelliSenseMode
. #2275, #2312 - Add
c++20
option tocppStandard
. #3448 - Add a code action for resolving missing includes via the
vcpkg
dependency manager. PR #3791
- Added support for compile commands:
- Switch to using VS Code's
Go to Declaration
. #2959 - Added
compilerArgs
property setting. PR #3950 - Added support for V3 API. #3987
- Add
not supported
messages for ARM and Alpine containers. PR #4027 - Add validation for paths from
env
variables. #3912
- Fix wrong type of
this
pointer. #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.json
file changes not updated. #3864. - Fix
Failed to parse
error 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 Definition
failing withusing namespace
. #3902, #4018 - Fix completion not showing results for smart pointers. #3926, #3930
- Fix
clang_format_path
cannot 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.exclude
bug on Windows. #4095 - Fix NullReferenceException when
cwd
is 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 Workspace
command. microsoft/vscode-cpptools-api#11
- Configuration UI editor improvements:
- Enable
envFile
forcppdbg
. PR #3723 - Change the default path value of
C_Cpp.intelliSenseCachePath
. #3347 #3664 - Change
C_Cpp.clang_format_path
tomachine
scope. #3774 - Add validation to the advanced configuration UI settings. PR #3838
- Add
Current Configuration
toC/C++: Log Diagnostics
. PR #3866
- Fix for gdb
follow-fork-mode
child
not working. #2738 - Fix IntelliSense process crash on hover with certain arrays. #3081
- Fix IntelliSense-based
Go to Definition
for 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
sourceFileMap
to 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 Definition
when isvoid
missing 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.exe
compiler. #3637 - Fix resolving
${workspaceFolderBasename}
and add${workspaceStorage}
. #3642 - Fix IntelliSense-based
Go to Definition
performance issue due to extra database iteration. #3655 - Fix
SourceRequest
causing debugging to stop withNotImplementedException
. #3662 - Fix typo in
intelliSenseMode
description.- Karsten Thoms (@kthoms) PR #3682
- Fix invalid warning with typedef enums in .c files. #3685
- Fix incorrect
keyword
completion 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
remoteProcessPicker
on Windows. #3758 - Fix crash when tag parsing Objective-C code. #3776
- Fix duplicate slashes getting added to
c_cpp_properties.json
. PR #3778 - Fix
envFile
variable 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
/MIDebuggerServerAddress
on Linux and macOS. MIEngine#844 - Improvements to CPU and memory usage when editing.
- Fix
launch.json
creation whenintelliSenseEngine
is"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.json
file. 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.editor
setting.
- Add a new command
- Add command
C/C++: Log Diagnostics
to log language service diagnostics. PR #3489 - Add support for
.env
files forcppvsdbg
. #3490
- Enable flag
/permissive-
as an argument tocompilerPath
withcl.exe
. #1589, #3446 - Configuration squiggles for
c_cpp_properties.json
now validates if the setting values ofcompilerPath
andintelliSenseMode
match on Windows. #2983 - Enable
-fms-extensions
to be used as an argument tocompilerPath
on Linux/Mac. #3063 - Change the default value of
C_Cpp.intelliSenseEngineFallback
setting toDisabled
. #3165 - Add squiggle when
compilerPath
uses spaces and arguments without"
. #3357 - Change the
Disabled
value forC_Cpp.errorSquiggles
to stop showing missing header squiggles. #3361 - Add
enableConfigurationSquiggles
setting to allow squiggles to be disabled forc_cpp_properties.json
. #3403 - Switch to using the
installExtension
command for offline/insider vsix installing (to reduce install failures). #3408 - Add a better example to the description of
C_Cpp.clang_format_style
andC_Cpp.clang_format_fallback_style
. #3419 - Add a new (default) value of
EnabledIfIncludesResolve
toC_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
.C
files as C++ files Microsoft/vscode#59369 --.C
files 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
includePath
when they end with a directory separator on Windows. #3245 - Fix duplicate compiler build tasks appearing when
compilerPath
has arguments. PR #3360 - Fix environment variables not resolving with
C_Cpp.intelliSenseCachePath
. #3367 - Fix the formatting of snippets text. #3376
- Fix the default
AccessModifierOffset
used 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.json
configuration prompt being disabled per user instead of per folder. PR #3399 - Fix
.cmd
and.bat
files not working forcompilerPath
on Windows. #3428 - Fix
compilerPath
with 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.json
squiggles when the configuration name has regex characters. PR #3478 - Use the
editor.tabSize
setting instead of2
when creating build tasks. PR #3486 - Fix some potential crashes on hover. #3509
- Fix for
NullReferenceException
occurring when"args"
is not specified inlaunch.json
. #3532 - Fix
Go to Definition
giving no results when IntelliSense doesn't find the symbol. #3549 - Fix configuration squiggles with trailing backslashes. PR #3573
- Fix
includePath
code 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.json
with single-line comments being overwritten whenBuild and Debug Active File
is used. #3327 - Fix an invalid
compilerPath
property getting added totasks.json
after doingConfigure Task
with 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
F5
debugging and theBuild and Debug Active File
context menu command. PR #3118, PR #3244 - Add AutoPCH support to reduce IntelliSense parsing time, with
C_Cpp.intelliSenseCachePath
andC_Cpp.intelliSenseCacheSize
settings. 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::Member
scoped symbol searches. #2484 - Fix signature help active parameter selection when parameter names are missing or subsets of each other. #2952
- Fix
--enable-pretty-printing
withgdb
when complex objects are used as keys in maps. #3024 - Fix IntelliSense-based
Go to Definition
fornoexcept
methods. #3060 - Render macro hover expansions as C/C++. #3075
- Enable completion after
struct
when manually invoked. #3080 - Add
C_Cpp.suggestSnippets
setting to disable language server snippets. #3083 - Show a prompt for changing
C_Cpp.updateChannel
toInsiders
. #3089- lh123 (@lh123) PR #3221
- Fix
compilerPath
not getting priority over thecompile_commands.json
compiler. #3102 - Fix Linux
compile_commands.json
compiler querying with relative paths. #3112 - Allow
*
inincludePath
to apply tobrowse.path
whenbrowse.path
is 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.json
if activation is too slow. #3160, #3176 - Fix
cppvsdbg
debugger 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_t
and__uint128_t
types. #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
#include
completion 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 Process
picker. #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 Definition
with overloads that return a template with a default param (e.g. vector) #2736 - Fix
Go to Definition
when__catch()
,_NO_EXCEPT_DEBUG
, or_LIBCPP_BEGIN_NAMESPACE_STD
is used. #2761, #2766 - Fix
Go to Definition
whenmethod(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
NullReferenceException
on 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.wordBasedSuggestions
tofalse
by default to prevent incorrect completions. #2943 - Fix IntelliSense-based
Go to Definition
for functions with function pointer parameters. #2981 - Fix
<
incorrectly triggering completions. #2985 - Fix recursive includes not adding paths used by
forcedInclude
files. #2986 - Fix crash when
//
is used in a recursiveincludePath
. #2987 - Fix compiler in
compile_commands.json
not taking precedence over theCpp.default.compilerPath
. #2793 - Fix
#include
completion not working for symlinks. #2843 - Fix IntelliSense-based
Go to Definition
forconst
methods. #3014 - Support
C_Cpp.updateChannel
for VS Code Exploration builds.
- Fix IntelliSense-based
Go to Declaration
when there's only a definition in a TU. #2743 - Fix
#include
completion 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 Definition
on overloads (in the same TU). #1071 - Fix inactive regions not being disabled when falling back to the Tag Parser. #2181
- Fix
#include
completion not working withcompile_commands.json
or custom configuration providers. #2242 - Fix IntelliSense failing if recursive includes removes all paths. #2442
- Fix incorrect IntelliSense errors with MinGW (stop using
-fms-extensions
by 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 Definition
falling back to the Tag Parser for definitions not in the TU. #2536, #2677 - Fix IntelliSense-based
Go to Definition
on the identifier of a definition with no declaration. #2573 - Fix IntelliSense-based
Go to Definition
not falling back to the declaration (in certain cases). #2574 - Fix IntelliSense-based
Go to Definition
going to the wrong location after edits are made. #2579 - Fix
Go to Definition
when theintelliSenseEngineFallback
isDisabled
and#include
s 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
-isystem
without a space after getting ignored incompile_comamands.json
. #2629 - Fix Insiders update channel installation bugs. #2636, #2685
- Fix IntelliSense-based
Go to Declaration
falling back to the Tag Parser if the definition is also in the TU. #2642 - Fix the
Disabled
intelliSenseEngine
setting not working with custom configuration providers. #2656
- Change the symbol database to update without needing to save. #202
- Enable IntelliSense-based
Go to Definition
for the current translation unit, including local variables and overloaded operators. #255, #979 - Improved the
Go to Definition
performance with large workspaces and files with lots of#include
s. #273 - Disable
Go to Definition
for invalid tokens, e.g. comments, strings, keywords, etc. #559 - Add
C_Cpp.updateChannel
setting 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
sh
failure when attaching to a remote Linux process. #2444 - Fix incorrect default
cl.exe
macro. PR #2468 - Fix multiple bugs with the symbols in the Outline view not updating correctly. #2477, #2500, #2504
- Add support for
workspaceFolderBasename
expansion. #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.intelliSenseEngine
setting value ofDisabled
(for users who only use the debugger). #785 - Add
C_Cpp.workspaceSymbols
setting with defaultJust My Code
to filter out system header symbols. #1119, #2320 - Add
C_Cpp.inactiveRegionForegroundColor
andC_Cpp.inactiveRegionBackgroundColor
settings. #1620, #2212- John Patterson (@john-patterson) PR #2308
- Add
gcc-x64
intelliSenseMode
and send the correct clang or gcc version to our parser, fixing various IntelliSense errors. #2112, #2175, #2260, #2299, #2317 - Make
Go to Definition
on 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-extensions
and-fno-ms-extensions
on 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
bash
by usingsh
instead. #569- Andy Neff (@andyneff) PR #2340
- Fix IntelliSense crash after hover or completion with
_Complex
types. #689, #1112 - Fix
files.exclude
not working to exclude non-workspace folders from symbol parsing. #1066 - Fix
Switch Header/Source
to 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
compilerPath
not working with${workspaceFolder}
. #1982 - Fix red flame getting stuck after modifying
c_cpp_properties.json
. #2077 - Don't add empty
windowsSDKVersion
if 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
includePath
code actions if compile commands or custom configuration providers are used. #2334 - Fix
C_Cpp.clang_format_path
not accepting environment variables. #2344 - Fix IntelliSense not working with non-ASCII characters in the WSL install path. #2351
- Filter out buggy 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 Help
button 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 Definition
for 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
windowsSdkVersion
toc_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.json
is 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
#include
code actions when no folder is open. #2225 - Fix
intelliSenseMode
with 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 Definition
not working for macros followed by.
or->
. #2245 - Fix
#include
autocomplete with Mac framework headers. #2251 - Fix debugging to support empty arguments for debuggee. #2258
- Fix
Go to Definition
bug (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
main
snippet.
- 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
includePath
orbrowse.path
is"**"
. #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 Definition
results 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
-
inps
call for ProcessPicker and RemoteProcessPicker. #2183
- Detect
compile_commands.json
and 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
#include
completion with headers in the same directory. #2031 - Fix non-header files outside the workspace folder not being parsed (i.e. so
Go to Definition
works). #2053 - Fix some crashes. #2080
- Support asm clobber registers on Windows. #2090
- Fix usage of
${config:section.setting}
. #2165 browse.path
now inheritsincludePath
if not set inc_cpp_properties.json
.- On Windows,
compilerPath
now populates with the guessedcl.exe
path, and theMSVC
include path is based on thecl.exe
path. - Fix files under a non-recursive
browse.path
being removed from the database. - Fix
*
not working inbrowse.path
with 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
miDebuggerArgs
in 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 Definition
on#include
not 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
includePath
is a file or the root drive. #1979, #1965 - Fix IntelliSense crash in
have_member_access_from_class_scope
. #1763 - Fix
#include
completion bugs. #1959, #1970 - Add
Debug
value 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.json
viaenv
. #1857, #368 - Stop automatically adding
/usr/include
to theincludePath
. #1819 - Fix wrong configuration being used if there are four or more. #1599
- Fix
c_cpp_properties.json
requiring write access. #1790 - Change file not found in
compile_commands.json
message 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.json
when "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
compileCommands
not being queried for includes/defines ifcompilerPath
isn't set on Windows. #1754 - Fix OSX
UseShellExecute
I/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
forcedInclude
configuration setting. #852 - Add
compilerPath
,cStandard
, andcppStandard
configuration 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.foreground
color. #1638 - Enable C++/CLI IntelliSense mode via adding the
/clr
arg 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_index
crash (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 file
errors. #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__=8
to default defines on Mac. #1510 - Added support for config variables to
c_cpp_properties.json
. #314- Joshua Cannon (@thejcannon) PR #1529
- Define
_UNICODE
by 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.associations
if it matches an existing glob pattern or ifC_Cpp.autoAddFileAssociations
isfalse
. #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.path
parsing, 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.workspaceParsingPriority
setting to enable using less than 100% CPU during parsing of workspace files. - Add
C_Cpp.exclusionPolicy
default tocheckFolders
to avoid expensivefiles.exclude
checking on every file.
- Fix stackwalk
NullReferenceException
. #1339 - Fix
-isystem
(or-I
) not being used incompile_commands.json
if there's a space after it. #1343 - Fix header switching from
.cc
to.hpp
files (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
-isystem
incompile_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 configuration
C++ 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
UnloadLanguageServer
command and theclang_format_formatOnSave
setting. - 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.json
configurations to use${workspaceFolder}
instead of${workspaceRoot}
. - Update how default initial configurations for
launch.json
are 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
limitSymbolsToIncludedHeaders
not 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.databaseFilename
inc_cpp_properties.json
changes. #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
#include
errors now suggest potential paths to add to theincludePath
based on a recursive search of thebrowse.path
. #846 - Browse database now removes old symbols when
browse.path
changes. #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
macFrameworkPath
not resolving variables.
- Fix a crash in IntelliSense for users with non-ASCII user names (Windows-only). #910
- Add
macFrameworkPath
toc_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.json
to better support environment variables. #1001 - Add
__LITTLE_ENDIAN__=1
to 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.associations
as the opposite "cpp"/"c" language afterGo to Definition
on a symbol. #884 - Remove completion results after
#pragma
. #886 - Fix a possible infinite loop when viewing Boost sources. #888
- Fix
Go to Definition
not 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.associations
if 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 Declaration
to returnGo to Definition
results 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
addWorkspaceRootToIncludePath
setting and instead make${workspaceRoot}
inbrowse.path
explicit. - Add
Show Release Notes
command. - 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.json
to 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.association
registers "c" language headers whenGo to Definition
is 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.json
are detected even if file watchers fail. - Update default IntelliSense options for MSVC mode to make Boost projects work better. #775
- Fix
Go to Definition
not working until allbrowse.path
files are re-scanned. #788
- Fix
System.Xml.Serialization.XmlSerializationReader threw an exception
when debugging on Linux. #792 - Fix escaping for
${workspaceRoot}
inlaunch.json
.
- Fix
x86_64-pc-linux-gnu
andx86_64-linux-gnu
paths missing from the defaultincludePath
.
- Revert the default
C_Cpp.intelliSenseEngine
setting 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.path
on Linux/Mac. #546 - Fix .clang-format file not being used on Linux/Mac. #604
- Stop setting the c/cpp
editor.quickSuggestions
to 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 Definition
results.
- Enabled first IntelliSense features based on the MSVC engine.
- Quick info tooltips and compiler errors are provided by the MSVC engine.
C_Cpp.intelliSenseEngine
property controls whether the new engine is used or not.C_Cpp.errorSquiggles
property controls whether compiler errors are made visible in the editor.
- Add
Go to Declaration
andPeek Declaration
. #271 - Fix language-specific workspace settings leaking into user settings. Microsoft/vscode#23118
- Fix
files.exclude
not being used in some cases. #485 - Fix a couple potential references to an undefined
textEditor
. #584 - Move changes from
README.md
toCHANGELOG.md
. #586 - Fix crash on Mac/Linux when building the browse database and
nftw
fails. #591 - Add
Alt+N
keyboard 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 Configurations
command when '#' is in the workspace root path. #625 - Fix clang-format
TabWidth
not being set when formatting with theVisual Studio
style. #630 - Enable
clang_format_fallbackStyle
to be a custom style. #641 - Fix potential
undefined
references when attaching to a process. #650 - Fix
files.exclude
not 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.quickSuggestions
dependent onC_Cpp.autocomplete
. #572- We recommend you close and reopen your settings.json file anytime you change the
C_Cpp.autocomplete
setting. 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
addWorkspaceRootToIncludePath
setting 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.exclude
orsearch.exclude
files - Go-to-definition now excludes symbols found in
files.exclude
files (i.e.search.exclude
paths 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
pipeTransport
functionality within thelaunch.json
to support pipe communications withgdb/lldb
such as usingplink.exe
orssh
. - Added support for
{command.pickRemoteProcess}
to allow picking of processes for remote pipe connections duringattach
scenarios. 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
sourceFileMap
property 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-format
is now automatically installed as a part of the extension and formats code as you type.clang-format
options have been moved from c_cpp_properties.json file to settings.json (File->Preferences->User settings).clang-format
fallback style is now set to 'Visual Studio'.- Attach now requires a request type of
attach
instead oflaunch
. - Support for additional console logging using the keyword
logging
insidelaunch.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.