For instructions on installing the Dart or Flutter extensions, go here.
Preview: Flutter Outline
#605/#961: Enabling the setting
"dart.previewFlutterOutline": true will add a new Outline view to the side bar that includes the hierarchy of Flutter widgets in your build methods. Selecting a node in the tree will jump to the code that creates the widget and moving around the editor will select the appropriate node in the tree. Widget refactors are available on the context menu.
Note: The context menu will only appear if you first left-click the node to select it before right-clicking. This is a known limitation that we hope to address in future.
Improved Device Selector
#1809: The device selector has been improved and now contains both running devices and offline emulators in a single list. This list is always accessible from the device manager shown in the status bar and will also be shown if you try to launch an application without an appropriate device selected.
The list updates as devices are connected/disconnected and will be filtered to show only devices that are valid for projects in the current workspace.
- #1867: When a device disconnects, a new device will only be auto-selected if it is valid for the current workspace.
- #1863: Device selector will update automatically if devices/emulators are connected/disconnected/launched while it is visible.
- #1781: Clicking the device in the status bar will always open the device selector (and include emulators) instead of only when more than one device is available.
- #1768/#1810: Filter device selector when running projects to only devices that are available for that project.
- #1864: Closing the device selector without selecting a device will no longer sometimes launch if a new device was connected while the selector was visible.
Preview: Improved Flutter Errors
#1870: Enabling the setting
dart.previewFlutterStructuredErrors activates a new experimental feature for showing more concise error messages from Flutter. A summary of the error will be shown in red, followed by detailed information on how to resolve the issue (where available). Stack traces will show frames from your own code brighter than those from framework or SDK code.
Please try this feature out and send feedback via GitHub.
Other Flutter Changes
- #1881: The “program” launch configuration attribute is now supported for “attach” configs.
- #1568: Adding a Flutter project to an existing multi-root workspace (with File -> Add Folder to Workspace) will now automatically activate Flutter functionality. Removing the last Flutter project workspace folder will drop back to Dart-only mode.
- #1848: Closing VS Code will no longer sometimes send multiple
app.stoprequests to Flutter which may result in processes not being cleaned up correctly.
- #1892: If Flutter is unable to download the Dart SDK due to not having the required version of PowerShell on Windows, a suitable error will now be surfaced in the UI.
- The Flutter: New Project From Docs command has been renamed to Flutter: Open Widget Sample to better reflect its intent to provide working code sample code and not a template for new projects.
- #1872: Errors in the Problems view may new include links to other locations (for example where a definition is duplicated). Note: This requires support from the Dart SDK that has not yet made it to the stable channel.
- #1835: Enum values will no longer be duplicated in code completion multiple times when exported from multiple libraries but one library has already been imported.
- #1849/#1869/#1824: Log events written with
log()function will now show in the debug console. This can be disabled with the
- #1845: Colors of text used in the debug console should now work better in a wider variety of light themes.
- #1767: Evaluation requests in debug views (hover/watch/evaluate) are now sent concurrently and should complete much faster.
Test Runner Changes
- #1823: Deleted/renamed tests are now updated after using the Dart: Run All Tests command.
#1677/#435: Using Dart and Flutter in VS Code’s remote workspaces is now possible (for example Docker, WSL or SSH). Remote workspaces are still a preview VS Code feature so there may be issues, but please do open issues if you find things that don’t work correctly.
- #1757: When running in a remote workspace, launching DevTools will fall back to launching the default local browser. Note: DevTools may not work in non-Chrome-based browsers and will still fail to launch if Chrome is not found when running locally.
- #1738: Functionality that does not work when running remotely (for example launching emulators or opening Xcode) is disabled when running in a remote workspace.
- #1830: The error message shown when DevTools fail to launch due to Chrome not being installed now mentions that it was trying to launch Chrome.
- #1819: Startup performance has been improved that should further reduce “Extension causes high cpu load” warnings for slow filesystems and large folders.
Some feature requests and fixes require new features and fixes in upstream projects like VS Code and LSP which use counts of 👍s on those issues to help gauge demand. The Dart-Code website now lists some of the most significant upstream issues with a description of the feature/fix they would enable. Please consider reviewing this list and adding your 👍 to any GitHub issues relevant to features you’d like to see!