Class LineNumberGutterRenderer
- Namespace
- SharpConsoleUI.Controls
- Assembly
- SharpConsoleUI.dll
Built-in gutter renderer that displays source line numbers. Highlights the current line number using the control's foreground color.
public class LineNumberGutterRenderer : IGutterRenderer
- Inheritance
-
LineNumberGutterRenderer
- Implements
- Inherited Members
- Extension Methods
Properties
LineNumberColor
Gets or sets the foreground color for line numbers. When null, defaults to Grey. The current-line number always uses the context's foreground color for emphasis.
public Color LineNumberColor { get; set; }
Property Value
Padding
Gets or sets the right-side padding in columns after the line number digits. Defaults to LineNumberGutterPadding.
public int Padding { get; set; }
Property Value
Methods
GetWidth(int)
Returns the width in columns that this renderer needs for the given document. Called once per paint pass; the sum of all renderer widths determines the total gutter width.
public int GetWidth(int totalLineCount)
Parameters
totalLineCountintThe total number of source lines in the document.
Returns
Render(in GutterRenderContext, int)
Renders a single row of the gutter.
public void Render(in GutterRenderContext context, int width)
Parameters
contextGutterRenderContextThe rendering context for this row.
widthintThe column width allocated to this renderer (from GetWidth(int)).
Events
Invalidated
Raised when the renderer's state changes after it has been attached to a MultilineEditControl (e.g. git-diff markers or breakpoints updated at runtime) so the host editor redraws. Just signal that something changed — the editor decides the invalidation level itself by re-querying GetWidth(int): if the gutter's total width changed the text reflows (a relayout), otherwise it is a paint-only redraw. The renderer does NOT (and must not) decide the level — that keeps the layout decision in the one place that owns it, derived from GetWidth(int).
public event EventHandler? Invalidated
Event Type
Remarks
Raising this replaces any manual editor.Container?.Invalidate(...) the consumer used to call
after mutating the renderer. A renderer whose state never changes after construction (e.g. the
built-in line-number renderer) simply never raises it.