feat(canvas): typography API — canvas_text_ex and canvas_measure_text#40
Conversation
Extends the canvas text path with explicit font family, weight (100..=900), style (normal/italic/oblique), and horizontal alignment. Adds synchronous text measurement (width, ascent, descent) backed by GPUI's WindowTextSystem, injected into HostState for the duration of each on_frame call. Ships a typography-demo example showcasing weight and style variants plus a measurement-driven underline. Existing canvas_text and DrawCommand::Text paths are unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 29 minutes and 46 seconds.Comment |
Extends the canvas text path with explicit font family, weight (100..=900), style (normal/italic/oblique), and horizontal alignment. Adds synchronous text measurement (width, ascent, descent) backed by GPUI's WindowTextSystem, injected into HostState for the duration of each on_frame call. Ships a typography-demo example showcasing weight and style variants plus a measurement-driven underline.
Existing canvas_text and DrawCommand::Text paths are unchanged.