For instructions on installing the Dart or Flutter extensions, go here.
v3.17.1 2020-12-10
- #3001: Using bleeding-edge analysis server code built with v3.16 of the LSP spec no longer reports “Invalid params for initialize: params.capabilities.textDocument.rename.prepareSupportDefaultBehavior must be of type PrepareSupportDefaultBehavior”.
v3.17.0 2020-12-04
LSP Improvements
Many enhancements have been made when running with the LSP Preview. Many of these rely on changes in the Dart language server so may not be immediately available depending on the Dart/Flutter channel you are using. At the time of writing, they have not yet reached the Flutter stable channel.
[LSP] Apply-all Fixes
#2926: Some quick-fixes are now able to be fixed for the entire file in one go.
[LSP] Complete Function Calls
#2823: A new setting dart.completeFunctionCalls
will cause code completion on functions/methods to include parentheses and argument placeholders for required arguments.
[LSP] Format Selection
#812/#2790: It’s now possible to format only a selection of code (or also only lines modified according to source control).
[LSP] pubspec.yaml
and analysis_options.yaml
Code Completion
#114/#2110: Basic code completion is now available for pubspec.yaml
and analysis_options.yaml
files. This includes static identifiers and also lint names. It does not include Pub package names.
Editor
- #1626: Formatting files over 100k in size will no longer result in selections and breakpoints losing their positions.
- #1590: The Dependencies tree now starts from package roots rather than the
lib
folder, simplifying opening files outside of thelib
in dependencies. - #2964: The
dart.analysisExcludedFolders
setting is now also used to exclude projects from project detection and project selection inputs. This means an excluded Flutter project will not force a workspace into using a Flutter SDK if all other projects are only Dart. - #2740: A new command Dart: Linkify Selected Text will print the selected text to the terminal with
package:
links/filenames linkified. This is useful if you have a text stack trace (eg. in a log file) that you’d like to quickly linkify to be able to navigate. - #2960: [LSP] Duplicate code actions no longer appear in the lightbulb menu when two diagnostics have similar fixes on the same line.
- #2945: [LSP] Enum members now use the EnumMember SymbolKind.
- #2653: [LSP] The range of code shown when holding Cmd/Ctrl while hovering a symbol should now more accurately reflect the actual code range.
Flutter
- #2723/#2718: VS Code tasks are now contributed for additional commands like
flutter install
andflutter build
and can be customized by copying totasks.json
using the Cog icon in the Tasks: Run Task picker. - #2958: The error shown when Flutter fails to initialize now includes a Show Log button.
- #2929/#2935: The
dart.flutterAndroidX
setting has been removed. This support has been enabled by default for some time.
Debugger
- #2933: Debugger stack traces are now fetched in batches of 20 frames to improve performance.
- #2970/#2971: A new setting
dart.hotReloadProgress
controls whether Hot Reload and Hot Restart progress is reported in the status bar or as a large notification (defaults to notification). - #2950/#2956: Dart tests will be run with
dart run test:test
when using a Dart SDK >= v2.12. - #2910: Large stack traces in the debug console are no longer excluded from linkifying.
- #2783/#2954: Debug Adapters now require fewer variables be passed to
launchRequest
, simplifying their use by other editors.
Testing
- #2934: The Test tree should no longer show duplicate nodes after running tests many times concurrently.
- #2915/#2916: @bencehornak contributed a new
dart.flutterTestAdditionalArgs
setting that allows injecting arguments to call invocations offlutter test
(eg. to always run with--coverage
).
Commands
- #2944: Fetching packages now uses
dart pub get
instead ofpub get
for Dart SDKs >= 2.12. - #2931: DevTools can now be opened in an external browser from the status bar even if it is already open in an embedded view.
Other
- #2930: @timsneath Contributed improved descriptions for all settings and added links to docs where appropriate.
- #2917: The extension no longer fails to activate if there are folders in your workspace that cannot be read due to permissions errors.
- #2919: Dart-Code extension code is no longer minified, improving the locations reported in unhandled errors in its own code.
- #2928: “MaxListenersExceededWarning: Possible EventEmitter memory leak detected” leak no longer occurs after multiple silent extension restarts.
- #2927: “Cannot read property ‘dispose’ of undefined” no longer occurs when reloading after an SDK-not-found error.
Tasks
- #2923:
build_runner
tasks now work reliably if run from the recent tasks list. - #2921: The
previewBuildRunnerTasks
preview flag has been removed andbuild_runner
tasks are now always available.. - #1284: Errors from
build_runner
tasks are now handled more reliably and will produce diagnostics in the Problems pane.
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!