Class MultilineEditControlBuilder
- Namespace
- SharpConsoleUI.Builders
- Assembly
- SharpConsoleUI.dll
Fluent builder for multiline edit controls
public sealed class MultilineEditControlBuilder : IControlBuilder<MultilineEditControl>
- Inheritance
-
MultilineEditControlBuilder
- Implements
- Inherited Members
- Extension Methods
Methods
AsReadOnly(bool)
Sets the read-only state
public MultilineEditControlBuilder AsReadOnly(bool readOnly = true)
Parameters
readOnlyboolWhether the control is read-only
Returns
- MultilineEditControlBuilder
The builder for chaining
Build()
Builds the multiline edit control
public MultilineEditControl Build()
Returns
- MultilineEditControl
The configured multiline edit control
Centered()
Centers the control horizontally
public MultilineEditControlBuilder Centered()
Returns
- MultilineEditControlBuilder
The builder for chaining
Disabled()
Disables the control
public MultilineEditControlBuilder Disabled()
Returns
- MultilineEditControlBuilder
The builder for chaining
Enabled(bool)
Sets the enabled state
public MultilineEditControlBuilder Enabled(bool enabled = true)
Parameters
enabledboolWhether the control is enabled
Returns
- MultilineEditControlBuilder
The builder for chaining
IsEditing(bool)
Sets the editing state
public MultilineEditControlBuilder IsEditing(bool isEditing = true)
Parameters
isEditingboolWhether the control is in editing mode
Returns
- MultilineEditControlBuilder
The builder for chaining
NoWrap()
Disables text wrapping
public MultilineEditControlBuilder NoWrap()
Returns
- MultilineEditControlBuilder
The builder for chaining
OnContentChanged(WindowEventHandler<string>)
Sets the content changed event handler with window access
public MultilineEditControlBuilder OnContentChanged(WindowEventHandler<string> handler)
Parameters
handlerWindowEventHandler<string>Handler that receives sender, content, and window
Returns
- MultilineEditControlBuilder
The builder for chaining
OnContentChanged(EventHandler<string>)
Sets the content changed event handler
public MultilineEditControlBuilder OnContentChanged(EventHandler<string> handler)
Parameters
handlerEventHandler<string>The event handler
Returns
- MultilineEditControlBuilder
The builder for chaining
OnCursorPositionChanged(EventHandler<(int Line, int Column)>)
Sets the cursor position changed event handler
public MultilineEditControlBuilder OnCursorPositionChanged(EventHandler<(int Line, int Column)> handler)
Parameters
handlerEventHandler<(int Line, int Column)>Handler receiving (Line, Column) as 1-based indices
Returns
- MultilineEditControlBuilder
The builder for chaining
OnEditingModeChanged(EventHandler<bool>)
Sets the editing mode changed event handler
public MultilineEditControlBuilder OnEditingModeChanged(EventHandler<bool> handler)
Parameters
handlerEventHandler<bool>Handler receiving true when entering edit mode, false when leaving
Returns
- MultilineEditControlBuilder
The builder for chaining
OnGotFocus(WindowEventHandler<EventArgs>)
Sets the got focus event handler with window access
public MultilineEditControlBuilder OnGotFocus(WindowEventHandler<EventArgs> handler)
Parameters
handlerWindowEventHandler<EventArgs>Handler that receives sender, event data, and window
Returns
- MultilineEditControlBuilder
The builder for chaining
OnGotFocus(EventHandler)
Sets the got focus event handler
public MultilineEditControlBuilder OnGotFocus(EventHandler handler)
Parameters
handlerEventHandlerThe event handler
Returns
- MultilineEditControlBuilder
The builder for chaining
OnLostFocus(WindowEventHandler<EventArgs>)
Sets the lost focus event handler with window access
public MultilineEditControlBuilder OnLostFocus(WindowEventHandler<EventArgs> handler)
Parameters
handlerWindowEventHandler<EventArgs>Handler that receives sender, event data, and window
Returns
- MultilineEditControlBuilder
The builder for chaining
OnLostFocus(EventHandler)
Sets the lost focus event handler
public MultilineEditControlBuilder OnLostFocus(EventHandler handler)
Parameters
handlerEventHandlerThe event handler
Returns
- MultilineEditControlBuilder
The builder for chaining
OnOverwriteModeChanged(EventHandler<bool>)
Sets the overwrite mode changed event handler
public MultilineEditControlBuilder OnOverwriteModeChanged(EventHandler<bool> handler)
Parameters
handlerEventHandler<bool>Handler receiving true for overwrite mode, false for insert mode
Returns
- MultilineEditControlBuilder
The builder for chaining
OnSelectionChanged(EventHandler<string>)
Sets the selection changed event handler
public MultilineEditControlBuilder OnSelectionChanged(EventHandler<string> handler)
Parameters
handlerEventHandler<string>Handler receiving the selected text or empty string
Returns
- MultilineEditControlBuilder
The builder for chaining
Outline(bool)
Renders the editor in outline style (role colour on text, surface fill).
public MultilineEditControlBuilder Outline(bool outline = true)
Parameters
outlineboolWhether to use outline style.
Returns
- MultilineEditControlBuilder
The builder for chaining
Visible(bool)
Sets the visibility
public MultilineEditControlBuilder Visible(bool visible = true)
Parameters
visibleboolWhether the control is visible
Returns
- MultilineEditControlBuilder
The builder for chaining
WithAlignment(HorizontalAlignment)
Sets the horizontal alignment
public MultilineEditControlBuilder WithAlignment(HorizontalAlignment alignment)
Parameters
alignmentHorizontalAlignmentThe horizontal alignment
Returns
- MultilineEditControlBuilder
The builder for chaining
WithAutoIndent(bool)
Enables or disables auto-indent (new lines inherit leading whitespace)
public MultilineEditControlBuilder WithAutoIndent(bool autoIndent = true)
Parameters
autoIndentboolWhether auto-indent is enabled
Returns
- MultilineEditControlBuilder
The builder for chaining
WithBackgroundColor(Color)
Sets the background color
public MultilineEditControlBuilder WithBackgroundColor(Color color)
Parameters
colorColorThe background color
Returns
- MultilineEditControlBuilder
The builder for chaining
WithBorderColor(Color)
Sets the border color
public MultilineEditControlBuilder WithBorderColor(Color color)
Parameters
colorColorThe border color
Returns
- MultilineEditControlBuilder
The builder for chaining
WithColorRole(ColorRole, ThemeMode?)
Sets the control's semantic colour role.
public MultilineEditControlBuilder WithColorRole(ColorRole role, ThemeMode? mode = null)
Parameters
roleColorRoleThe semantic role determining the editor's colours.
modeThemeMode?Optional ThemeMode override for dark/light role-colour derivation. When null, the active theme's mode is used.
Returns
- MultilineEditControlBuilder
The builder for chaining
WithColors(Color, Color)
Sets the background and foreground colors
public MultilineEditControlBuilder WithColors(Color foreground, Color background)
Parameters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithContent(string)
Sets the initial content
public MultilineEditControlBuilder WithContent(string content)
Parameters
contentstringThe text content
Returns
- MultilineEditControlBuilder
The builder for chaining
WithContentLines(IEnumerable<string>)
Sets the initial content from multiple lines
public MultilineEditControlBuilder WithContentLines(IEnumerable<string> lines)
Parameters
linesIEnumerable<string>The content lines
Returns
- MultilineEditControlBuilder
The builder for chaining
WithContentLines(params string[])
Sets the initial content from multiple lines
public MultilineEditControlBuilder WithContentLines(params string[] lines)
Parameters
linesstring[]The content lines
Returns
- MultilineEditControlBuilder
The builder for chaining
WithCurrentLineHighlightColor(Color)
Sets the background color for current line highlighting
public MultilineEditControlBuilder WithCurrentLineHighlightColor(Color color)
Parameters
colorColorThe highlight background color
Returns
- MultilineEditControlBuilder
The builder for chaining
WithEditingHints(bool)
Enables editing mode hints at the bottom-right of the viewport
public MultilineEditControlBuilder WithEditingHints(bool show = true)
Parameters
showboolWhether to show editing hints
Returns
- MultilineEditControlBuilder
The builder for chaining
WithEscapeExitsEditMode(bool)
Controls whether pressing Escape exits editing mode. Set to false for IDE-style editors where Escape is used for other purposes.
public MultilineEditControlBuilder WithEscapeExitsEditMode(bool exits = true)
Parameters
exitsboolWhether Escape exits editing mode (default: true)
Returns
- MultilineEditControlBuilder
The builder for chaining
WithFocusedColors(Color, Color)
Sets the focused background and foreground colors
public MultilineEditControlBuilder WithFocusedColors(Color foreground, Color background)
Parameters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithForegroundColor(Color)
Sets the foreground color
public MultilineEditControlBuilder WithForegroundColor(Color color)
Parameters
colorColorThe foreground color
Returns
- MultilineEditControlBuilder
The builder for chaining
WithGutterRenderer(IGutterRenderer)
Adds a gutter renderer that will be appended after line numbers (if enabled). Renderers are painted left-to-right in the order they are added.
public MultilineEditControlBuilder WithGutterRenderer(IGutterRenderer renderer)
Parameters
rendererIGutterRendererThe gutter renderer to add
Returns
- MultilineEditControlBuilder
The builder for chaining
WithHeight(int)
Sets the control's layout height (rows). Distinct from WithViewportHeight(int), which sets the editor's internal viewport height.
public MultilineEditControlBuilder WithHeight(int height)
Parameters
heightintThe control height in rows.
Returns
- MultilineEditControlBuilder
The builder for chaining
WithHighlightCurrentLine(bool)
Enables or disables current line highlighting
public MultilineEditControlBuilder WithHighlightCurrentLine(bool highlight = true)
Parameters
highlightboolWhether to highlight the current line
Returns
- MultilineEditControlBuilder
The builder for chaining
WithHorizontalScrollbar(ScrollbarVisibility)
Sets the horizontal scrollbar visibility
public MultilineEditControlBuilder WithHorizontalScrollbar(ScrollbarVisibility visibility)
Parameters
visibilityScrollbarVisibilityThe scrollbar visibility
Returns
- MultilineEditControlBuilder
The builder for chaining
WithLineNumberColor(Color)
Sets the foreground color for line numbers
public MultilineEditControlBuilder WithLineNumberColor(Color color)
Parameters
colorColorThe line number color
Returns
- MultilineEditControlBuilder
The builder for chaining
WithLineNumbers(bool)
Enables or disables line number display in the gutter
public MultilineEditControlBuilder WithLineNumbers(bool show = true)
Parameters
showboolWhether to show line numbers
Returns
- MultilineEditControlBuilder
The builder for chaining
WithMargin(int)
Sets uniform margin
public MultilineEditControlBuilder WithMargin(int margin)
Parameters
marginintThe margin value for all sides
Returns
- MultilineEditControlBuilder
The builder for chaining
WithMargin(int, int, int, int)
Sets the margin
public MultilineEditControlBuilder WithMargin(int left, int top, int right, int bottom)
Parameters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithMaxLength(int)
Sets the maximum total character length
public MultilineEditControlBuilder WithMaxLength(int maxLength)
Parameters
maxLengthintThe maximum character count
Returns
- MultilineEditControlBuilder
The builder for chaining
WithName(string)
Sets the control name for lookup
public MultilineEditControlBuilder WithName(string name)
Parameters
namestringThe control name
Returns
- MultilineEditControlBuilder
The builder for chaining
WithOverwriteMode(bool)
Enables or disables overwrite mode (typed characters replace existing text)
public MultilineEditControlBuilder WithOverwriteMode(bool overwrite = true)
Parameters
overwriteboolWhether overwrite mode is active
Returns
- MultilineEditControlBuilder
The builder for chaining
WithPlaceholder(string)
Sets the placeholder text shown when empty and not editing
public MultilineEditControlBuilder WithPlaceholder(string placeholderText)
Parameters
placeholderTextstringThe placeholder text
Returns
- MultilineEditControlBuilder
The builder for chaining
WithScrollbarColors(Color, Color)
Sets the scrollbar colors
public MultilineEditControlBuilder WithScrollbarColors(Color trackColor, Color thumbColor)
Parameters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithSelectionColors(Color, Color)
Sets the selection background and foreground colors
public MultilineEditControlBuilder WithSelectionColors(Color foreground, Color background)
Parameters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithShowWhitespace(bool)
Enables or disables visible whitespace markers
public MultilineEditControlBuilder WithShowWhitespace(bool show = true)
Parameters
showboolWhether to show whitespace characters
Returns
- MultilineEditControlBuilder
The builder for chaining
WithStickyPosition(StickyPosition)
Sets the sticky position
public MultilineEditControlBuilder WithStickyPosition(StickyPosition position)
Parameters
positionStickyPositionThe sticky position
Returns
- MultilineEditControlBuilder
The builder for chaining
WithSyntaxHighlighter(ISyntaxHighlighter)
Sets the syntax highlighter for content colorization
public MultilineEditControlBuilder WithSyntaxHighlighter(ISyntaxHighlighter highlighter)
Parameters
highlighterISyntaxHighlighterThe syntax highlighter implementation
Returns
- MultilineEditControlBuilder
The builder for chaining
WithTabSize(int)
Sets the tab size in spaces (1-8)
public MultilineEditControlBuilder WithTabSize(int tabSize)
Parameters
tabSizeintThe number of spaces per tab
Returns
- MultilineEditControlBuilder
The builder for chaining
WithTag(object)
Sets a tag object
public MultilineEditControlBuilder WithTag(object tag)
Parameters
tagobjectThe tag object
Returns
- MultilineEditControlBuilder
The builder for chaining
WithUndoLimit(int)
Sets the maximum undo history depth
public MultilineEditControlBuilder WithUndoLimit(int limit)
Parameters
limitintThe maximum number of undo actions
Returns
- MultilineEditControlBuilder
The builder for chaining
WithVerticalAlignment(VerticalAlignment)
Sets the vertical alignment
public MultilineEditControlBuilder WithVerticalAlignment(VerticalAlignment alignment)
Parameters
alignmentVerticalAlignmentThe vertical alignment
Returns
- MultilineEditControlBuilder
The builder for chaining
WithVerticalScrollbar(ScrollbarVisibility)
Sets the vertical scrollbar visibility
public MultilineEditControlBuilder WithVerticalScrollbar(ScrollbarVisibility visibility)
Parameters
visibilityScrollbarVisibilityThe scrollbar visibility
Returns
- MultilineEditControlBuilder
The builder for chaining
WithViewportHeight(int)
Sets the viewport height (number of visible lines)
public MultilineEditControlBuilder WithViewportHeight(int height)
Parameters
heightintThe viewport height
Returns
- MultilineEditControlBuilder
The builder for chaining
WithWidth(int)
Sets the width
public MultilineEditControlBuilder WithWidth(int width)
Parameters
widthintThe control width
Returns
- MultilineEditControlBuilder
The builder for chaining
WithWrapMode(WrapMode)
Sets the wrap mode
public MultilineEditControlBuilder WithWrapMode(WrapMode mode)
Parameters
modeWrapModeThe wrap mode
Returns
- MultilineEditControlBuilder
The builder for chaining
WrapCharacters()
Enables character wrapping
public MultilineEditControlBuilder WrapCharacters()
Returns
- MultilineEditControlBuilder
The builder for chaining
WrapWords()
Enables word wrapping
public MultilineEditControlBuilder WrapWords()
Returns
- MultilineEditControlBuilder
The builder for chaining
Operators
implicit operator MultilineEditControl(MultilineEditControlBuilder)
Implicit conversion to MultilineEditControl
public static implicit operator MultilineEditControl(MultilineEditControlBuilder builder)
Parameters
builderMultilineEditControlBuilderThe builder
Returns
- MultilineEditControl
The built multiline edit control