- Fix crash on Windows when 8.3 filenames are used. #2453, #3104
- 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 - 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 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.