Skip to content

Editor Integration

Rebound integrates directly into the Android Studio editor so you can see recomposition data without switching to the tool window. Research on developer tooling consistently shows that context-switching between profiler windows and source code is where time goes to die.

Colored dots appear next to every @Composable function declaration in the editor:

IconMeaning
Red dotOver budget — this composable is currently violating its recomposition budget
Yellow dotNear budget — rate is between 70% and 100% of budget
Green dotWithin budget — the composable is actively recomposing within acceptable limits
No dotNot seen in the current session

Clicking a gutter icon opens a popup balloon showing:

  • Current rate and budget
  • Skip percentage
  • Budget class
  • Reason for current status
  • A “Show in Rebound” link that opens the tool window and selects this composable

The gutter icons are provided by ReboundLineMarkerProvider, which implements LineMarkerProvider. It scans PSI for @Composable annotations and matches the function’s fully-qualified name against SessionStore.currentEntries. Throttling is handled automatically by DaemonCodeAnalyzer.

Block inlays appear above @Composable function signatures, showing live metrics:

// 12/s | budget: 8/s | OVER | skip: 45%
@Composable
fun ProfileHeader(user: User, avatarUrl: String) {
// ...
}

The inlay is color-coded to match the composable’s status (red for violations, yellow for near-budget, green for OK).

Inlay hints are only shown when:

  • The Rebound connection is active
  • The composable has been seen in the current session
  • The setting is enabled (Settings > Inlay Hints > Rebound)

Inlay hints use the InlayHintsProvider API. They update when new snapshot data arrives and are automatically throttled by the IntelliJ platform.

A widget in the bottom-right corner of Android Studio provides a global overview:

Rebound: 45 composables | 3 violations

The widget includes a colored circle:

Circle ColorMeaning
GreenConnected, no violations
RedConnected, violations present
GrayNot connected

Clicking the status bar widget opens the Rebound tool window.

The widget is provided by ReboundStatusBarWidget via StatusBarWidgetFactory, using StatusBarWidget.TextPresentation for the display.

All editor integration features can be toggled independently:

SettingDefaultLocation
Show gutter iconstrueSettings > Tools > Rebound
Show inlay hintstrueSettings > Inlay Hints > Rebound

When disabled, the corresponding visual elements are removed from the editor without affecting data collection or the tool window.