Hex1bTerminalRegionExtensions
Namespace: Hex1b.Automation
Assembly: Hex1b.dll
Extension methods for providing common text operations.
public static class Hex1bTerminalRegionExtensionsInheritance
Object → Hex1bTerminalRegionExtensions
Methods
ContainsMultiLinePattern(IHex1bTerminalRegion, Regex, bool, string?)
Checks if the region contains text matching the specified compiled regular expression across multiple lines.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: Boolean
True if a match is found, false otherwise.
public static bool ContainsMultiLinePattern(this IHex1bTerminalRegion region, Regex regex, bool trimLines = false, string? lineSeparator = "\n")ContainsMultiLinePattern(IHex1bTerminalRegion, string, RegexOptions, bool, string?)
Checks if the region contains text matching the specified regular expression pattern across multiple lines.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None). Singleline option treats the entire text as one line, allowing . to match newlines.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: Boolean
True if a match is found, false otherwise.
public static bool ContainsMultiLinePattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None, bool trimLines = false, string? lineSeparator = "\n")ContainsPattern(IHex1bTerminalRegion, Regex)
Checks if the region contains text matching the specified compiled regular expression.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.
Returns: Boolean
True if a match is found, false otherwise.
public static bool ContainsPattern(this IHex1bTerminalRegion region, Regex regex)ContainsPattern(IHex1bTerminalRegion, string, RegexOptions)
Checks if the region contains text matching the specified regular expression pattern.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None).
Returns: Boolean
True if a match is found, false otherwise.
public static bool ContainsPattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None)ContainsText(IHex1bTerminalRegion, string)
Checks if the region contains the specified text anywhere.
Parameters:
region(IHex1bTerminalRegion):text(String):
Returns: Boolean
public static bool ContainsText(this IHex1bTerminalRegion region, string text)ContentEquals(IHex1bTerminalRegion, IHex1bTerminalRegion)
Compares the content of two regions. Returns true if they have the same dimensions and identical cell content.
Parameters:
region(IHex1bTerminalRegion):other(IHex1bTerminalRegion):
Returns: Boolean
public static bool ContentEquals(this IHex1bTerminalRegion region, IHex1bTerminalRegion other)FindFirstMultiLinePattern(IHex1bTerminalRegion, Regex, bool, string?)
Finds the first occurrence of a compiled regular expression across multiple lines in the region. The entire region text is joined with the specified separator, allowing patterns to match across line boundaries.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: Nullable<MultiLineTextMatch>
The first match with its coordinates, or null if not found.
public static MultiLineTextMatch? FindFirstMultiLinePattern(this IHex1bTerminalRegion region, Regex regex, bool trimLines = false, string? lineSeparator = "\n")FindFirstMultiLinePattern(IHex1bTerminalRegion, string, RegexOptions, bool, string?)
Finds the first occurrence of a regular expression pattern across multiple lines in the region. The entire region text is joined with the specified separator, allowing patterns to match across line boundaries.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None). Singleline option treats the entire text as one line, allowing . to match newlines.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: Nullable<MultiLineTextMatch>
The first match with its coordinates, or null if not found.
public static MultiLineTextMatch? FindFirstMultiLinePattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None, bool trimLines = false, string? lineSeparator = "\n")FindFirstPattern(IHex1bTerminalRegion, Regex)
Finds the first occurrence of a compiled regular expression in the region. Returns the if found, or null if not found.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.
Returns: Nullable<TextMatch>
The first match with its coordinates and matched text, or null if not found.
public static TextMatch? FindFirstPattern(this IHex1bTerminalRegion region, Regex regex)FindFirstPattern(IHex1bTerminalRegion, string, RegexOptions)
Finds the first occurrence of a regular expression pattern in the region. Returns the if found, or null if not found.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None).
Returns: Nullable<TextMatch>
The first match with its coordinates and matched text, or null if not found.
public static TextMatch? FindFirstPattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None)FindMultiLinePattern(IHex1bTerminalRegion, Regex, bool, string?)
Finds all occurrences of a compiled regular expression across multiple lines in the region. The entire region text is joined with the specified separator, allowing patterns to match across line boundaries.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: List<MultiLineTextMatch>
A list of matches with their start and end coordinates.
public static List<MultiLineTextMatch> FindMultiLinePattern(this IHex1bTerminalRegion region, Regex regex, bool trimLines = false, string? lineSeparator = "\n")FindMultiLinePattern(IHex1bTerminalRegion, string, RegexOptions, bool, string?)
Finds all occurrences of a regular expression pattern across multiple lines in the region. The entire region text is joined with the specified separator, allowing patterns to match across line boundaries.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None). Singleline option treats the entire text as one line, allowing . to match newlines.trimLines(Boolean): If true, trailing whitespace is removed from each line before matching. Default is false to preserve exact screen content.lineSeparator(String): The string to insert between lines. Default is "\n". Pass null or empty to concatenate lines directly.
Returns: List<MultiLineTextMatch>
A list of matches with their start and end coordinates.
public static List<MultiLineTextMatch> FindMultiLinePattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None, bool trimLines = false, string? lineSeparator = "\n")FindPattern(IHex1bTerminalRegion, Regex)
Finds all occurrences of a compiled regular expression in the region. Returns a list of objects with start and end coordinates.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.regex(Regex): The compiled regular expression to search for.
Returns: List<TextMatch>
A list of matches with their coordinates and matched text.
public static List<TextMatch> FindPattern(this IHex1bTerminalRegion region, Regex regex)FindPattern(IHex1bTerminalRegion, string, RegexOptions)
Finds all occurrences of a regular expression pattern in the region. Returns a list of objects with start and end coordinates.
Parameters:
region(IHex1bTerminalRegion): The terminal region to search.pattern(String): The regular expression pattern to search for.options(RegexOptions): Regular expression options (default is None).
Returns: List<TextMatch>
A list of matches with their coordinates and matched text.
public static List<TextMatch> FindPattern(this IHex1bTerminalRegion region, string pattern, RegexOptions options = RegexOptions.None)FindText(IHex1bTerminalRegion, string)
Finds all occurrences of the specified text in the region. Returns a list of (line, column) positions.
Parameters:
region(IHex1bTerminalRegion):text(String):
Returns: List<Int32, Int32>>
public static List<(int Line, int Column)> FindText(this IHex1bTerminalRegion region, string text)GetDisplayText(IHex1bTerminalRegion)
Gets all lines as a single string for display/debugging (non-empty lines only).
Parameters:
region(IHex1bTerminalRegion):
Returns: String
public static string GetDisplayText(this IHex1bTerminalRegion region)GetLine(IHex1bTerminalRegion, int)
Gets the text content of a line.
Parameters:
region(IHex1bTerminalRegion):y(Int32):
Returns: String
public static string GetLine(this IHex1bTerminalRegion region, int y)GetLineTrimmed(IHex1bTerminalRegion, int)
Gets the text content of a line with trailing whitespace removed.
Parameters:
region(IHex1bTerminalRegion):y(Int32):
Returns: String
public static string GetLineTrimmed(this IHex1bTerminalRegion region, int y)GetMultiLineTextAt(IHex1bTerminalRegion, int, int, int, int)
Gets the text content across multiple lines at the specified coordinates.
Parameters:
region(IHex1bTerminalRegion): The terminal region.startLine(Int32): The starting line (Y coordinate).startColumn(Int32): The starting column (X coordinate).endLine(Int32): The ending line (Y coordinate).endColumn(Int32): The ending column (X coordinate, exclusive).
Returns: String
The text at the specified coordinates, with lines separated by newlines.
public static string GetMultiLineTextAt(this IHex1bTerminalRegion region, int startLine, int startColumn, int endLine, int endColumn)GetMultiLineTextAt(IHex1bTerminalRegion, MultiLineTextMatch)
Gets the text content at the coordinates specified by a .
Parameters:
region(IHex1bTerminalRegion): The terminal region.match(MultiLineTextMatch): The multi-line text match containing the coordinates.
Returns: String
The text at the match coordinates.
public static string GetMultiLineTextAt(this IHex1bTerminalRegion region, MultiLineTextMatch match)GetNonEmptyLines(IHex1bTerminalRegion)
Gets all non-empty lines from the region.
Parameters:
region(IHex1bTerminalRegion):
Returns: IEnumerable<String>
public static IEnumerable<string> GetNonEmptyLines(this IHex1bTerminalRegion region)GetText(IHex1bTerminalRegion)
Gets all lines as a single string separated by newlines.
Parameters:
region(IHex1bTerminalRegion):
Returns: String
public static string GetText(this IHex1bTerminalRegion region)GetTextAt(IHex1bTerminalRegion, int, int, int)
Gets the text content at the specified coordinates.
Parameters:
region(IHex1bTerminalRegion): The terminal region.line(Int32): The line (Y coordinate) to read from.startColumn(Int32): The starting column (X coordinate).endColumn(Int32): The ending column (X coordinate, exclusive).
Returns: String
The text at the specified coordinates.
public static string GetTextAt(this IHex1bTerminalRegion region, int line, int startColumn, int endColumn)GetTextAt(IHex1bTerminalRegion, TextMatch)
Gets the text content at the coordinates specified by a .
Parameters:
region(IHex1bTerminalRegion): The terminal region.match(TextMatch): The text match containing the coordinates.
Returns: String
The text at the match coordinates.
public static string GetTextAt(this IHex1bTerminalRegion region, TextMatch match)HasAttribute(IHex1bTerminalRegion, CellAttributes)
Checks if any cell in the region has the specified attribute.
Parameters:
region(IHex1bTerminalRegion):attribute(CellAttributes):
Returns: Boolean
public static bool HasAttribute(this IHex1bTerminalRegion region, CellAttributes attribute)HasBackgroundColor(IHex1bTerminalRegion, Hex1bColor)
Checks if any cell in the region has the specified background color.
Parameters:
region(IHex1bTerminalRegion):color(Hex1bColor):
Returns: Boolean
public static bool HasBackgroundColor(this IHex1bTerminalRegion region, Hex1bColor color)HasBackgroundColor(IHex1bTerminalRegion)
Checks if any cell in the region has a non-null background color.
Parameters:
region(IHex1bTerminalRegion):
Returns: Boolean
public static bool HasBackgroundColor(this IHex1bTerminalRegion region)HasForegroundColor(IHex1bTerminalRegion, Hex1bColor)
Checks if any cell in the region has the specified foreground color.
Parameters:
region(IHex1bTerminalRegion):color(Hex1bColor):
Returns: Boolean
public static bool HasForegroundColor(this IHex1bTerminalRegion region, Hex1bColor color)HasForegroundColor(IHex1bTerminalRegion)
Checks if any cell in the region has a non-null foreground color.
Parameters:
region(IHex1bTerminalRegion):
Returns: Boolean
public static bool HasForegroundColor(this IHex1bTerminalRegion region)TextEquals(IHex1bTerminalRegion, IHex1bTerminalRegion)
Compares only the text content of two regions. Ignores colors and other cell attributes.
Parameters:
region(IHex1bTerminalRegion):other(IHex1bTerminalRegion):
Returns: Boolean
public static bool TextEquals(this IHex1bTerminalRegion region, IHex1bTerminalRegion other)