Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up synonyms, key code generation. #138192

Merged
merged 3 commits into from Nov 13, 2023

Conversation

gspencergoog
Copy link
Contributor

Description

This cleans up how synonyms are calculated, and adds a reverse mapping from pseudo keys to the real keys they are synonyms of.

Updates the layout_goals.json to include the "Space" key, since that was added in the engine without updating the generation configuration.

@github-actions github-actions bot added the framework flutter/packages/flutter repository. See also f: labels. label Nov 9, 2023
@dkwingsmt
Copy link
Contributor

How do you plan to use this expandSynonyms? I don't see it referred in this PR.

@gspencergoog
Copy link
Contributor Author

gspencergoog commented Nov 10, 2023

do you plan to use this expandSynonyms? I don't see it referred in this PR.

That's because I split this out from the shortcuts PR.

See here: https://github.com/gspencergoog/flutter/blob/activator_accepts/packages/flutter/lib/src/widgets/shortcuts.dart

(Specifically here and here)

/// [shiftLeft], and [shiftRight].
static Set<LogicalKeyboardKey> expandSynonyms(Set<LogicalKeyboardKey> input) {
return input.expand((LogicalKeyboardKey element) {
return _reverseSynonyms[element] ?? <LogicalKeyboardKey>{element};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this logic is so simple that it should probably be written as a switch clause whose default is assert(false).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not quite sure what you mean: do you mean removing the _reverseSynonyms map and just hard coding it here? Or do you mean something else?

For example:

  return input.expand((LogicalKeyboardKey key) {
    return switch(key) {
      LogicalKeyboardKey.shift => <LogicalKeyboardKey>[LogicalKeyboardKey.shiftLeft, LogicalKeyboardKey.shiftRight],
      // ...
      _ => <LogicalKeyboardKey>[key],
    };
  });

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. I think saving a map is clearer. But it's up to you.

Also, do we expect this function to be used by others, or is it just for internal variables like _controlSynonyms? If the latter, then we might as well just use _ => assert(false) instead of _ => <LogicalKeyboardKey>[key].

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was writing it expecting it to be generally useful. If it was just for internal variables, I'd just hard code those as private lists. I wanted to have the internal variables depend on the generated file, though, so that it wouldn't need to be updated manually if the list of synonyms gets added to. And if I wanted that, then anyone else needing this functionality might also want to do that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, ok, let's keep the current approach.

Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gspencergoog gspencergoog added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 13, 2023
@auto-submit auto-submit bot merged commit 1b9cab7 into flutter:master Nov 13, 2023
136 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 14, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 14, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 14, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 14, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 14, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 14, 2023
Roll Flutter from f66215027e14 to e8c2bb135659 (66 revisions)

flutter/flutter@f662150...e8c2bb1

2023-11-14 tessertaha@gmail.com Reland "Update `framework_test.dart` to remove `ButtonBar` usage and remove references from other clases (#137550) (flutter/flutter#137753)
2023-11-14 jacksongardner@google.com Consume flutter.js from the engine artifacts. (flutter/flutter#137113)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 995ebcefb0d4 to 1b3fd80812c3 (1 revision) (flutter/flutter#138415)
2023-11-14 engine-flutter-autoroll@skia.org Roll Packages from 17bd92e to 428ba3e (2 revisions) (flutter/flutter#138412)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 712094481217 to 995ebcefb0d4 (1 revision) (flutter/flutter#138409)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 2c54b5f70c94 to 712094481217 (1 revision) (flutter/flutter#138401)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from d100e8912eb0 to 2c54b5f70c94 (4 revisions) (flutter/flutter#138399)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74a9de45f128 to d100e8912eb0 (3 revisions) (flutter/flutter#138383)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 77b952f3add4 to 74a9de45f128 (3 revisions) (flutter/flutter#138382)
2023-11-14 79099771+peterabrahamdev@users.noreply.github.com Fixing typo (flutter/flutter#138253)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 046ec85dffc6 to 77b952f3add4 (1 revision) (flutter/flutter#138377)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from db6da000a17e to 046ec85dffc6 (5 revisions) (flutter/flutter#138375)
2023-11-13 goderbauer@google.com Finally remove analysis_options_user.yaml (flutter/flutter#138261)
2023-11-13 43759233+kenzieschmoll@users.noreply.github.com Add a DevTools section to CONTRIBUTING.md (flutter/flutter#137193)
2023-11-13 104349824+huycozy@users.noreply.github.com Update DraggableScrollableSheet docs to reflect API change (flutter/flutter#136471)
2023-11-13 gspencergoog@users.noreply.github.com Clean up synonyms, key code generation. (flutter/flutter#138192)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74ba6c17a488 to db6da000a17e (2 revisions) (flutter/flutter#138364)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5d62f1a2392a to 74ba6c17a488 (1 revision) (flutter/flutter#138362)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 7de793d2bb68 to 5d62f1a2392a (1 revision) (flutter/flutter#138358)
2023-11-13 polinach@google.com Upgrade leak tracker. (flutter/flutter#138283)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from fe11f3a46bac to 7de793d2bb68 (2 revisions) (flutter/flutter#138353)
2023-11-13 engine-flutter-autoroll@skia.org Roll Packages from a682189 to 17bd92e (2 revisions) (flutter/flutter#138347)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from a18ee3c7f57a to fe11f3a46bac (2 revisions) (flutter/flutter#138344)
2023-11-12 engine-flutter-autoroll@skia.org Roll Flutter Engine from 828e4dbf6693 to a18ee3c7f57a (7 revisions) (flutter/flutter#138332)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from e2e07eab35ec to 828e4dbf6693 (1 revision) (flutter/flutter#138282)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1c29ce15c528 to e2e07eab35ec (1 revision) (flutter/flutter#138280)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from aa6753fdbb51 to 1c29ce15c528 (1 revision) (flutter/flutter#138277)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 00db306f6f7b to aa6753fdbb51 (1 revision) (flutter/flutter#138269)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9d8a1125640d to 00db306f6f7b (7 revisions) (flutter/flutter#138266)
2023-11-10 15619084+vashworth@users.noreply.github.com Only run tests on macOS 12 (flutter/flutter#138260)
2023-11-10 kristijan.zic@gmail.com Fixes vscode path installed via snap (flutter/flutter#136997)
2023-11-10 rossllewallyn@proton.me Docs typo: comprised -> composed (flutter/flutter#137896)
2023-11-10 chinmoy12c@gmail.com Deprecates onWillAccept and onAccept callbacks in DragTarget. (flutter/flutter#133691)
2023-11-10 chris@bracken.jp [macOS] Suppress Xcode 15 createItemModels warning (flutter/flutter#138243)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 275ddb296ec9 to 9d8a1125640d (1 revision) (flutter/flutter#138252)
2023-11-10 sokolovskyi.konstantin@gmail.com GestureRecognizer should dispatch creation and disposal events. (flutter/flutter#138223)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5c2e16c5a95a to 275ddb296ec9 (1 revision) (flutter/flutter#138249)
2023-11-10 engine-flutter-autoroll@skia.org Roll Packages from b69f54e to a682189 (3 revisions) (flutter/flutter#138239)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from e5b75177ac8e to 5c2e16c5a95a (1 revision) (flutter/flutter#138247)
2023-11-10 42216813+eliasyishak@users.noreply.github.com `CommandResultEvent` migrated (flutter/flutter#138165)
2023-11-10 john@johnmccutchan.com Fix #128925 by properly setting the Android Event Source (flutter/flutter#138241)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 77349dc8e27b to e5b75177ac8e (2 revisions) (flutter/flutter#138244)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from a5eab0d281fe to 77349dc8e27b (4 revisions) (flutter/flutter#138237)
2023-11-10 42216813+eliasyishak@users.noreply.github.com Update analytics constructor to include `FLUTTER_HOST` (flutter/flutter#138107)
2023-11-10 srawlins@google.com Prepare the analyze_once test for removal of analysis_options_user support (flutter/flutter#138229)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from b020893cba29 to a5eab0d281fe (5 revisions) (flutter/flutter#138231)
...
Markzipan pushed a commit to Markzipan/flutter that referenced this pull request Nov 27, 2023
## Description

This cleans up how synonyms are calculated, and adds a reverse mapping from pseudo keys to the real keys they are synonyms of.

Updates the `layout_goals.json` to include the "Space" key, since that was added in the engine without updating the generation configuration.
HugoOlthof pushed a commit to moneybird/packages that referenced this pull request Dec 13, 2023
…r#5399)

Roll Flutter from f66215027e14 to e8c2bb135659 (66 revisions)

flutter/flutter@f662150...e8c2bb1

2023-11-14 tessertaha@gmail.com Reland "Update `framework_test.dart` to remove `ButtonBar` usage and remove references from other clases (#137550) (flutter/flutter#137753)
2023-11-14 jacksongardner@google.com Consume flutter.js from the engine artifacts. (flutter/flutter#137113)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 995ebcefb0d4 to 1b3fd80812c3 (1 revision) (flutter/flutter#138415)
2023-11-14 engine-flutter-autoroll@skia.org Roll Packages from 17bd92e to 428ba3e (2 revisions) (flutter/flutter#138412)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 712094481217 to 995ebcefb0d4 (1 revision) (flutter/flutter#138409)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 2c54b5f70c94 to 712094481217 (1 revision) (flutter/flutter#138401)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from d100e8912eb0 to 2c54b5f70c94 (4 revisions) (flutter/flutter#138399)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74a9de45f128 to d100e8912eb0 (3 revisions) (flutter/flutter#138383)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 77b952f3add4 to 74a9de45f128 (3 revisions) (flutter/flutter#138382)
2023-11-14 79099771+peterabrahamdev@users.noreply.github.com Fixing typo (flutter/flutter#138253)
2023-11-14 engine-flutter-autoroll@skia.org Roll Flutter Engine from 046ec85dffc6 to 77b952f3add4 (1 revision) (flutter/flutter#138377)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from db6da000a17e to 046ec85dffc6 (5 revisions) (flutter/flutter#138375)
2023-11-13 goderbauer@google.com Finally remove analysis_options_user.yaml (flutter/flutter#138261)
2023-11-13 43759233+kenzieschmoll@users.noreply.github.com Add a DevTools section to CONTRIBUTING.md (flutter/flutter#137193)
2023-11-13 104349824+huycozy@users.noreply.github.com Update DraggableScrollableSheet docs to reflect API change (flutter/flutter#136471)
2023-11-13 gspencergoog@users.noreply.github.com Clean up synonyms, key code generation. (flutter/flutter#138192)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 74ba6c17a488 to db6da000a17e (2 revisions) (flutter/flutter#138364)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5d62f1a2392a to 74ba6c17a488 (1 revision) (flutter/flutter#138362)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from 7de793d2bb68 to 5d62f1a2392a (1 revision) (flutter/flutter#138358)
2023-11-13 polinach@google.com Upgrade leak tracker. (flutter/flutter#138283)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from fe11f3a46bac to 7de793d2bb68 (2 revisions) (flutter/flutter#138353)
2023-11-13 engine-flutter-autoroll@skia.org Roll Packages from a682189 to 17bd92e (2 revisions) (flutter/flutter#138347)
2023-11-13 engine-flutter-autoroll@skia.org Roll Flutter Engine from a18ee3c7f57a to fe11f3a46bac (2 revisions) (flutter/flutter#138344)
2023-11-12 engine-flutter-autoroll@skia.org Roll Flutter Engine from 828e4dbf6693 to a18ee3c7f57a (7 revisions) (flutter/flutter#138332)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from e2e07eab35ec to 828e4dbf6693 (1 revision) (flutter/flutter#138282)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1c29ce15c528 to e2e07eab35ec (1 revision) (flutter/flutter#138280)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from aa6753fdbb51 to 1c29ce15c528 (1 revision) (flutter/flutter#138277)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 00db306f6f7b to aa6753fdbb51 (1 revision) (flutter/flutter#138269)
2023-11-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9d8a1125640d to 00db306f6f7b (7 revisions) (flutter/flutter#138266)
2023-11-10 15619084+vashworth@users.noreply.github.com Only run tests on macOS 12 (flutter/flutter#138260)
2023-11-10 kristijan.zic@gmail.com Fixes vscode path installed via snap (flutter/flutter#136997)
2023-11-10 rossllewallyn@proton.me Docs typo: comprised -> composed (flutter/flutter#137896)
2023-11-10 chinmoy12c@gmail.com Deprecates onWillAccept and onAccept callbacks in DragTarget. (flutter/flutter#133691)
2023-11-10 chris@bracken.jp [macOS] Suppress Xcode 15 createItemModels warning (flutter/flutter#138243)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 275ddb296ec9 to 9d8a1125640d (1 revision) (flutter/flutter#138252)
2023-11-10 sokolovskyi.konstantin@gmail.com GestureRecognizer should dispatch creation and disposal events. (flutter/flutter#138223)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5c2e16c5a95a to 275ddb296ec9 (1 revision) (flutter/flutter#138249)
2023-11-10 engine-flutter-autoroll@skia.org Roll Packages from b69f54e to a682189 (3 revisions) (flutter/flutter#138239)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from e5b75177ac8e to 5c2e16c5a95a (1 revision) (flutter/flutter#138247)
2023-11-10 42216813+eliasyishak@users.noreply.github.com `CommandResultEvent` migrated (flutter/flutter#138165)
2023-11-10 john@johnmccutchan.com Fix #128925 by properly setting the Android Event Source (flutter/flutter#138241)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 77349dc8e27b to e5b75177ac8e (2 revisions) (flutter/flutter#138244)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from a5eab0d281fe to 77349dc8e27b (4 revisions) (flutter/flutter#138237)
2023-11-10 42216813+eliasyishak@users.noreply.github.com Update analytics constructor to include `FLUTTER_HOST` (flutter/flutter#138107)
2023-11-10 srawlins@google.com Prepare the analyze_once test for removal of analysis_options_user support (flutter/flutter#138229)
2023-11-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from b020893cba29 to a5eab0d281fe (5 revisions) (flutter/flutter#138231)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants