Skip to content

Releases: microsoft/vscode-cpptools

0.17.0

07 May 23:54
7ea6122
Compare
Choose a tag to compare

April 2018 Update

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

03 May 23:57
Compare
Choose a tag to compare
0.17.0-insiders2 Pre-release
Pre-release

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

24 Apr 20:10
Compare
Choose a tag to compare
0.17.0-insiders Pre-release
Pre-release

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

31 Mar 00:54
88a0494
Compare
Choose a tag to compare
  • Fix random deadlock caused by logging code on Linux/Mac. #1759
  • Fix compiler from compileCommands not being queried for includes/defines if compilerPath isn't set on Windows. #1754
  • Fix OSX UseShellExecute I/O bug. #1756
  • Invalidate partially unzipped files from package manager. #1757

0.16.0

29 Mar 05:30
3bbfed6
Compare
Choose a tag to compare

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, and cppStandard 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 the compilerPath. #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

23 Mar 20:37
1b218b2
Compare
Choose a tag to compare
0.16.0-insiders2 Pre-release
Pre-release

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, and cppStandard 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 the compilerPath. #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

09 Mar 00:18
263b69e
Compare
Choose a tag to compare
0.16.0-insiders Pre-release
Pre-release

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, and cppStandard 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

15 Feb 22:20
e5976d2
Compare
Choose a tag to compare
  • 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
  • Define _UNICODE by default on Windows platforms. #1538

0.15.0-insiders

05 Feb 21:18
Compare
Choose a tag to compare
0.15.0-insiders Pre-release
Pre-release
  • 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

17 Jan 22:43
Compare
Choose a tag to compare

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.