terminalSearchString property
String
get
terminalSearchString
returns the current terminal search string. The search string will be refreshed on demand if
Implementation
String get terminalSearchString {
final bufferLength = _terminal.buffer.lines.length;
final terminalWidth = _terminal.terminalWidth;
var isAnySearchStringInvalid = false;
for (var i = 0; i < bufferLength; i++) {
if (!_terminal.buffer.lines[i].hasCachedSearchString) {
isAnySearchStringInvalid = true;
}
}
late String completeSearchString;
if (_cachedSearchString != null &&
_lastTerminalWidth != null &&
_lastTerminalWidth! == terminalWidth &&
!isAnySearchStringInvalid) {
completeSearchString = _cachedSearchString!;
} else {
final bufferContent = StringBuffer();
for (var i = 0; i < bufferLength; i++) {
final BufferLine line = _terminal.buffer.lines[i];
final searchString = line.toSearchString(terminalWidth);
bufferContent.write(searchString);
if (searchString.length < terminalWidth) {
// fill up so that the row / col can be mapped back later on
bufferContent.writeAll(
List<String>.filled(terminalWidth - searchString.length, ' '));
}
}
completeSearchString = bufferContent.toString();
_cachedSearchString = completeSearchString;
_lastTerminalWidth = terminalWidth;
}
return completeSearchString;
}