For instructions on installing the Dart or Flutter extensions, go here.
- #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”.
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).
analysis_options.yaml Code Completion
#114/#2110: Basic code completion is now available for
analysis_options.yaml files. This includes static identifiers and also lint names. It does not include Pub package names.
- #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
libfolder, simplifying opening files outside of the
- #2964: The
dart.analysisExcludedFolderssetting 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.
- #2723/#2718: VS Code tasks are now contributed for additional commands like
flutter buildand can be customized by copying to
tasks.jsonusing 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.flutterAndroidXsetting has been removed. This support has been enabled by default for some time.
- #2933: Debugger stack traces are now fetched in batches of 20 frames to improve performance.
- #2970/#2971: A new setting
dart.hotReloadProgresscontrols 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:testwhen 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.
- #2934: The Test tree should no longer show duplicate nodes after running tests many times concurrently.
- #2915/#2916: @bencehornak contributed a new
dart.flutterTestAdditionalArgssetting that allows injecting arguments to call invocations of
flutter test(eg. to always run with
- #2944: Fetching packages now uses
dart pub getinstead of
pub getfor 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.
- #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.
build_runnertasks now work reliably if run from the recent tasks list.
- #2921: The
previewBuildRunnerTaskspreview flag has been removed and
build_runnertasks are now always available..
- #1284: Errors from
build_runnertasks are now handled more reliably and will produce diagnostics in the Problems pane.
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!