Draw the plan sheet cheaper: a shadow under it, commands in one field past twenty - #30
Merged
Merged
Conversation
… past twenty W6 of the performance series, report items G-6 and G-7. The shadow is a sibling under the sheet rather than an effect on it. An effect takes its whole subtree as input, so every caret blink in the confirmation box and every tick of a run made WPF blur the sheet again - where WPF draws in software, as over Remote Desktop, a third to half of a core while the box held the keyboard. As a sibling it measures the same as no shadow at all, and the sheet's text gets ClearType back. PlanSheetFrame carries the shape both wear, so the shadow can only be cast by the sheet. Past twenty lines a block of commands stands in one read-only text box instead of a box, a scroller and a Copy button per line. A stop over a whole scope printed 334 of those as 5013 of the sheet's 7185 elements. The new CommandBlock type answers what a block holds, how it is shown and what Copy all carries, for both the commands and the way back, and replaces six properties on Planned. Each section of commands binds its block as its data, so the Copy all button's name, content, tip, tag and visibility move into its style. ChromelessBox is split out of SearchFieldBox, since the field is the second box that stands in a frame drawn by something else. Entries the machine does not work without are named in one sentence per kind over the confirmation box, rather than one sentence per plan - on a scope stop those sentences took the footer to 465 of 551 units and left the steps one unit tall. Gathered in the window, not in the core, because the core's warnings reach the JSON of --dry-run. The warning about a process that takes others with it is not gathered, since its sentence names one entry. Measured after the build with the same probe: a scope stop's sheet has 2534 elements instead of 7185, its body 221 units instead of 1, and opens in about 300-410 ms instead of 460-800. With the caret in the box and software rendering the sheet costs 2-6 ms of processor a second, against 207-262 for the look before this change in the same process. The markup ceiling comes down to 176 now that PlanView.xaml is 174. The catalogue guard for tall samples asks every sample instead of PlanSheet, which is no longer tall once its margin moved to the cell. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Advanced Run ID: 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. Comment |
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.
W6 of the performance series that followed the external performance report - the plan sheet, report items G-6 and G-7. It closes the series.
What changes on screen
Why
Measured after the build, same probe (
row-cost.ps1 -PlanCost), Release, no elevationHow
CommandBlock(lines, what is listed one at a time, whether they stand at once, the joined text, any, several) replaces six properties onPlanned. Each section of commands binds its block as its data, so the Copy all button's name, content, tip, tag and visibility move intoPlanCopyAllButton.PlanSheetFrameholds the shape the sheet andPlanSheetShadowboth wear. The shadow takes no hit tests.ChromelessBoxis split out ofSearchFieldBox- the field of commands is the second box standing in a frame drawn by something else. Resources of aBasedOnstyle reach the box, guarded on the built window for all three boxes.PlanWords.Describeover a list), not in the core: the core's warnings reach the JSON of--dry-run, which is a public contract. The warning about a process taking others with it is not gathered, since its sentence names one entry.PlanView.xamlcomes down from 178 to 174 lines of markup, so the markup ceiling is lowered to 176.PlanSheet, which was tall only because of the margin that moved to its cell. No style or template sample is taller than a row today (the tallest is 86.6 of 96), so the guard now asks that every sample's flag equals its measurement.Checks
PluralGuards.What_the_window_admits_has_a_singular_for_one_entry, which reads "Running without administrator rights" in a session without elevation - a known failure of this session, not of this change.#4A4A4Awithout focus,#65A3D8with the keyboard in the field, read off pixels.🤖 Generated with Claude Code