For instructions on installing the Dart or Flutter extensions, go here.
v3.16.0 2020-10-30
Language Server Protocol Preview
In an upcoming release Dart-Code will switch to using the Language Server Protocol for communicating with the Dart language server. Please consider enabling this now to help find any remaining issues before the switch.
Testing Improvements
#2357/#2828: A new command has been added to allow re-running all failed tests.
This is also available on the context menu for individual test suites.
#2826/#2892: Opening a test file will now automatically discover available tests without having to first run them. This functionality only works when using LSP (see above) and can only discover groups/tests with static names (without interpolated variables).
- #2825: Clicking on a Test node now shows the test output in a pseudo-terminal window instead of an output pane, allowing file/package paths to be linkified.
- #2835: The test tree should now scroll to the first test failure in a test session more reliably.
- #2840: Running tests that have interpolated string names from CodeLens when using LSP no longer fail with an error.
Editor
- #2885: The Refactor context menu is now available when using LSP.
- #2857: Color previews in the gutter are now more reliably constrained to known Flutter color classes.
- #2500: Hovering over an error sends repeated requests for quick fixes.
- #2899: The “Dart Analyzer has terminated” messages will now appear immediately upon the server terminating rather than only on the next interaction with the server.
- #2898: The “Dart Analyzer has terminated” message now works when using LSP instead of failing silently.
- #2897: The “Dart Analyzer has terminated” message will no longer flash/re-appear on every interaction with the server (for example while typing) and will remain visible after clicking the “Show Log” button.
The following fixes apply when using LSP and require an updated Dart SDK so may not be immediately available unless you’re using a dev/master release of the SDK.
- #2745: Refactors that would generate invalid code (for example renaming a variable to become private that is used outside of its library) will now show a confirmation allowing you to proceed rather than immediately aborting.
- #2125/#2693: A new setting
dart.previewCommitCharacters
enables(
as a code-completion commit character, allowing you to use(
to both accept the selected completion item and also insert the parens.
Flutter
- #2239/#2870: Flutter UI Guidelines will no longer appear tilted around multiline comments when using some specific combinations of fonts and VS Code themes.
- #2886/#2891: The default location for installing the Flutter SDK using Snap on Arch Linux is now included in default search paths.
- #2856: The “Initializing Flutter” step seen after first installing/upgrading Flutter now correctly logs to captured log files to help diagnose issues if it fails.
- #2842: An experimental launch.json field (
flutterDisableVmServiceExperimental
) has been added that allows launching Flutter apps without a direct connection to the VM Service. This may help in some remote scenarios (such as some cloude IDEs) to allow basic launching of apps without debugging where proxies prevent a connection to the VM service.
The following fix requires an updated Flutter SDK so may not be immediately available unless you’re using a dev/master release of the SDK.
- #2844: The “Start iOS Simulator” option is no longer missing from the device selector when an Android SDK is not installed.
Terminal
- #2858: The terminal link provider now detects line/column numbers that are seperated from the path by a space.
Debugger
- #2597: Larger build/hot reload notifications have returned! 🎉
- #2855: Variables/watch/evaluations no longer fail with “The method ‘-‘ was called on null” when debugging web projects.
Other
- #2789/#2875: Additional Dart: Capture Logs commands have been added that automatically select which categories to log (for example Capture Analysis Server Logs) to simplify collecting the right information when reporting issues.
- #2872/#2876: Log files created with the Dart: Capture Logs commands now include which log categories are being recorded.
- #2836/#2889: A new setting
dart.showDevToolsDebugToolBarButtons
allows toggling DevTools buttons on the debug toolbar. - #2841: Several tweaks have been made to improve compatibility with Theia-based cloud IDEs that do not implement the full VS Code API surface.
- #2912: Starting with this version, both Dart and Flutter extensions are being published to open-vsix.org for easier use by non-VS Code editors.
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!