For instructions on installing the Dart or Flutter extensions, go here.
v3.27.2 2021-10-11
- #3603: The Dart: Run All Tests command will no longer sometimes add test results to the wrong file in the tree depending on the timing of tests in Flutter projects.
v3.27.1 2021-10-08
- #3594: The “Run Tests” button in the VS Code test runner will no longer sometimes only show results for the first suite that ran in the tree.
v3.27.0 2021-10-04
Test Runner Improvements
#3574/#3572: Integration with the new VS Code Test Runner is now enabled by default. Some additional improvements have been made to the integration.
The test tree previously only populated from the file contents when it was first opened, and subsequently only when tests ran. Now the tree updates periodically as the file is modified, including removing tests that have been removed from the file without needing to re-run the whole file or clear the test results.
Dynamic tests (those with variables in their name or using features like Flutter testWidget
s variants) are now grouped under a parent node using the name of the test from the editor. As well as being easier to manage, these can now be removed from the tree if the test definition is renamed rather than remaining until you re-run the entire file.
Failed tests will now show their failure message with an expandable Peek window containing the output and history for the test (this requires VS Code 1.61).
Running multiple tests from a gutter icon/tree node are now grouped together by suite so that they run more quickly rather than a seperate debug session per-test.
Flutter
- #3580: Running commands like Flutter: New Project in an empty workspace will now correctly initialize the Flutter SDK automatically.
- #3564: The colour of the Flutter UI Guides (preview) can now be controlled with the
"dart.flutterUiGuides"
color in the"workbench.colorCustomizations"
setting. - #3585: Flutter UI Guides (preview) are now offset by 2px from VS Code’s indent guides to avoid obscuring them.
- #3554: The various Flutter: New XYZ Project commands have been folded together into a single Flutter: New Project command that lists the available templates. Included in this list is the new “skeleton” project template added in Flutter 2.5.0.
- #3552: If a platform has been disabled (for example by running
flutter config -no-enable-android
) the “Enable Android for this project” option in the device manager will now offer to enable it globally before enabling it for the project.
Debugger
- #3576: Running Dart scripts with no specific folder open in VS Code has been improved. Instead of requiring a
launch.json
or the script to be inside abin
,lib
ortool
folder, loose files will just be run directly when pressingF5
or clicking the Play/Debug icons on the editor title bar.
Editor
- #3546: Nested multiline comments will longer cause the following parts of the document to be colored as comments.
- #3236: A new setting
"dart.normalizeFileCasing"
has been added that will normalize all file casing when interacting with the analyzer. This may resolve issues where the thefile_names
lint still triggers errors because VS Code continues to use the original casing in its API. This setting is disabled by default because there is a small performance hit to hitting the filesystem to find the natural case of a file.
Commands
- #3561: The Dart/Flutter: New Project commands now default to the folders last used when invoking these commands.
- #3545: All commands/actions that call
pub
will now usedart pub
since the top levelpub
command is being deprecated.
Docs / website
- #3578: Documentation for how to pass
--dart-define
(Flutter) and--define
(Dart) in launch configurations has been updated/improved.
Other
- #3577: The
"dart.useKnownChromeOSPorts"
setting now defaults tofalse
as it should no longer be required. This setting will be removed in a future update so if you find you need to re-enable this, please file an issue on GitHub with details.
Features Enabled with Future SDKs
These features rely on changes to the Dart/Flutter SDKs that have not yet been released to stable channels. They will show up automatically when you update your SDK in future (or if using development channels depending on the exact version).
Renaming Files with Classes
#3354: A new setting "dart.renameFilesWithClasses"
has been added that allows automatic renaming of files (and updating import
s) when classes are renamed if the class/filename match. The allowed options are "never"
, "prompt"
and "always"
. "never"
is the default and disables renaming. "prompt"
will ask on each rename, and "always"
will rename without prompting.
For the rename to work, the class name and the filename must match (apart from differences in PascalCase
for class names and snake_case
for files).
New TODO Comments Types
#2364: In addition to TODO
, several new comment prefixes are recognised and generate diagnostics - HACK
, FIXME
and UNDONE
. These can be controlled with the analysis_options.yaml
file.
Editor Changes
- #3555: Code completion will no longer show duplicates if an analysis server plugin is enabled that is interested in Dart files.
- #3542: The
Assign value to new local variable
code action will usefinal
instead orvar
when theprefer_final_locals
lint is enabled.
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!