For instructions on installing the Dart or Flutter extensions, go here.
v3.22.0 2021-05-03
Flutter Integration Testing
#3009/#3133: Flutter tests inside an integration_test
folder are now recognised as tests and run on the selected device. See flutter.dev/docs/testing/integration-tests for more information on using the Flutter SDK’s package:integration_test
.
New Refactors
#547/#545: New refactors have been added for Inline Method and Inline Local Variable (requires SDK update).
Editor
Items here marked “(requires SDK update)” also rely on changes in the Dart/Flutter SDKs so may not be immediately visible depending on your Dart/Flutter SDK channel.
- #3303: When using LSP and the
completeFunctionCalls
setting, code completion will no longer insert additional parenthesis/argument placeholders when they already exist in the document (requires SDK update). - #3289: Brackets around references in dartdoc comments are no longer colored inconsistently when using LSP with Semantic Tokens (requires SDK update).
- #3281: Code completion no longer incorrectly returns results when invoked in a comment right at the end of a file.
- #3253/#3250: Renaming files that do not need to update any
import
statements will no longer trigger the VS Code refactor prompt (requires SDK update for LSP, not for non-LSP). - #3227: Code completion no longer shows duplicate classes when multple libraries are imported that re-export the same symbols (requires SDK update).
- #3225: Code folding now works for Enum bodies (requires SDK update).
- #3211: Code completion now intelligently triggers automatically for LSP when typing imports/slashes/interpolation(requires SDK update).
- #3248: A new setting
dart.automaticCommentSlashes
has been added to control the new automatic comment marker behaviour added in the previous release. - #3174: Code completion now includes
?
in the display of nullable types in signatures and descriptions.
Flutter
- #3302: Custom emulators (using
flutterCustomEmulators
) now show error messages if they fail to launch. - #3267: Custom emulators (using
flutterCustomEmulators
) can now define additional environment variables using theenv
key. - #3258: Automatic Flutter initialization now works even if you have no other Dart SDKs on
PATH
. - #3246: When using embedded DevTools,
dart.openDevTools
will now open the embedded Inspector page for Flutter apps instead of opening a separate browser. For non-Flutter apps, DevTools will still be launched in a browser.
Debugger
- #3294: Custom CodeLens templates can now use exact file paths in their
path
filter instead of only folders.
Commands
- #3275: Embedded DevTools is now disabled for IDEs like Theia that do not support iframed webviews.
- #3274: Embedded DevTools are now supported for Remote VS Code sessions where the necessary ports can be forwarded.
- #3261: VS Code shortcut keys (like the command palette) now work even when embedded DevTools has focus (requires DevTools update).
Other
- #3301: The experimental
flutterDisableVmServiceExperimental
setting has been removed. - #2853/#3292: Snap support has been simplified and should now work more reliably if you have never run
flutter
since installing the Snap package. - #3257: The New Project commands now spawn in the current window instead of opening new windows.
- #3256: LSP will no longer be enabled by default for editor versions that do not meet the minimum required version for the LSP client.
- #3183: Settings that are considered experimental (and may have significant issues) are now more clearly marked in their descriptions.
- #3300: Enum settings now have improved descriptions for their values when using the VS Code settings UI.
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!