Open
Conversation
d6df2e3 to
543b720
Compare
RGB is universally supported. This should help prevent code duplication in renderer implementations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request refactors the framework to separate the UI primitives, diffing, etc. from the rendering implementation. The goal is to decouple the core logic of the framework from the specific rendering backend, making it easier to support alternative backends.
Key changes:
Rendereris a protocol implemented byTerminalRenderer;InputHandlerprotocol implemented byTerminalInputHandler;RendererandInputHandlerare injected toApplication;WindowandControlhave a common abstract parent class:LayoutObject;LayerDrawing,Cell,CellAttributes,EscapeSequence, andArrowKeyParserare now implementation details of the terminal renderer backend.Many more ACLs are
publicnow, asRendererandInputHandlerimplementations might need visibility of all the controls and other supporting types.Only tested on macOS 14.6.1 - Xcode 15.4 (15F31d)
EDIT: Tested also on Linux with official Docker image. On Windows it won't build (see #4).