For instructions on installing the Dart or Flutter extensions, go here.
v3.72.2 2023-09-06
- #4724: The
package:flutter
source 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-branch
which prevented usingflutter channel
to 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.yaml
no longer cause the project to be treated as a Flutter project. - #4677: A new command
flutter.getSelectedDeviceId
is available which returns the ID of the currently selected Flutter device. This can be used intasks.json
to pass the device ID to external tasks.
Testing
- #4681: Test failures in
tearDownAll
are no longer attributed to the correct line but wrong file whentearDownAll
is called from a file other than the one containing the test. - #4676: Folders excluded via
analysis_options.yaml
are now treated like those indart.analysisExcludedFolders
, including being excluded from the test runner.analysis_options.yaml
is the recommended way to exclude files/folders nested inside a Dart project anddart.analysisExcludedFolders
is recommended for excluding larger folders that are not nested inside a Dart project for performance reasons (for example to excludenode_modules
folders 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
example
folders to have their packages fetched twice. - #4708: When using the SDK switcher, paths written into
dart.sdkPath
anddart.flutterSdkPath
will 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
part
files. 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 References
now works correctly on class declarations. - #4655: When using
editor.codeActionsOnSave
to 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 expression
snippet 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!