mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
We need to do a hard breaking change in Flutter that affects `package:super_editor`: https://github.com/flutter/flutter/pull/180436 To workaround the hard breaking change, we will: 1. Temporarily remove super_editor from Flutter's customer tests: https://github.com/flutter/tests/pull/480 2. Roll customer tests to the flutter/flutter repo (this PR) 3. Land the breaking change in Flutter + add a breaking migration guide to the Flutter website 4. Update super_editor's [main](https://github.com/superlistapp/super_editor/commits/main) branch to handle Flutter's breaking change. 5. Re-add super_editor to customer tests, using the latest commit from super_editor's main branch. <details><summary>Why this is necessary...</summary> To fix https://github.com/flutter/flutter/issues/161592, we need to pass additional styling information to the web engine. Historically, we plumb text styling information through [TextInputConnection.setStyle(...)](https://api.flutter.dev/flutter/services/TextInputConnection/setStyle.html). However, every time we add a parameter here, it creates a breaking change for super_editor's [TextInputConnectionDecorator](068a20d315/super_editor/lib/src/default_editor/document_ime/ime_decoration.dart (L8)) as it implements `TextInputConnection`. To stop this cycle, we will do a one-time breaking change to move to a more extensible pattern: 1. Add new [TextInputStyle](https://github.com/flutter/flutter/pull/180436/files#diff-701a97b414026a5c87a06b546bb38ca70be2aa0ce44cbf170f4b43e8defcc91aR1530) class. This will wrap all text input styling properties. 2. Add new [TextInputConnection.updateStyle(TextInputStyle style)](https://github.com/flutter/flutter/pull/180436/files#diff-701a97b414026a5c87a06b546bb38ca70be2aa0ce44cbf170f4b43e8defcc91aR1793) method. 3. Deprecate `TextInputConnection.setStyle(...)`. This pattern lets us add more text input styling properties without breaking super_editor again. To handle this breaking change, the following code will need to be added to super_editor's [ TextInputConnectionDecorator](068a20d315/super_editor/lib/src/default_editor/document_ime/ime_decoration.dart (L8)): ```dart @override void updateStyle(TextInputStyle style) => client?.updateStyle(style); ``` </details> ## 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. 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
2 lines
41 B
Plaintext
2 lines
41 B
Plaintext
b3e5a271c2702c1202832e86bb54f44587c3dd46
|