For instructions on installing the Dart or Flutter extensions, go here.
v3.38.2 2022-04-08
- #3916 v3.38.2 resolves an issue where debug sessions could terminate prematurely after upgrading to VS Code 1.66 if breakpoints were set and the application spawns additional isolates.
v3.38.1 2022-04-05
v3.38.1 was a release of the Flutter extension only. It fixes an error reported in the VS Code developer tools console while activating the extension.
v3.38.0 2022-04-04
Flutter
- #3859: Projects with no valid target platforms will no longer show as if every target platform is valid.
- #3886: Several pick-lists in the UI that previously showed duplicates when there are multiple project folders open have been fixed.
- #3881: The
dart.flutterUiGuides
color contribution now provides a default color for high contrast light themes. - #3879: Invalid values in the Flutter SDK version file no longer result in the extension failing to activate.
- #3877: The Wrap with widget code action no longer shows literal snippet placeholders with
$0
and$1
when using new (pre-release) SDK versions. - #3858: A new setting
dart.projectSearchDepth
controls how deep the extension searches in the open workspace for Flutter projects. If you do not see the Flutter device selector in the status bar and your Flutter projects are nested deeply, you may need to increase this value. Doing so may increase startup time. - #3870: Trying to launch Flutter projects in a workspace that is not in “Flutter mode” (see
dart.projectSearchDepth
above) now provides clearer message.
Editor
- #3885: With new (currently pre-release) SDK versions, parameter hints will no longer fail to show automatically for some functions.
Debugger
- #3884: Local variables in debug window are now sorted alphabetically.
Commands
- #3882: Commands like Dart: Add Dependency now correctly detect the active project even if the Output pane has focus.
- #3875: The Open Observatory Timeline command has been removed. The DevTools commands now provide access to the same (and more) information.
Testing
- #3854: It’s now possible to override the Run/Debug launch configurations used by the Test Runner by specifying a
"templateFor"
field on alaunch.json
configuration. The value should be a path prefix for which tests it should apply to (an empty string means it applies to all tests). ThenoDebug
field should be set explicitly if the config should only apply to either Run or Debug, otherwise it will apply to both.{ "name": "Run/Debug Tests", "type": "dart", "request": "launch", // Env vars to always be set when running tests "env": { "FOO": "BAR" }, // toolArgs to always be set when running tests "toolArgs": ["--platform", "chrome"] // path: empty string applies to all tests // "integration_test" only to tests in integration_test folder, etc. // This field is required for this configuration to be used by the test runner. "templateFor": "" }
- #3863: Tests with
<
or>
in their names will no longer sometimes cause “Couldn’t parse –name” errors when running those tests individually. - #3855: Running all tests should no longer sometimes fail on Windows with “The command line is too long” when there are a large number of test files.
- #3849: The Tests: Rerun Last Run command now works for test runs initiated through the Test Runner (note: it does not currently suport runs initiated from CodeLens).
- #3699: The
dart.suppressTestTimeouts
setting will now usepackage:test
’s--ignore-timeouts
flag as long as you are using a new enoughpackage:test
. This avoids the previous restriction of only working for tests without explicitly defaults and will now apply to all tests.
Other
- #3871: @guidezpl improved the ordering of Dart/Flutter’s groups in the VS Code settings editor.
- #3903: Running the analysis server with its VM Service enabled (useful for debugging some types analysis server issues) no longer fails to bind to the specified port.
- #3874: Following new VS Code guidelines, VS Code’s telemetry opt-out now also applies to the Dart/Flutter extensions. The
dart.allowAnalytics
has been deprecated/hidden (but if set tofalse
will still suppress analytics). This does not affect analytics sent by the Flutter tool which continue to be controlled byflutter config --[no-]analytics
.
Features/Fixes Enabled with Future SDKs
These items 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 beta/development channels depending on the exact version).
- #3873: Code completion for zero-argument functions no longer places the cursor inside the parens.
- #3872: The Extract Method code action will now check the extraction is valid before prompting for a method name.
- #3869: Some code actions like Surround with if now have improved snippet support and will provide better selections after inserting code.
- #3867: Holding
ctrl
when hovering over paths to examples in Flutter dartdocs will no longer highlight significantly more of the file than included in the path. - #3864: “A request has failed” errors will no longer appear if you navigate to files that reference Flutter colors that are outside of the workspace (such as Flutter SDK sources or Pub package sources).
Experimental
These items also rely on changes to the Dart/Flutter SDKs that have not yet been released to the stable channels, but must also be opted-in to for now. If you’re using pre-release/master
versions of Dart/Flutter, please consider enabling these and providing feedback!
- #3582/#2059 The
dart.enableServerSnippets
setting will switch to new context-aware snippets provided by the language server. This should prevent snippets showing up in contexts where they would not be valid (or examplestful
will not show up inside functions/classes) and will adapt to your language version/lints (for example usingfinal
instead ofvar
or using null operators). - #3769: The setting
dart.experimentalSdkDaps
enables using new DAP implementations that will ship in the Dart/Flutter SDK. These are highly experimental and will only work with the latest development SDKs, but testing and bug reports are welcome. - #3894: The
dart.maxCompletionItems
setting allows reducing the number of code completion items that will be returned. When the list is truncated, the list will be refreshed as you continue to type. Lowering the value should result in faster completion responses although when typing quickly may briefly show less relevant items as additional items are provided by the language server. The default value is 2000 but will be reduced to something much lower over time (based on feedback).
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!