JetBrains: loose ends of the Compose rewrite #8

Closed
opened 2026-11-13 00:45:21 +01:00 by thatrichan · 3 comments
Owner

Left over from #6 (the Compose/Jewel rewrite, released in jetbrains 1.2.0).

The UI walk doesn't cover yet

The sandbox walks (task jetbrains:ui-test, jetbrains/src/uiTest/) cover opening a review, both tabs, Hide/Show, typing in a card, reply, resolve, a new comment, Submit, and the Revue Companion tool window's list, page and Review in IDE. Not yet:

  • dragging the gutter's + over several lines (one composer on them all)
  • the Revue Review file tree following the file shown when the diff's ⟵/⟶ change it
  • a comment on several selected lines (selecting with keys didn't take in the walk)
  • Tab / Shift+Tab / Enter in a suggestion block inside a real diff (unit-tested in CodeBlocksTest, not walked)

Small things seen

  • Finish your review moves a little when it packs itself after Revue's answer arrives.
  • In the headless card pictures, Jewel buttons draw dark and Swing-painted icons blank. They're right in the IDE, so this is the test harness's theme, but the pictures are less useful to read.
  • Headless card tests cover the light theme only (the sandbox walk is dark).

Waiting on Revue

  • Emoji reactions on review comments and the full @-mention list: the cards show them when --review carries reactions / mentionable (and --react exists). See thatrichan/revue for the ask.
Left over from #6 (the Compose/Jewel rewrite, released in jetbrains 1.2.0). ## The UI walk doesn't cover yet The sandbox walks (`task jetbrains:ui-test`, `jetbrains/src/uiTest/`) cover opening a review, both tabs, Hide/Show, typing in a card, reply, resolve, a new comment, Submit, and the Revue Companion tool window's list, page and Review in IDE. Not yet: - dragging the gutter's **+** over several lines (one composer on them all) - the Revue Review file tree following the file shown when the diff's ⟵/⟶ change it - a comment on several selected lines (selecting with keys didn't take in the walk) - Tab / Shift+Tab / Enter in a suggestion block inside a real diff (unit-tested in `CodeBlocksTest`, not walked) ## Small things seen - **Finish your review** moves a little when it packs itself after Revue's answer arrives. - In the headless card pictures, Jewel buttons draw dark and Swing-painted icons blank. They're right in the IDE, so this is the test harness's theme, but the pictures are less useful to read. - Headless card tests cover the light theme only (the sandbox walk is dark). ## Waiting on Revue - Emoji reactions on review comments and the full @-mention list: the cards show them when `--review` carries `reactions` / `mentionable` (and `--react` exists). See thatrichan/revue for the ask.
Author
Owner

The "Small things seen" are done (merged in f90725e: 9efe38e, 4910b6a):

  • Finish your review stays put when Revue's answer arrives. The card measured itself at its full height and Compose centered it in the popup's old height until the repack; it now stays at the top (unboundedHeight, which editor inlays use too). Notify in Slack's line is also there, unticked, while Revue is asked, so the popup usually keeps its height.
  • Card tests draw in the IDE's own Light and Dark themes: Jewel buttons, checkboxes and Swing icons paint as in the IDE, and every card test runs in both (cards-<name>-light.png / -dark.png).

Still open here: the four UI walks (they can now run in Docker, #7) and reactions / @-mentions, waiting on thatrichan/revue#79.

The "Small things seen" are done (merged in f90725e: 9efe38e, 4910b6a): - **Finish your review stays put** when Revue's answer arrives. The card measured itself at its full height and Compose centered it in the popup's old height until the repack; it now stays at the top (`unboundedHeight`, which editor inlays use too). Notify in Slack's line is also there, unticked, while Revue is asked, so the popup usually keeps its height. - **Card tests draw in the IDE's own Light and Dark themes**: Jewel buttons, checkboxes and Swing icons paint as in the IDE, and every card test runs in both (`cards-<name>-light.png` / `-dark.png`). Still open here: the four UI walks (they can now run in Docker, #7) and reactions / @-mentions, waiting on thatrichan/revue#79.
Author
Owner

The four missing UI walks are in, in DiffWalkTest (merged in 2a16210), all passing in task jetbrains:ui-test:docker, each step checked in its screenshot:

  • dragging the gutter's + over lines 8–10: one composer, sent as --line 10 --start-line 8;
  • a comment on lines selected with Shift+↓ / Shift+End: "Lines 13–15";
  • Enter / Tab / Shift+Tab in a suggestion inside the real diff: the body Revue gets has exactly the expected indents;
  • the Revue Review file tree following ⟵/⟶ both ways.

No plugin bug turned up. The file tree's rows are now selectable (screen readers and the walk know which file is shown), and the tool window walk no longer fails when it asks for the tool window before it's registered. task jetbrains:ui-test[:docker] -- --tests '*DiffWalkTest' runs one walk.

Why selecting with keys didn't take before: Shift+↓ is a keymap action, run only for keys reaching the IDE's focused component; on a macOS desktop the sandbox IDE sits behind other apps without focus, so that step needs the Docker run (it says so when it can't get the focus).

All of #8 is done except the "Waiting on Revue" part (reactions and @-mentions, thatrichan/revue#79).

The four missing UI walks are in, in `DiffWalkTest` (merged in 2a16210), all passing in `task jetbrains:ui-test:docker`, each step checked in its screenshot: - dragging the gutter's **+** over lines 8–10: one composer, sent as `--line 10 --start-line 8`; - a comment on lines selected with Shift+↓ / Shift+End: "Lines 13–15"; - Enter / Tab / Shift+Tab in a suggestion inside the real diff: the body Revue gets has exactly the expected indents; - the Revue Review file tree following ⟵/⟶ both ways. No plugin bug turned up. The file tree's rows are now *selectable* (screen readers and the walk know which file is shown), and the tool window walk no longer fails when it asks for the tool window before it's registered. `task jetbrains:ui-test[:docker] -- --tests '*DiffWalkTest'` runs one walk. Why selecting with keys didn't take before: Shift+↓ is a keymap action, run only for keys reaching the IDE's focused component; on a macOS desktop the sandbox IDE sits behind other apps without focus, so that step needs the Docker run (it says so when it can't get the focus). All of #8 is done except the "Waiting on Revue" part (reactions and @-mentions, thatrichan/revue#79).
Author
Owner

The last part is in (merged in c446f91), now that Revue says editor 8 (thatrichan/revue#79):

  • Each review comment card shows its reactions as GitHub does, yours highlighted; clicking one adds or takes back yours (--react, --off), the card changing at once and going back if Revue fails. ☺︎+ opens the eight reactions inside the card (not a popup an inlay could cut off). No row on Bitbucket, which has none.
  • @ suggests who Revue says can be mentioned, in its order, writing Bitbucket's mention where given.
  • With an older Revue the cards are as before.
  • Card tests in light and dark, the fake answers editor 8, and the review walk reacts, takes it back and picks from the picker, checking the fake got each --react.

Everything in this issue is done.

The last part is in (merged in c446f91), now that Revue says `editor 8` (thatrichan/revue#79): - Each review comment card shows its reactions as GitHub does, yours highlighted; clicking one adds or takes back yours (`--react`, `--off`), the card changing at once and going back if Revue fails. ☺︎+ opens the eight reactions inside the card (not a popup an inlay could cut off). No row on Bitbucket, which has none. - @ suggests who Revue says can be mentioned, in its order, writing Bitbucket's `mention` where given. - With an older Revue the cards are as before. - Card tests in light and dark, the fake answers `editor 8`, and the review walk reacts, takes it back and picks from the picker, checking the fake got each `--react`. Everything in this issue is done.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
thatrichan/revue-companion#8
No description provided.