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
Conversation
How do you plan to use this |
That's because I split this out from the shortcuts PR. |
897b7ff
to
9a6f5dd
Compare
/// [shiftLeft], and [shiftRight]. | ||
static Set<LogicalKeyboardKey> expandSynonyms(Set<LogicalKeyboardKey> input) { | ||
return input.expand((LogicalKeyboardKey element) { | ||
return _reverseSynonyms[element] ?? <LogicalKeyboardKey>{element}; |
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.
I think this logic is so simple that it should probably be written as a switch
clause whose default
is assert(false)
.
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.
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],
};
});
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. 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]
.
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.
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.
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.
Got it, ok, let's keep the current approach.
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
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) ...
## 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.
…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) ...
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.