文件最后提交记录最后更新时间
[all] Omit obvious local types (#10511) Makes the analysis options changes described in https://github.com/flutter/flutter/issues/178827: - Adding [omit_obvious_local_variable_types](https://dart.dev/tools/linter-rules/omit_obvious_local_variable_types) - Adding [specify_nonobvious_local_variable_types](https://dart.dev/tools/linter-rules/specify_nonobvious_local_variable_types) - Adding [specify_nonobvious_property_types](https://dart.dev/tools/linter-rules/specify_nonobvious_property_types) - Adding [type_annotate_public_apis](https://dart.dev/tools/linter-rules/type_annotate_public_apis) - Removing [always_specify_types](https://dart.dev/tools/linter-rules/always_specify_types) After those changes, makes the following repo-wide changes: - dart fix --apply in all packages and in script/tool/ - dart format in all packages and in script/tool/ - update-excerpts repo tooling command to update excerpts based on the changes to their sources Also updates the min Flutter/Dart SDK version to 3.35/3.9 for the following packages, to avoid analyze failures in the N-2 legacy analysis run due to what appears to be a 3.9 change in what the Dart analyzer continues to be an obvious local type in loop iterations: - go_router - google_fonts - google_identity_services_web - google_maps_flutter_web - local_auth_platform_interface - metrics_center - multicast_dns - pigeon - rfw - shared_preferences - two_dimensional_scrollables - vector_graphics_compiler - mustache_template - path_parsing Because this is causing a significant amount of format churn already, I took this opportunity to update the repository tooling to a min Dart SDK of 3.8 (the N-2 stable version, so the earliest version we need the tooling to support) to pick up the new format style, so the amount of automated formatter change is higher in script/tool/ than in the packages. This does contain two manual changes (other than the repo tooling min version): - https://github.com/flutter/packages/commit/d700b45c7df3a79f66dc119ad36dd2bc1e042acf changes dynamic to Object? in a few places where dynamic caused analyzer warnings under the new rule set. - Updates the repo tooling to ignore .dart_tool/ when looking for unexpected local analysis_options.yaml files, to fix issues running the repo tool's analyze command locally based on recent changes in dart behavior. This does not include any CHANGELOG or version updates; even though we normally version any changes to production code, mass automated changes like this aren't worth the churn of releasing. This includes changes to lib/example/main.dart and to README.md excerpts; while the style changes will be user-visible on pub.dev, it's fine for those changes to wait for the next release of each package. Part of https://github.com/flutter/flutter/issues/1788276 个月前
[various] Update flutter.dev links to more reliable destinations (#6963) Contributes to https://github.com/flutter/website/issues/10363 by updating to the latest links and updating some links to use new /to/ links that can be updated as needed.1 年前
[go_router] Support for top level onEnter callback. (#8339) **Description:** This PR introduces top level onEnter callback in RouteConfiguration to allow developers to intercept and conditionally block navigation based on incoming routes. It adds an example (top_level_on_enter.dart) demonstrating its usage, such as handling referral code from /referral. **What This PR Changes:** - Adds the onEnter callback (typedef OnEnter) to intercept route navigation before processing. - Implements logic for onEnter in GoRouteInformationParser. - Updates RouteConfiguration to include the onEnter callback. - Adds a new example, top_level_on_enter.dart, to demonstrate the feature. - Adds a test case to verify the onEnter callback functionality. **Simple usage example:** ``` final GoRouter router = GoRouter( onEnter: (context, state) { // Save the referral code (if provided) and block navigation to /referral. if (state.uri.path == '/referral') { saveReferralCode(context, state.uri.queryParameters['code']); return false; } return true; // Allow navigation for all other routes. }, routes: [ ... ], ); ``` **Impact:** Enables developers to implement route-specific logic, such as support for handling action-based deep links without navigation ([160602](https://github.com/flutter/flutter/issues/160602))7 个月前