-
Notifications
You must be signed in to change notification settings - Fork 24.6k
Platform specific TextLayoutManager Headers #50889
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
base: main
Are you sure you want to change the base?
Conversation
This pull request was exported from Phabricator. Differential Revision: D73557126 |
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messieness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerTraits`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
e46d624
to
b81496b
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messieness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerTraits`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
b81496b
to
6a7da02
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messieness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerTraits`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
6a7da02
to
961dcf0
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
1 similar comment
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerTraits`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
b8dc44d
to
50f3018
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
50f3018
to
8f35f44
Compare
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerTraits`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
8f35f44
to
09551e3
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
09551e3
to
c30b99c
Compare
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
c30b99c
to
c8af7a7
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
c8af7a7
to
6297f9a
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
6297f9a
to
03c5aac
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
03c5aac
to
5bada15
Compare
This pull request was exported from Phabricator. Differential Revision: D73557126 |
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
5bada15
to
3a93ead
Compare
Summary: Pull Request resolved: facebook#50889 This effectively reverts D67064488 We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience, `#ifdef ANDROID` may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably). For Facsimile, we are going to be introducing more potential divergence, with the idea of `PreparedText`, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere. I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messiness, then allow shared code (e.g. in `ParagraphShadowNode`) to pick how to interact at compile time. I added an example of this as part of `TextLayoutManagerExtended`, to customize how we act if a `TextLayoutManager` chooses not to implement `measureLines`. Changelog: [Internal] Differential Revision: D73557126
This pull request was exported from Phabricator. Differential Revision: D73557126 |
3a93ead
to
0808bba
Compare
Summary:
This effectively reverts D67064488
We are trying to smash together functions, variables, virtual or non-virtual, all required by different platforms, into a single header, often using #ifdefs that are not what we want (apart from a bad editor experience,
#ifdef ANDROID
may or may not be compiled into the react-native-cxx platform, and we cannot use it for the Android platform reliably).For Facsimile, we are going to be introducing more potential divergence, with the idea of
PreparedText
, where we can generate intermediate products as part of the layout process to be reused later. I'm planning to design that in a way which can be eventually reused across platforms, but not everywhere.I think the best path for this is going to be to allow each platform to have their own headers, instead of the current messieness, then allow shared code (e.g. in
ParagraphShadowNode
) to pick how to interact at compile time. I added an example of this as part ofTextLayoutManagerTraits
, to customize how we act if aTextLayoutManager
chooses not to implementmeasureLines
.Changelog: [Internal]
Differential Revision: D73557126