Releases: microsoft/vscode-cpptools
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
includePathorbrowse.pathis"**". #2174 - Fix IntelliSense for WSL without g++ installed. #2178
- Fix random IntelliSense (completion) failures due to edits being delayed. #2184
- Fix database deletion failure with non-ASCII file paths on Windows. #2205
- Fix
Go to Definitionresults withvar::andvar->, and filter out invalid constructor results. #2207 - Fix a performance bug with recursive includes.
- Fixed a CPU usage problem on Mac related to system frameworks parsing.
- Keep the IntelliSense process around for 10 seconds after a file is closed in case it's needed again.
- Added an API so build system extensions can provide IntelliSense configurations for source files. More details at npmjs.com.
- Fix automatic argument quoting when debugging with gdb/lldb to include when the argument has a '(' or ')' in it. Also escape existing '"' symbols.
- Removed
-inpscall for ProcessPicker and RemoteProcessPicker. #2183
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
0.17.5
- Detect
compile_commands.jsonand show prompt to use it. #1297 - Change inactive regions from gray to translucent. #1907
- Improve performance of recursive includes paths. #2068
- Fix IntelliSense client failure due to
No args provider. #1908 - Fix
#includecompletion with headers in the same directory. #2031 - Fix non-header files outside the workspace folder not being parsed (i.e. so
Go to Definitionworks). #2053 - Fix some crashes. #2080
- Support asm clobber registers on Windows. #2090
- Fix usage of
${config:section.setting}. #2165 browse.pathnow inheritsincludePathif not set inc_cpp_properties.json.- On Windows,
compilerPathnow populates with the guessedcl.exepath, and theMSVCinclude path is based on thecl.exepath. - Fix files under a non-recursive
browse.pathbeing removed from the database. - Fix
*not working inbrowse.pathwith WSL. - Fix for -break-insert main returning multiple bind points. #729
- Use -- instead of -x for gnome-terminal. #733
- Added
miDebuggerArgsin 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
#includenot 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
0.17.0-insiders2
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
NOTE: This VSIX has a dependency on VS Code version 1.22. If you try to install one of these VSIX packages with an earlier version of VS Code, the extension will not load.
Notable features in this release
All of the features listed in 0.17.0-insiders, plus:
Support for WSL on Windows builds 17110 and higher
Starting with Windows build 17110, case-sensitive folders were turned on for WSL installations by default. This broke most of the extension's features and we have resolved most of them. If you still see problems with WSL in the latest Windows builds, please let us know. We are still working on an issue with switching configurations between WSL and non-WSL. Reloading the VS Code window after changing to a WSL config will resolve that issue.
Recursive includePath syntax
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.
Updated Visual Studio Windows Debugger
Updated the "cppvsdbg" used (i.e. when compiling with cl.exe).
0.17.0-insiders
Instructions
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
NOTE: This VSIX has a dependency on VS Code version 1.22. If you try to install one of these VSIX packages with an earlier version of VS Code, the extension will not load.
Notable features in this release
Autocomplete for #include
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.
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
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
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. We will write documentation for this before the final release, but more details can be found in issue #1338