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

refactor!: Rename (Text) Elements, Nodes and Styles for clarity, add docs #2700

Merged
merged 3 commits into from Sep 2, 2023

Conversation

luanpotter
Copy link
Member

@luanpotter luanpotter commented Sep 1, 2023

Description

This occurred to me after a discussion on the new FCS component PR. As per usual, @spydon has opened my eyes to the ultimate truth:

We should rename loads of files, and it shall affect almost no one.

The idea is to (1) add a "Text" prefix to all text-rendering-related classes and (2) rename the existing Text* to InlineText* (which is what they are).

This PR is a bit big, but the changes should hopefully be simple to review, and can be broken down into:

  • Add a proper base class for the node inheritance chain, call it TextNode (while working on Flame Markdown I realized the value this will have to me)
  • Rename the old TextNode to InlineTextNode
  • Rename DocumentNode to DocumentRoot because it is not a node
  • Rename Element to TextElement
  • Rename the old TextElement to InlineTextElement
  • Rename Style to FlameTextStyle (note: we could consider dropping the Flame here)
  • Rename the old FlameTextStyle to InlineTextStyle
  • Update the docs accordingly
  • Add some more diagrams and explanations to the docs, following the new nomenclature
  • I also updated our "internal" imports to use the text module to make life so much easier (this could arguably be done in a separate PR, but I honestly think it's easier to review together, please lmk if you prefer me to split).

These are all breaking changes but likely won't actually affect most users (see below).

Checklist

  • I have followed the Contributor Guide when preparing my PR.
  • I have updated/added tests for ALL new/updated/fixed functionality.
  • I have updated/added relevant documentation in docs and added dartdoc comments with ///.
  • I have updated/added relevant examples in examples or docs.

Breaking Change?

  • Yes, this PR is a breaking change.
  • No, this PR is not a breaking change.

While this is breaking, it should hopefully not affect most users, because these are all infrastructure classes that most people aren't using directly. If you are using the FCS components, or the renderers TextPaint or SpriteFontRenderer directly, this should have zero effect to you.

If you are using the Nodes, Stlyes or Elements directly, or have a custom TextRenderer, see below.

Migration instructions

Migrating should be a simple matter of renaming your type references:

  • from TextNode to InlineTextNode
  • from TextElement to InlineTextElement
  • from Element to TextElement
  • from FlameTextStyle to InlineTextStyle
  • from Style to FlameTextStyle

Make sure to do it in the appropriate order not to cause any double-replace issues.

If you are importing via the module package:flame/text.dart, which we highly encourage, you should not have to change any import statements whatsoever.

Related Issues

Relates to #2694

@luanpotter luanpotter mentioned this pull request Sep 1, 2023
6 tasks
@spydon spydon requested a review from st-pasha September 1, 2023 06:05
Copy link
Member

@spydon spydon left a comment

Choose a reason for hiding this comment

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

Lgtm! You'll have to add some old bible dictionary for you commandments 😂

doc/flame/rendering/text_rendering.md Outdated Show resolved Hide resolved
doc/flame/rendering/text_rendering.md Outdated Show resolved Hide resolved
@luanpotter
Copy link
Member Author

Hahaha I noticed that cspell is not that complete :P
I will reword those later today, I can get a bit poetic when I am tired

@luanpotter luanpotter merged commit 4b420b7 into main Sep 2, 2023
7 checks passed
@luanpotter luanpotter deleted the luan.final-text branch September 2, 2023 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants