Skip to content

Bringup#1107

Open
sinelaw wants to merge 6 commits intomasterfrom
bringup
Open

Bringup#1107
sinelaw wants to merge 6 commits intomasterfrom
bringup

Conversation

@sinelaw
Copy link
Copy Markdown
Owner

@sinelaw sinelaw commented Feb 24, 2026

No description provided.

@sinelaw sinelaw force-pushed the bringup branch 3 times, most recently from ac8bee2 to e90b537 Compare February 24, 2026 23:07
sinelaw and others added 6 commits February 25, 2026 09:05
…le 3.25

Update ts_export.rs for ts-rs v12 breaking change (decl() now takes &Config).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Start with pre-compiled syntect defaults (~0ms, ~50 common languages)
and build the full grammar registry on a background thread. When
complete, swap in the new registry and re-detect syntax for all open
buffers. Plugin grammar rebuilds also moved off the main thread via
AsyncMessage::GrammarRegistryBuilt, with batching to coalesce multiple
RegisterGrammar+ReloadGrammars sequences into a single rebuild.

Removes UnbuiltGrammarRegistry (no longer needed) and the startup
command drain loop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert plugin loading from blocking (oneshot recv) to fire-and-forget
so the editor can render its first frame immediately without waiting for
~40 plugins to load sequentially. The plugin thread reports progress via
SetStatus commands ("Loading plugins (X/Y)") and clears the status bar
when done.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…onsiveness

Under CPU pressure (e.g., cgroups), terminal.draw() can take 500-800ms
wall clock time due to repeated process descheduling. During that time,
keyboard events buffer in the kernel. Previously the loop would render
after each event, causing N keystrokes to trigger N expensive draws.

Restructure the event loop to drain all pending events (non-blocking poll)
before drawing a single frame. After each event, recompute_layout_cached()
updates the visual layout (view_line_mappings, viewport sync, scroll
groups) so subsequent events see correct state — same pattern as macro
replay. Only the terminal draw is deferred.

Resize events break out of the drain loop immediately since they require
a real render to establish new frame dimensions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant