Skip to content
ConsoleMonster

API Reference

Class

Lanes

Namespace ConsoleMonster.Widgets
Assembly ConsoleMonster
Modifiers sealed

One row per worker or item, for parallel workloads: a status marker (spinner while running), the label, a progress bar, the percentage, pass/fail/warning counts and what the lane is doing now. When there are more lanes than rows, running lanes are kept visible and the rest is summarised in a final line. Live operations (Key = lane): add (Text = label, Total), advance (Value = steps, State = step result, Text = detail), state (State, Text), detail (Text), total (Total), complete (State).

Inheritance

Usage

Explore 69 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Accepted by parameters 34

Constructors

public Lanes(String name = "lanes") #

Creates a lanes widget.

Parameters

name System.String = "lanes" optionalposition: 0
The live name (default lanes).

Methods

Add 2 overloads
public Lane Add(String key, String? label = null, Double total = 0) #
Returns: Lane

Adds a lane or updates its label and total.

Parameters

key System.String requiredposition: 0
Unique key.
label System.String? = null optionalposition: 1
Label, or null to use the key.
total System.Double = 0 optionalposition: 2
Planned steps (0 = unknown).

Returns

The lane.

public Lane Add(String key, RichText label, Double total = 0) #
Returns: Lane

Adds a lane with a multicolour label, or updates its label and total.

Parameters

key System.String requiredposition: 0
Unique key.
label ConsoleMonster.Text.RichText requiredposition: 1
The rich label.
total System.Double = 0 optionalposition: 2
Planned steps (0 = unknown).

Returns

The lane.

public override Void Apply(LiveEvent liveEvent) #
Returns: Void

Applies an event to the widget's state.

Parameters

liveEvent ConsoleMonster.Live.LiveEvent requiredposition: 0
The event.
public override String? Describe(LiveEvent liveEvent) #
Returns: String?

Returns a line describing the event for line-based outputs (Stream/Plain), or null when the event is not worth a line (for example a single counter increment). Called after ILiveTarget.Apply.

Parameters

liveEvent ConsoleMonster.Live.LiveEvent requiredposition: 0
The event that was applied.

Returns

A plain line or null.

public String? GetSummaryLine() #
Returns: String?

A one-line summary (used for heartbeats in Stream/Plain mode).

Returns

The summary, or null when there are no lanes.

public LanesHandle Handle(ILiveDispatcher dispatcher) #
Returns: LanesHandle

Returns a handle that updates these lanes through a dispatcher.

Parameters

dispatcher ConsoleMonster.Live.ILiveDispatcher requiredposition: 0
The dispatcher.

Returns

The handle.

public override Size Measure(Constraints constraints, RenderContext context) #
Returns: Size

Returns the size the widget wants within the constraints.

Parameters

constraints ConsoleMonster.Layout.Constraints requiredposition: 0
The space offered.
context ConsoleMonster.Canvas.RenderContext requiredposition: 1
Profile, theme and glyphs.

Returns

The desired size, never larger than the constraints.

public override Void Render(Region region, RenderContext context) #
Returns: Void

Renders into a region. The region may be smaller or larger than the measured size.

Parameters

region ConsoleMonster.Canvas.Region requiredposition: 0
The target region.
context ConsoleMonster.Canvas.RenderContext requiredposition: 1
Profile, theme and glyphs.
public Boolean TryGetTaskbarProgress(out TaskbarState state, out Double fraction) #
Returns: Boolean

The overall progress for the terminal's indicator: the share of all steps done (finished lanes count in full), red when a lane failed, yellow with warnings, indeterminate while totals are unknown. Nothing once all passed.

Parameters

state ConsoleMonster.Output.TaskbarState requiredposition: 0
The state.
fraction System.Double requiredposition: 1
The fraction done, or NaN.

Returns

False when there is nothing to report.

Properties

public IReadOnlyList<Lane> Items { get; } #

The lanes in insertion order.

public Int32 MaxLabelWidth { get; set; } #

The widest label column (default 28).

public BarShape Shape { get; set; } #

The bar shape: BarShape.Line (default, thin strokes that keep rows apart) or BarShape.Block.

public Boolean ShowDetail { get; set; } #

Whether the detail column is shown (default true).

public ColumnFormat CountColumn { get; set; } #

Layout of the pass, fail and warning count columns. Each count is its own column across all rows: the symbol stays put and the number is right-aligned. Digits are reserved from the largest lane total (when totals are known) and from the largest count displayed so far, so columns never move during a run.

public ColumnFormat PercentColumn { get; set; } #

Layout of the percentage column (default right-aligned, four cells for "100%").

public Boolean CountSkipped { get; set; } #

Whether the third count column shows skipped steps (– / -) instead of warnings (▴ / !), for runs where skips matter more, such as test runs.

public IList<ProgressColumn>? Columns { get; set; } #

The columns of each row (see ProgressColumns, for example ProgressColumns.Standard plus ProgressColumns.Rate or a custom column), or null (default) for the classic layout: marker, label, bar, percentage, pass/fail/warning counts and detail. With columns set, the stream heartbeat line also summarises the running lanes through them.

public Boolean HideCompleted { get; set; } #

Whether finished lanes leave the display (counted in the summary line), so only running and queued work shows.

public Boolean CollapseWhenFinished { get; set; } #

Whether the display collapses to one summary line (12 done in 1m 05s) once every lane has finished.

public Boolean Transient { get; set; } #

Whether the display disappears once every lane has finished (it measures zero rows), so an inline session ends with nothing left of it. Combine with LiveSessionOptions.PrintFinalState off for a fully transient session.

public Boolean DimPending { get; set; } #

Whether a waiting (pending) lane's label is dimmed (default true).

public Boolean BoldActive { get; set; } #

Whether a running lane's label is bold, so the active work stands out (default false).

public Boolean ShowRunningCount { get; set; } #

Whether a last row counts the running lanes ("● 3 running") while any run (default false).

public StatusKind? CollapseWhen { get; set; } #

A state whose lanes fold into one summary row instead of a row each, for example StatusKind.Skip: "– 2 skipped: Alpha (46) · Beta (5)". Null (default) keeps every lane on its own row.

public TimeSpan RateWindow { get; set; } #

The moving window that smooths rates and remaining-time estimates (default 10 seconds).

Extension Methods

public static Lanes AddColumn(Lanes lanes, ProgressColumn item) #
Returns: Lanes

Adds an item to Lanes.Columns: The columns of each row (see ProgressColumns, for example ProgressColumns.Standard plus ProgressColumns.Rate or a custom column), or null (default) for the classic layout: marker, label, bar, percentage, pass/fail/warning counts and detail. With columns set, the stream heartbeat line also summarises the running lanes through them.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
item ConsoleMonster.Widgets.ProgressColumn requiredposition: 1
The item.

Returns

The same instance.

AddColumns 2 overloads
public static Lanes AddColumns(Lanes lanes, params ProgressColumn[] items) #
Returns: Lanes

Adds items to Lanes.Columns: The columns of each row (see ProgressColumns, for example ProgressColumns.Standard plus ProgressColumns.Rate or a custom column), or null (default) for the classic layout: marker, label, bar, percentage, pass/fail/warning counts and detail. With columns set, the stream heartbeat line also summarises the running lanes through them.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
items ConsoleMonster.Widgets.ProgressColumn[] requiredposition: 1
The items, in order.

Returns

The same instance.

public static Lanes AddColumns(Lanes lanes, IEnumerable<ProgressColumn> items) #
Returns: Lanes

Adds items to Lanes.Columns: The columns of each row (see ProgressColumns, for example ProgressColumns.Standard plus ProgressColumns.Rate or a custom column), or null (default) for the classic layout: marker, label, bar, percentage, pass/fail/warning counts and detail. With columns set, the stream heartbeat line also summarises the running lanes through them.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
items System.Collections.Generic.IEnumerable<ConsoleMonster.Widgets.ProgressColumn> requiredposition: 1
The items, in order.

Returns

The same instance.

public static Lanes WithBoldActive(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.BoldActive: Whether a running lane's label is bold, so the active work stands out (default false).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithCollapseWhen(Lanes lanes, StatusKind? value) #
Returns: Lanes

Sets Lanes.CollapseWhen: A state whose lanes fold into one summary row instead of a row each, for example StatusKind.Skip: "– 2 skipped: Alpha (46) · Beta (5)". Null (default) keeps every lane on its own row.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value ConsoleMonster.Styling.StatusKind? requiredposition: 1
The value.

Returns

The same instance.

public static Lanes WithCollapseWhenFinished(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.CollapseWhenFinished: Whether the display collapses to one summary line (12 done in 1m 05s) once every lane has finished.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithColumns(Lanes lanes, IList<ProgressColumn>? value) #
Returns: Lanes

Sets Lanes.Columns: The columns of each row (see ProgressColumns, for example ProgressColumns.Standard plus ProgressColumns.Rate or a custom column), or null (default) for the classic layout: marker, label, bar, percentage, pass/fail/warning counts and detail. With columns set, the stream heartbeat line also summarises the running lanes through them.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Collections.Generic.IList<ConsoleMonster.Widgets.ProgressColumn>? requiredposition: 1
The value.

Returns

The same instance.

WithCountColumn 2 overloads
public static Lanes WithCountColumn(Lanes lanes, ColumnFormat value) #
Returns: Lanes

Sets Lanes.CountColumn: Layout of the pass, fail and warning count columns. Each count is its own column across all rows: the symbol stays put and the number is right-aligned. Digits are reserved from the largest lane total (when totals are known) and from the largest count displayed so far, so columns never move during a run.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value ConsoleMonster.Layout.ColumnFormat requiredposition: 1
The value.

Returns

The same instance.

public static Lanes WithCountColumn(Lanes lanes, Action<ColumnFormat> configure) #
Returns: Lanes

Configures Lanes.CountColumn in place: Layout of the pass, fail and warning count columns. Each count is its own column across all rows: the symbol stays put and the number is right-aligned. Digits are reserved from the largest lane total (when totals are known) and from the largest count displayed so far, so columns never move during a run.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
configure System.Action<ConsoleMonster.Layout.ColumnFormat> requiredposition: 1
Configures the value.

Returns

The same instance.

public static Lanes WithCountSkipped(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.CountSkipped: Whether the third count column shows skipped steps (– / -) instead of warnings (▴ / !), for runs where skips matter more, such as test runs.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithDimPending(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.DimPending: Whether a waiting (pending) lane's label is dimmed (default true).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithHideCompleted(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.HideCompleted: Whether finished lanes leave the display (counted in the summary line), so only running and queued work shows.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithMaxLabelWidth(Lanes lanes, Int32 value) #
Returns: Lanes

Sets Lanes.MaxLabelWidth: The widest label column (default 28).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Int32 requiredposition: 1
The value.

Returns

The same instance.

WithPercentColumn 2 overloads
public static Lanes WithPercentColumn(Lanes lanes, ColumnFormat value) #
Returns: Lanes

Sets Lanes.PercentColumn: Layout of the percentage column (default right-aligned, four cells for "100%").

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value ConsoleMonster.Layout.ColumnFormat requiredposition: 1
The value.

Returns

The same instance.

public static Lanes WithPercentColumn(Lanes lanes, Action<ColumnFormat> configure) #
Returns: Lanes

Configures Lanes.PercentColumn in place: Layout of the percentage column (default right-aligned, four cells for "100%").

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
configure System.Action<ConsoleMonster.Layout.ColumnFormat> requiredposition: 1
Configures the value.

Returns

The same instance.

public static Lanes WithRateWindow(Lanes lanes, TimeSpan value) #
Returns: Lanes

Sets Lanes.RateWindow: The moving window that smooths rates and remaining-time estimates (default 10 seconds).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.TimeSpan requiredposition: 1
The value.

Returns

The same instance.

public static Lanes WithShape(Lanes lanes, BarShape value) #
Returns: Lanes

Sets Lanes.Shape: The bar shape: BarShape.Line (default, thin strokes that keep rows apart) or BarShape.Block.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value ConsoleMonster.Widgets.BarShape requiredposition: 1
The value.

Returns

The same instance.

public static Lanes WithShowDetail(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.ShowDetail: Whether the detail column is shown (default true).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithShowRunningCount(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.ShowRunningCount: Whether a last row counts the running lanes ("● 3 running") while any run (default false).

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.

public static Lanes WithTransient(Lanes lanes, Boolean value = true) #
Returns: Lanes

Sets Lanes.Transient: Whether the display disappears once every lane has finished (it measures zero rows), so an inline session ends with nothing left of it. Combine with LiveSessionOptions.PrintFinalState off for a fully transient session.

Parameters

lanes ConsoleMonster.Widgets.Lanes requiredposition: 0
The instance.
value System.Boolean = true optionalposition: 1
The value (default true).

Returns

The same instance.