Skip to content

Add PreparedTextArea, a read-only TextArea prepared off the UI loop - #97

Merged
trissim merged 1 commit into
mainfrom
perf/readonly-context-document-20261007
Oct 7, 2026
Merged

trissim merged 1 commit into
mainfrom
perf/readonly-context-document-20261007

Conversation

@trissim

@trissim trissim commented Oct 7, 2026 •

Copy link
Copy Markdown

PreparedTextArea in the new _prepared_text_area.py is a read-only TextArea that builds and wraps its document in a worker, and republishes the wrapped view only if the document, width and tab size still match. It is exported from textual.widgets. Editing TextArea is unchanged.

PreparedTextArea shares TextArea document admission, gutter and width derivation. It prepares detached plain Document/WrappedDocument resources, supplies a renderer hook, and coalesces resize work through original widget workers. Admission refuses replaced/pruned documents and obsolete width/tab maps; programmatic edits compare actual document lines/newline. Navigator and source-line reader mapping stay native.

Editors keep synchronous load/edit and original state APIs. Identical prepared loads preserve document, selection and scroll while cancelling superseded requests. Worker callables avoid constructing cancelled never-awaited coroutines.

Five focused source tests pass: two prepared load/resize/replacement controls and three existing plain/syntax editor-state/undo controls. Initial coroutine warning preserved and corrected through Worker callable contract; changed prepared controls pass again without warning. Actual paired Toad private App renders 807 KB authenticated detail, keeps reader/selection through refresh/maximize/resize, copy/export exact; zero large UI document builds/wraps. AST existing package 249 modules with no omissions; new module and changed sources compile. Logs under /home/ts/.cache/agent-scratch/context-detail-preparation-20261007. No native build/install or installed performance claim.
Copilot AI balanced review requested due to automatic review settings October 7, 2026 17:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@trissim
trissim merged commit ffcb82d into main Oct 7, 2026
1 of 22 checks passed
@trissim trissim changed the title Prepare read-only documents through native TextArea ownership Add PreparedTextArea, a read-only TextArea prepared off the UI loop Oct 11, 2026
@trissim
trissim deleted the perf/readonly-context-document-20261007 branch October 11, 2026 20:05
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.

2 participants