Skip to content

Releases: microsoft/vscode-cpptools

0.14.5

19 Dec 11:11
0fac6a3
Compare
Choose a tag to compare
  • Fix for stackwalk NullReferenceException. #1339
  • Fix for -isystem (or -I) not being used in compile_commands.json if there's a space after it. #1343
  • Fix for header switching from .cc to .hpp files (and other cases). #1341
  • Fix reload prompts not appearing in debugging scenarios (after the initial installation). #1344
  • Add a "wait" message when commands are invoked during download/installation. #1344
  • Prevent blank "C/C++ Configuration" from appearing when debugging is started but the language service is not. #1353

v0.14.5-insiders

13 Dec 00:45
0fac6a3
Compare
Choose a tag to compare
v0.14.5-insiders Pre-release
Pre-release
Merge pull request #1336 from Microsoft/ronglu-edit

updated links

0.14.4

12 Dec 00:37
1834e13
Compare
Choose a tag to compare

December 2017 Update

We added support for offline installation, 32-bit Linux, and Linux distros without glibc 2.18 (e.g. CentOS, RHEL, Scientific Linux). The list of issues fixed is:

  • Enable the language service processes to run without glibc 2.18. #19
  • Enable the language service processes to run on 32-bit Linux. #424
  • Fix extension process not working on Windows with non-ASCII usernames. #1319
  • Fix IntelliSense on single processor VMs. #1321
  • Enable offline installation of the extension. #298
  • Add support for -isystem in compile_commands.json. #1156
  • Remember the selected configuration across launches of VS Code. #1273
  • Fix 'Add Configuration...` entries not appearing if the extension wasn't previously activated. #1287
  • Add (declaration) to declarations in the navigation list. #1311
  • Fix function definition body not being visible after navigation. #1311
  • Improve performance for fetching call stacks with large arguments. #363

0.14.3

28 Nov 00:41
20d89ca
Compare
Choose a tag to compare

This release addresses multiple community-reported issues

  • Fix for disappearing parameter hints tooltip. #1165
  • Fix for parameter hints only showing up after the opening parenthesis. #902, #819
  • Fix for customer reported crashes in the TypeScript extension code. #1240, #1245
  • Fix .browse.VC-#.db files being unnecessarily created when an shm file exists. #1234
  • Fix High CPU load on unsupported Linux distros. #1249
  • Fix language service to only activate after a C/C++ file is opened or a C/Cpp command is used (not onDebug).
  • Fix database resetting if shutdown was blocked by an IntelliSense operation.
  • Fix deadlock that can occur when switching configurations.
  • Fix browse.databaseFilename changing not taking effect until a reload.

0.14.2

09 Nov 21:37
20d89ca
Compare
Choose a tag to compare

Shortly after releasing 0.14.1 we noticed a spike in our extension activation telemetry. It turned out that a few users were attempting to activate the extension on a Linux platform that we don't support yet and VS Code was repeatedly trying to activate our extension after it crashed. We pushed a patch for the telemetry bug to reduce the amount of network traffic those users would see.

0.14.1

09 Nov 17:09
fbaca72
Compare
Choose a tag to compare

November 2017 Update

Support for multiple root folders (#1070)

VS Code is releasing support for opening multiple folders in the same window starting with the 1.18 stable build (Insiders had access to this feature sooner). In version 0.14.1 we have support for this feature working, but the following issues may be encountered:

  • Opening parent/child folders may not produce correct results. For example, if folder B is a subfolder of A and both A and B have been opened in VS Code, incorrect behavior may be noticed when files under folder B are opened since the extension must pick one of the two folders to "own" the files under B. We currently pick the folder that was opened first, so keep that in mind if you set up your multi-root workspace this way.
  • When a multi-root workspace is open (e.g. 2 or more folders have been opened), the default storage location for the code browsing database changes. VS Code has not yet provided an API to allow us to reuse the folder's previous storage location so you will notice that the extension will re-index your folders if you did not supply a browse.databaseFilename in your c_cpp_properties.json file. However, we will only index one folder at a time so as not to consume all of your CPU resources. The "active" folder (the owner of the currently focused file) will be given permission to index and the others will be paused until they become active.
  • Multi-root workspaces have a new layer to which settings can be applied. The settings should apply to all folders opened in the workspace, but we are still investigating an issue related to this. For the time being, the extension only respects "User" and "per-folder" settings when a multi-root workspace is open.

Other notable changes/bug fixes

We have fixed our issues with the extension holding a lock on file handles preventing users from saving their edited files. microsoft/vscode#27329, #1040

We have added commands that allow users to pause and resume the thread that indexes all of your folder's files (for code browsing/navigation). They are available in VS Code's command palette or by clicking on the database icon in the lower right corner of the status bar. #1141

You should no longer get a second "reload window" prompt when installing/updating the extension unless you have a launch.json file active.

0.14.0

19 Oct 17:12
Compare
Choose a tag to compare

October 2017 Update

Support for compile_commands.json (#156)

In this release we added support for specifying includes and defines via compile_commands.json. In your c_cpp_properties.json file, add "compileCommands": "/path/to/compile_commands.json" to your configuration and the extension will use the include paths and defines listed in the compile commands database rather than the "includePath" and "defines" in c_cpp_properties.json

If you open a file in your workspace that does not have an entry in the compile commands database, the extension will notify you and use the "includePath" and "defines" in your c_cpp_properties.json instead.

Indexing improvements (#1106)

  • The extension now only scans directories once even if duplicate or overlapping paths are specified in the "browse.path" setting.
  • A new icon for indexing has been created that will show the current status of indexing when the mouse cursor hovers over it. The flame icon is now only used when the "Default" IntelliSense engine is doing an expensive operation.
    • (Note that the denominator currently shows the number of files discovered in all paths, but only the files in your workspace and any dependent headers will actually be parsed)

      new icon

Logging to the Output window

We added logging to the Output window. This replaces the need to set environment variables and log to a file as documented here. To change the verbosity, edit the "C_Cpp.loggingLevel" setting. The default behavior is to only display errors encountered by the extension.

Other notable additions/fixes

We fixed the highest hitting crashes in the extension that caused IntelliSense features to appear to be hung. #1076

We fixed an issue where the indexer was parsing all header files discovered on the system (heavy CPU usage)when a workspace folder was not open. #1109

0.13.1

05 Oct 21:40
Compare
Choose a tag to compare

We released a stability patch today to address some of the highest hitting crashes in the extension, some of which were introduced by version 0.13.0.

Fixes for issues #558, #981, #1040, #1060, and #1076 were also included in this patch.

0.13.0

25 Sep 22:59
Compare
Choose a tag to compare

September 2017 Update

Setting up the include path for IntelliSense just got easier. When you open a folder, the extension will recursively search for potential include paths that match the header files your code is using based on the paths set by the browse.path setting in c_cpp_properties.json and give you suggestions to help you set up the include path. Click on the green squiggles under #include statements and a light bulb will appear and offer suggestions of paths that will allow IntelliSense to resolve the included file.

lightbulbs

Reference highlighting support is now provided by the extension. Moving the text cursor over a symbol in the editor will highlight matching symbols in the same file. When the IntelliSense engine is set to "Default", only matching symbols will be highlighted (as shown below). When the IntelliSense engine is set to "Tag Parser", all exact word matches will be highlighted. This feature corresponds to VS Code's editor.occurrencesHighlight setting. Selecting a range of text will continue to invoke VS Code's editor.selectionHighlight behavior.

highlighting

When you set the IntelliSense engine to "Default" you will now start to see parameter hints only for the functions that match the context in which the function is invoked. Hints will also be presented for template arguments. Previously, the extension returned hints for all functions with a matching name, regardless of context.

parameterhints

  • The IntelliSense database now correctly removes symbols for files in paths that have been removed from the browse.path setting. #262
  • Multiline comments now automatically insert * on new lines when the comment starts with /**. #579
  • When the IntelliSense engine is set to "Tag Parser", Go to definition, completion, and parameter hints for partially scoped members now works as expected. #635
  • macFrameworkPath now correctly resolves variables and ~. #970

0.12.3

17 Aug 23:53
Compare
Choose a tag to compare

August 2017 Update

We fixed a regression in the parsing code related to file paths that contain multi-byte Unicode characters. The bug caused the browse database to be incomplete, which broke goto definition/declaration. #958

We also added a command to reset the browse database. In the event that you change the "browse.path" setting in c_cpp_properties.json, the browse database may not remove some of the symbols that were added previously. This new command allows you to purge all symbols from the database and reparse the workspace. #464, #601

  • Additional fixes for language server issues: #943, #944