Releases: microsoft/vscode-cpptools
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
0.16.1
0.16.0
Instructions: Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
- 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
0.16.0-insiders2
Instructions: Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
- 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
0.16.0-insiders
Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.
- 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
This is the March 9th update to Insiders, which fixed a couple bugs with the March 8th version (attach debugging and forcedInclude crash).
Known issues (that will be fixed in our next release): Global :: doesn't work, compilerPath doesn't work on Windows with gcc/clang-based compilers and WSL, and command line args are not addable to the compilerPath.
0.15.0
- 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, #1461
- 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
0.15.0-insiders
- Add colorization for inactive regions. #1466
- Fix 3 highest hitting crashes. #1137, #1337
- Update IntelliSense compiler (bug fixes and more C++17 support). #1067, #1313, #1461
- Fix Go to Symbol in File... being slow for large workspaces. #1472
- Fix duplicate cannot open source file errors. #1469
- Fix error popup appearing with non-workspace files when using compile_commands.json. #1475
- Add more macros to cpp.hint (fixing missing symbols).
http://landinghub.visualstudio.com/sign-up-for-the-vs-code-c/c-insiders-program
0.14.6
Bug fixes and workspace parsing performance improvements:
https://blogs.msdn.microsoft.com/vcblog/2018/01/17/visual-studio-code-cc-extension-jan-2018-update/
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 if C_Cpp.autoAddFileAssociations is false. #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 to checkFolders to avoid expensive files.exclude checking on every file.