Kate Lovett
9d96df2364
Modernize framework lints ( #179089 )
...
WIP
Commits separated as follows:
- Update lints in analysis_options files
- Run `dart fix --apply`
- Clean up leftover analysis issues
- Run `dart format .` in the right places.
Local analysis and testing passes. Checking CI now.
Part of https://github.com/flutter/flutter/issues/178827
- Adoption of flutter_lints in examples/api coming in a separate change
(cc @loic-sharma)
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code ).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-11-26 01:10:39 +00:00
Kishan Rathore
83081357ef
fix: findChildIndexCallback to take seperators into account for seperated named constructor in ListView and SliverList ( #174491 )
...
FindChildIndexCallback to take seperators into account for seperated
named constructor in ListView and SliverList
fixes : #174261
## Migration guide
https://github.com/flutter/website/pull/12636
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-11-07 01:09:17 +00:00
Loïc Sharma
384331e171
Migrate to list and builder Sliver convenience constructors ( #173011 )
...
In 2022, we introduced new convenience constructors like
`SliverList.builder` and `SliverList.list`. Unfortunately, LLMs like
Gemini seem to prefer the delegate pattern even when these convenience
constructors are usable. This updates Flutter's docs, code, and tests to
use these convenience constructors where possible. Hopefully this will
nudge LLMs to consider using the new APIs :)
I migrated 80% of the code by hand, and 20% using Gemini CLI. See
[go/loic-ai-log](http://goto.google.com/loic-ai-log ) (Google internal)
for details.
There's a few locations that I wasn't able to migrate to the convenience
constructors due to missing APIs. I filed the following issues:
1. https://github.com/flutter/flutter/issues/173018
2. https://github.com/flutter/flutter/issues/173019
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code ).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-08-04 22:32:22 +00:00
Kate Lovett
a04fb324be
Bump Dart to 3.8 and reformat ( #171703 )
...
Bumps the Dart version to 3.8 across the repo (excluding
engine/src/flutter/third_party) and applies formatting updates from Dart
3.8.
## Pre-launch Checklist
- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-07-07 17:58:32 +00:00
Michael Goderbauer
5491c8c146
Auto-format Framework ( #160545 )
...
This auto-formats all *.dart files in the repository outside of the
`engine` subdirectory and enforces that these files stay formatted with
a presubmit check.
**Reviewers:** Please carefully review all the commits except for the
one titled "formatted". The "formatted" commit was auto-generated by
running `dev/tools/format.sh -a -f`. The other commits were hand-crafted
to prepare the repo for the formatting change. I recommend reviewing the
commits one-by-one via the "Commits" tab and avoiding Github's "Files
changed" tab as it will likely slow down your browser because of the
size of this PR.
---------
Co-authored-by: Kate Lovett <katelovett@google.com>
Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
2024-12-19 20:06:21 +00:00
Dawid Wenderski
84cff3166d
Fix incorrect behavior of ScrollViewKeyboardDismissBehavior.onDrag for ScrollViewers with Drawer ( #148948 )
...
Fixes https://github.com/flutter/flutter/issues/141542
Fixes https://github.com/flutter/flutter/issues/103544
Fixes https://github.com/flutter/flutter/issues/54277
2024-05-31 20:30:09 +00:00
Polina Cherkasova
baf739c8e6
Remove usage of testWidgetsWithLeakTracking. ( #140239 )
2023-12-15 14:13:31 -08:00
Kostia Sokolovskyi
98ebab58ee
Cover more test/widgets tests with leak tracking #8 ( #135045 )
2023-09-20 07:34:41 -07:00
Greg Spencer
37b72342b0
Add maybeOf for all the cases where of returns nullable. ( #114120 )
2022-10-31 23:09:09 +00:00
Remi Rousselet
6f3168c4b6
Re-add the ability to return null in ListView.builder ( #108706 )
2022-09-20 18:36:09 +00:00
Kate Lovett
784520bd04
Updating PrimaryScrollController for Desktop ( #102099 )
2022-06-09 16:49:45 -05:00
Ian Hickson
61a0add286
Enable avoid_redundant_argument_values lint ( #91409 ) ( #91462 )
2021-10-08 09:25:14 -07:00
Zachary Anderson
b9d2177da0
Revert "Enable avoid_redundant_argument_values lint ( #91409 )" ( #91461 )
...
This reverts commit 5fd259be244244e14ff87fee9b6a721625f952cd.
2021-10-07 21:11:07 -07:00
Ian Hickson
5fd259be24
Enable avoid_redundant_argument_values lint ( #91409 )
2021-10-07 20:13:02 -07:00
Ahmed Ashour
a3dc90c4f5
Add space before curly parentheses. ( #85306 )
2021-07-01 13:51:05 -07:00
Alexandre Ardhuin
157bc92d4a
end of sort_child_properties_last ( #82457 )
2021-05-13 13:39:04 -07:00
Viren Khatri
f9905fc43c
prototypeItem added to ReorderableList and ReorderableListView ( #81604 )
...
prototypeItem added to ReorderableList and ReorderableListView along with tests
2021-05-03 11:43:18 -07:00
Viren Khatri
b6d13a6122
Adding itemExtent to ReorderableList and ReorderableListView ( #81372 )
2021-04-30 17:19:04 -07:00
Alexandre Ardhuin
1a3af88ced
add missing trailing commas ( #81362 )
2021-04-28 10:54:05 -07:00
Phil Quitslund
61c30c41b2
fix sort_directives violations ( #80817 )
2021-04-21 13:49:03 -07:00
Mateus Felipe C. C. Pinto
6bdc380b3d
Add prototypeItem property to ListView ( #79752 )
2021-04-19 14:49:05 -07:00
Greg Spencer
c6ef4c75d9
Turn on sized_box_for_whitespace lint, fix instances. ( #77099 )
2021-03-03 17:29:02 -08:00
Sam Rawlins
3aee0c73a2
Remove "unnecessary" imports. ( #75950 )
2021-02-16 14:01:02 -08:00
Alexandre Ardhuin
d546e1d311
fix for upcoming lint use_named_constants ( #74788 )
2021-01-27 20:20:44 +01:00
Kate Lovett
f4a0511e8b
Re-land 'Default Keyboard ScrollActions with PrimaryScrollController' ( #70893 )
2020-11-19 17:48:04 -08:00
Jim Graham
e803b13f01
Revert "Re-land 'Default Keyboard ScrollActions with PrimaryScrollController' ( #70401 )" ( #70675 )
...
This reverts commit 9b56241eef3a81bfe4e1ff72cc453a7693861944.
2020-11-16 22:55:59 -08:00
Kate Lovett
9b56241eef
Re-land 'Default Keyboard ScrollActions with PrimaryScrollController' ( #70401 )
2020-11-16 14:47:04 -06:00
Zachary Anderson
3fce16c329
Revert "Default Keyboard ScrollActions with PrimaryScrollController ( #69795 )" ( #70391 )
...
This reverts commit 1f0df54553bab852026a2801ce3921a2ba493fab.
2020-11-12 09:49:12 -08:00
Kate Lovett
1f0df54553
Default Keyboard ScrollActions with PrimaryScrollController ( #69795 )
2020-11-11 15:29:05 -08:00
Greg Spencer
3f56178df8
Convert some more widget tests to NNBD ( #68129 )
2020-10-15 11:26:11 -07:00
Raouf Rahiche
e0afee5b13
add ScrollViewKeyboardDismissBehavior to CustomScrollView constructor ( #66014 )
2020-09-21 11:12:06 -07:00
zmtzawqlp
3fc364cfbb
add missing arguments for all constructors of ListView and GridView ( #58746 )
2020-06-11 11:35:02 -07:00
Alexandre Ardhuin
4d7525f05c
Opt out nnbd in packages/flutter ( #59186 )
...
* add language version 2.8 in packages/flutter
* enable non-nullable analyzer flag
2020-06-11 14:11:30 +02:00
gaaclarke
f8e9a4fff2
Added option to specify you want the keyboard to be dismissed when you scroll. ( #52068 )
2020-03-13 09:44:24 -07:00
Dan Field
8b2993337a
revert #48985 ( #49572 )
2020-01-27 14:36:02 -08:00
Anthony
b67d5ec6e9
[a11y] Make sure RenderFractionalTranslation updates its semantics after the translation field is set ( #48985 )
2020-01-17 15:13:01 -08:00
Alexandre Ardhuin
003541499b
use isA<Xxx>() matcher ( #48482 )
2020-01-16 12:43:03 -08:00
Ian Hickson
449f4a6673
License update ( #45373 )
...
* Update project.pbxproj files to say Flutter rather than Chromium
Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.
* Update the copyright notice checker to require a standard notice on all files
* Update copyrights on Dart files. (This was a mechanical commit.)
* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.
Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).
* Clean up the copyrights in non-Dart files. (Manual edits.)
Also, make sure templates don't have copyrights.
* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
Jonah Williams
cf37c2cd07
Add assert for negative child count in ListView.builder ( #45506 )
2019-11-25 12:04:30 -08:00
Alexandre Ardhuin
b873162194
fix some bad indentations ( #41172 )
2019-09-24 21:03:37 +02:00
Alexandre Ardhuin
a6af422874
some spaces formatting ( #29452 )
...
* some space formattings
* always use blocks in if-else if a block is used
* format spaces in for and while
* allow multiline if conditions
* fix missing space
2019-03-20 23:23:31 +01:00
jslavitz
cea4aa9b7b
Teach drag start behaviors to DragGestureRecognizer ( #26246 )
...
* the onStart callback will report the location of the pointer where it wins the gesture arena by default instead of the pointer down location. Fixes all tests related to changing this default value.
2019-01-09 10:53:47 -08:00
jslavitz
e4fb4fe279
Revert "Teach drag start behaviors to DragGestureRecognizer ( #23424 )" ( #26209 )
...
This reverts commit 08538f91f0b7f3f448355e998bb536b06a1d1145.
2019-01-07 17:59:03 -08:00
jslavitz
08538f91f0
Teach drag start behaviors to DragGestureRecognizer ( #23424 )
...
* Adds start behavior option to the drag gesture recognizer and makes it the default option when a drag gesture recognizer is created. Also fixes all the tests to work correctly with the new default behavior.
2019-01-07 15:11:12 -08:00
Justin McCandless
f9bccb0280
Handle a missing ListView separator as an error ( #24312 )
...
* Handle a missing ListView separator as an error
* Handle missing item, and errors in itemBuilder and separatorBuilder
* CR fixes and move error handling into sliver.dart to handle all ListView constructors
* Only show an error for null separatorBuilder value in debug mode
2018-11-15 14:40:13 -08:00
Alexandre Ardhuin
6c32c15f3c
add some const classes ( #21954 )
2018-11-02 14:25:06 +01:00
Alexandre Ardhuin
d927c93310
Unnecessary new ( #20138 )
...
* enable lint unnecessary_new
* fix tests
* fix tests
* fix tests
2018-09-12 08:29:29 +02:00
Alexandre Ardhuin
eda03e2586
re-re-enable lint unnecessary_const ( #20103 )
2018-08-02 12:02:32 +02:00
Todd Volkert
00aac68e2d
Revert flutter/flutter#19592 ( #19861 )
...
It was causing problems rolling Flutter into Fuchsia
2018-07-27 08:44:39 -07:00
Alexandre Ardhuin
27018359d2
re-enable lint unnecessary_const ( #19592 )
...
* re-enable lint unnecessary_const
* remove trailling whitespaces
* remove unnecessary const (after merge)
2018-07-23 08:31:48 +02:00