For instructions on installing the Dart or Flutter extensions, go here.
v3.72.2 2023-09-06
- #4724: The
package:fluttersource code from the Flutter SDK repository is no longer incorrectly detected as a plain Dart package (which would prevent running tests).
v3.72.1 2023-09-04
- #4713: Extension no longer fails to activate with “Cannot access ‘domainRegex’ before initialization” when running in a workspace that provides a
remoteName.
v3.72.0 2023-09-04
Move to File Refactoring
#4518: When using the latest Flutter release (v3.13), the Move to File refactoring is available without setting any experimental flags.

Improved “Flutter: New Project” Template Selection
#4706: Project templates in the Flutter: New Project command have been updated to make it clearer which templates are applications and which are other project types.

Flutter
- #4686: Cloning the Flutter SDK as part of the “No SDK Found” flow no longer uses
--single-branchwhich prevented usingflutter channelto change channel. - #4685: Clicking the Hot Reload button on the debug toolbar will now automatically save all files before issuing the hot reload.
- #4702: Dart projects that reference the Flutter SDK in comments in
pubspec.yamlno longer cause the project to be treated as a Flutter project. - #4677: A new command
flutter.getSelectedDeviceIdis available which returns the ID of the currently selected Flutter device. This can be used intasks.jsonto pass the device ID to external tasks.
Testing
- #4681: Test failures in
tearDownAllare no longer attributed to the correct line but wrong file whentearDownAllis called from a file other than the one containing the test. - #4676: Folders excluded via
analysis_options.yamlare now treated like those indart.analysisExcludedFolders, including being excluded from the test runner.analysis_options.yamlis the recommended way to exclude files/folders nested inside a Dart project anddart.analysisExcludedFoldersis recommended for excluding larger folders that are not nested inside a Dart project for performance reasons (for example to excludenode_modulesfolders from non-Dart projects in the workspace). - #4710: The spinner indicating a test is running should no longer sometimes persist in the gutter even after the test run completes.
Commands
- #4709: The Get Packages commands will no longer cause any nested
examplefolders to have their packages fetched twice. - #4708: When using the SDK switcher, paths written into
dart.sdkPathanddart.flutterSdkPathwill now use~and forward slashes when the path is inside your home directory to help share config between teams (if they agree to store versioned SDKs in the same location). - #4698: A new command Dart: Copy VM Service URI to Clipboard will copy the VM Service URI of the current debug session to the clipboard.
- #4697: The Dart: Open Observatory command is now marked as deprecated and will be removed in a future update once removed from the SDK.
Editor
- #4701: Searching the Workspace Symbols list has been fixed when using the legacy analyzer protocol (
dart.useLegacyAnalyzerProtocol). The legacy protocol is not recommended (and will eventually be removed) - if you feel you need to use it please file an issue with the details. - #4631: The error “LanguageStatusItem with id ‘dart.analysisServer’ ALREADY exists” will no longer appear in the console sometimes when using the legacy analyzer protocol.
- #4583: A recent VS Code update prevented imports from being added automatically when completing code in
partfiles. This change was reverted and these imports should work again.
Features/Fixes Enabled with Future SDKs
The following items depend on changes to the Dart/Flutter SDKs that have not yet been released to stable channels. Many are already available in the current beta channels though some are currently only available on bleeding-edge builds and will show up in future beta/stable SDK releases.
- #4640: Hovering over a wildcard pattern now shows its static type.
- #2462: Code completion now shows the signatures/return types for all items and not only the selected item.
- #4598: Breakpoints should no longer sometimes disappear when adding/removing breakpoints when there are multiple isolates running.
- #4668:
Find All Referencesnow works correctly on class declarations. - #4655: When using
editor.codeActionsOnSaveto runsource.fixAll, unused parameters will no longer be removed. They will still be removed if you invoke the Fix All command explicitly. - #4635: The
switch expressionsnippet no longer shows up when completing named arguments. - #4619: Go to Definition now works when you have a selection that ends at the start of a set of type arguments.
- #4564: Extract Method now correctly marks functions extracted from function expressions in static fields as
static.
Upstream Issues
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!