Skip to content

Releases: microsoft/vscode-cpptools

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

0.12.2

17 Aug 22:12
Compare
Choose a tag to compare

0.12.1

18 Jul 23:30
Compare
Choose a tag to compare

July 2017 Update

  • Fix Tag Parser features not working with some MinGW library code.
  • Fix a symbol search crash.
  • Fix an IntelliSense engine compiler crash.
  • Fix Go to Declaration to return Go to Definition results if the declarations have no results.
  • Fixes for language server issues: #870, #872, #875,
  • Deprecate addWorkspaceRootToIncludePath setting and instead make ${workspaceRoot} in browse.path explicit.
  • Add Show Release Notes command.
  • Add Edit Configurations... command to the Select a Configuration... dropdown.
  • Update Microsoft Visual C++ debugger to Visual Studio 2017 released components.
    • Fix issue with showing wrong thread. #550
    • Fix issue with binaries compiled with /FASTLINK causing debugger to hang. #484
  • Fix issue in MinGW/Cygwin debugging where stop debugging causes VS Code to hang. microsoft/MIEngine#636

0.12.0

28 Jun 00:13
Compare
Choose a tag to compare

June 2017 Update

  • The default IntelliSense engine now provides semantic-aware autocomplete suggestions for ., ->, and :: operators. #13
  • The default IntelliSense engine now reports the unresolved include files in referenced headers and falls back to the Tag Parser until headers are resolved.
    • This behavior can be overridden by setting "C_Cpp.intelliSenseEngineFallback": "Disabled"
  • Added "C_Cpp.intelliSenseMode" setting to allow switching between MSVC and Clang modes. #710, #757
  • A crashed IntelliSense engine no longer gives the popup message, and it automatically restarts after an edit to the translation unit occurs.
  • Fix the IntelliSense engine to use "c" mode if a C header is opened before the C file.
  • Fix a bug which could cause the IntelliSense engine to not update results if changes are made to multiple files of a translation unit.
  • Auto files.association registers "c" language headers when Go to Definition is used in a C file.
  • Downloading extension dependencies will retry up to 5 times in the event of a failure. #694
  • Changes to c_cpp_properties.json are detected even if file watchers fail.
  • Update default IntelliSense options for MSVC mode to make Boost projects work better. #775
  • Fix Go to Definition not working until all browse.path files are re-scanned. #788