Releases: microsoft/vscode-cpptools
0.17.7
- 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 for debugging to support empty arguments for debuggee. #2258
- Fix
Go to Definition
bug (missing symbols outside the workspace). #2281 - Add a setting to silence configuration provider warnings. #2292
- Fix for debugging async Visual C++ causing debugger to hang.
- Fix
main
snippet.
Known Issues
- Due to bug #2169 from the previous release, you may still experience failures until all the dangling, old processes are killed (or restarting your machine), because the processes maintain a lock on the same database file. See #2296 for one case of this.
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.7-insiders
- 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 and stuck red flame. #2075, #2077, #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 variables not resolving in
macFrameworkPath
. #2234 - Fix
Go to Definition
not working for macros followed by.
or->
. #2245
Known Issues
This release had some regressions (unreported) that were fixed in the final 0.17.7 release.
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.6
- 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
NOTE: This wasn't fixed for system frameworks on Mac. - 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
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.5
- 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 for -break-insert main returning multiple bind points. #729
- Use -- instead of -x for gnome-terminal. #733
- Added
miDebuggerArgs
in order to pass arguments to the program inmiDebuggerPath
. #720
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.5-insiders
- Change inactive regions from gray to translucent. #1907
- Improve performance of recursive includes paths. #2068
- Fix #include completion with headers in the same directory. #2031
- Support asm clobber registers on Windows. #2090
- Fix some crashes. #2080
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.4
- Fix infinite loop (caused by deadlock) when using recursive includes. #2043
- Stop using recursive includes in the default configuration.
- 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
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.3
- 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
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.2-insiders
- 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
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
NOTE
This vsix has the unintended version of 0.17.2 instead of 0.17.2-insiders, so our actual 0.17.2 was bumped to 0.17.3.
Status
This is the build we plan to release tomorrow, but we still need to do a final build and test pass (we found/fixed a last minute bug that delayed the official release).
0.17.1
- Improve performance of 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 for loggingLevel (previously the hidden value "6").
- Fix C++17 features not being fully enabled with msvc-x64 mode. #1990
- Fix IntelliSense interprocess deadlocks. #1407, #1777
0.17.0
Notable features in this release
Autocomplete for #include
(#802)
If you type a "
or <
after the #include
keyword, you will get suggestions for header files that you can include. The suggestions are computed based on your "browse.path"
and "includePath"
.
- NOTE: We don't inspect
"compileCommands"
to provide the information for this feature yet.
Configuration Improvements (#1338)
Better support for system include paths if "compilerPath"
is set
If you set the "compilerPath"
property in your c_cpp_properties.json configurations, you no longer need to manually add the system include paths or defines to the configurations. We will implicitly add them to "includePath"
, "defines"
, and "browse.path"
for you. In other words, we will not write them to c_cpp_properties.json, but the language server will use them.
Better support for "compilerPath"
on Windows (#1845, #1736)
In c_cpp_properties.json you can directly address your WSL compiler by using the linux path and we will discover the system include path for you. If you have multiple distros installed, we pick the one marked as Default when you run wslconfig.exe /l
For example:
{
"name": "WSL",
"compilerPath": "/usr/bin/gcc",
...
}
We also detect Cygwin now and will transform the system include path the compiler provides to one that Windows understands.
Setting default values for configuration properties (#368, #410, #1229, #1270, #1404)
New settings have been added to the extension that allow you to set defaults for all of the properties in c_cpp_properties.json configs so that you don't have to set the same values over and over if most of your projects have similar configurations.
Support for WSL on Windows builds 17110 and higher (#1694)
Starting with Windows build 17110, case-sensitive folders were turned on for WSL installations by default. The extension has been updated to work with case-sensitive files on Windows when a WSL configuration is detected.
Recursive includePath syntax (#897)
You can now use recursive paths when configuring IntelliSense. Using two asterisks **
at the end of a path instructs the extension to do a recursive search for includes starting from that folder:
"includePath": "${workspaceFolder}/**"
We are still working on optimizations to improve the experience in large projects with hundreds of folders, but initial support is available in this release (as a result, the IntelliSense features may take longer to be available after opening/editing a file, i.e. the red flame). Also, newly added folders with headers are not picked up until the workspace is reloaded.
Code snippets
We have added a few code snippets to the extension. They will show up in the auto-complete list as you are writing code and they can be used to insert boilerplate code for common tasks like declaring a class, writing a for loop, etc.
Vcpkg integration
Vcpkg is a cross-platform package manager for C++. We will automatically add Vcpkg's header download location to the include path for opened folders that have not generated a c_cpp_properties.json configuration file yet.
Updated Visual Studio Windows Debugger
Updated the "cppvsdbg" used (i.e. when compiling with cl.exe).
We also fixed the following issues: #1559, #1577, #1771, #1782, #1783, #1790, #1819, #1873, #1890