- Notifications
You must be signed in to change notification settings - Fork30k
[ Widget Previews ] Add support for detecting previews and generating code#161911
[ Widget Previews ] Add support for detecting previews and generating code#161911
Conversation
… code`flutter widget-preview start` will now look for functions annotatedwith `@Preview()` within the developer's project. These functions willbe used to generate`.dart_tool/widget_preview_scaffold/lib/generated_preview.dart`, whichinserts the returned value from each preview function into a`List<WidgetPreview>` returned from a `previews()` method that isinvoked by the widget preview scaffold root.
andrewkolos left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM with nitpicks
| String get name => 'start'; | ||
| late final PreviewDetector _previewDetector = PreviewDetector( | ||
| logger: globals.logger, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Turbo nit: I've noticed that we use injection instead of referencingglobals for some commands (e.g.DriveCommand) but not others. For the sake of consistency, should we be using injection here as well (and keep the necessary reference toglobals within executable.dart)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yeah, that's a good call. There's a lot of usages ofglobals already in this file, so I've added a TODO to follow up on this in a later PR.
packages/flutter_tools/test/general.shard/widget_preview/preview_code_generator_test.dart OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
packages/flutter_tools/test/general.shard/widget_preview/preview_code_generator_test.dart OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
f25b4b7Uh oh!
There was an error while loading.Please reload this page.
matanlurey commentedJan 28, 2025
reason for revert: Mid-air collision with another Flutter tool update. |
…enerating code (#161911)" (#162327)<!-- start_original_pr_link -->Reverts:#161911<!-- end_original_pr_link --><!-- start_initiating_author -->Initiated by: matanlurey<!-- end_initiating_author --><!-- start_revert_reason -->Reason for reverting: Mid-air collision with another Flutter toolupdate.<!-- end_revert_reason --><!-- start_original_pr_author -->Original PR Author: bkonyi<!-- end_original_pr_author --><!-- start_reviewers -->Reviewed By: {andrewkolos}<!-- end_reviewers --><!-- start_revert_body -->This change reverts the following previous change:`flutter widget-preview start` will now look for functions annotatedwith `@Preview()` within the developer's project. These functions willbe used to generate`.dart_tool/widget_preview_scaffold/lib/generated_preview.dart`, whichinserts the returned value from each preview function into a`List<WidgetPreview>` returned from a `previews()` method that isinvoked by the widget preview scaffold root.**Example generated_preview.dart:**```dart// ignore_for_file: no_leading_underscores_for_library_prefixesimport 'package:foo/foo.dart' as _i1;import 'package:foo/src/bar.dart' as _i2;import 'package:widget_preview/widget_preview.dart';List<WidgetPreview> previews() => [_i1.preview(), _i2.barPreview1(), _i2.barPreview2()];```<!-- end_revert_body -->Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
Roll Flutter fromc1ffaa9 tob007899 (43 revisions)flutter/flutter@c1ffaa9...b0078992025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy (flutter/flutter#160250)2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from258f6dc to02c6fef (6 revisions) (flutter/flutter#162313)2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from3d3ab7b to258f6dc (19 revisions) (flutter/flutter#162254)2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)If this roll has caused a breakage, revert this CL and stop the rollerusing the controls here:...
Roll Flutter fromc1ffaa9 tob007899 (43 revisions)flutter/flutter@c1ffaa9...b0078992025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy (flutter/flutter#160250)2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from258f6dc to02c6fef (6 revisions) (flutter/flutter#162313)2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from3d3ab7b to258f6dc (19 revisions) (flutter/flutter#162254)2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)If this roll has caused a breakage, revert this CL and stop the rollerusing the controls here:...
Roll Flutter fromc1ffaa9 tob007899 (43 revisions)flutter/flutter@c1ffaa9...b0078992025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy (flutter/flutter#160250)2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from258f6dc to02c6fef (6 revisions) (flutter/flutter#162313)2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from3d3ab7b to258f6dc (19 revisions) (flutter/flutter#162254)2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)If this roll has caused a breakage, revert this CL and stop the rollerusing the controls here:...
Uh oh!
There was an error while loading.Please reload this page.
flutter widget-preview startwill now look for functions annotated with@Preview()within the developer's project. These functions will be used to generate.dart_tool/widget_preview_scaffold/lib/generated_preview.dart, which inserts the returned value from each preview function into aList<WidgetPreview>returned from apreviews()method that is invoked by the widget preview scaffold root.Example generated_preview.dart: