Skip to content

Indicator

Indicator is a passive editor status strip. It displays a 1-based caret position, marks modified content with *, and changes its border line while an ancestor window is being dragged. EditWindow wires one automatically.

Usage

ts
import { Indicator } from '@jsvision/ui';

const indicator = new Indicator();
indicator.setValue({ line: 12, col: 34 }, true);

Live example

Drive the passive line/column strip through its public IndicatorTarget update seam.

Props and public state

Indicator implements IndicatorTarget. Its public setValue({ line, col }, modified) method updates the projected caret and dirty state; construction has no options.

Caret and modified state

The colon is aligned to a stable column while the surrounding numbers grow. A leading * means the document has unsaved changes. Both values repaint reactively after setValue.

Window drag presentation

Inside a Window, the indicator discovers the ancestor drag signal: represents rest and represents dragging. Standalone indicators use the resting presentation.

Sizing and layout

Allocate one row and enough width for the marker plus position. EditWindow places a 14-cell strip in its bottom frame. Indicator never takes focus or handles input.

Best practices

  • Let Editor push updates through IndicatorTarget; do not poll caret state.
  • Treat it as presentation, not an editor command surface.

Theming

indicatorNormal styles rest; indicatorDragging styles an active window drag.