Skip to content

Releases: microsoft/vscode-cpptools

0.17.6

02 Jul 21:38
863d264

Choose a tag to compare

  • 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 or browse.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 with var:: and var->, 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 - in ps 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

22 Jun 03:30
9604256

Choose a tag to compare

  • 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 inherits includePath if not set in c_cpp_properties.json.
  • On Windows, compilerPath now populates with the guessed cl.exe path, and the MSVC include path is based on the cl.exe path.
  • Fix files under a non-recursive browse.path being removed from the database.
  • Fix * not working in browse.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 in miDebuggerPath. #720

Instructions

Download the .vsix that matches your OS and run the "Install from VSIX" command in VS Code.

0.17.5-insiders

08 Jun 01:08
4b90e4c

Choose a tag to compare

0.17.5-insiders Pre-release
Pre-release
  • 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

01 Jun 00:47

Choose a tag to compare

  • 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

22 May 23:05
d786b0f

Choose a tag to compare

  • 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

22 May 02:29

Choose a tag to compare

0.17.2-insiders Pre-release
Pre-release
  • 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

17 May 22:00
c9473b2

Choose a tag to compare

  • 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

07 May 23:54
7ea6122

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

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

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