TerminalGraphicsFrame.scan constructor

TerminalGraphicsFrame.scan(
  1. String value
)

Scans value for retained graphics visible in the frame.

Implementation

factory TerminalGraphicsFrame.scan(String value) {
  var hasRetainedGraphics = false;
  final retainedImageIds = <int>{};

  for (final control in parseTerminalGraphicsControls(value)) {
    if (control.protocol != TerminalGraphicsProtocol.kitty ||
        !control.displaysImage) {
      continue;
    }
    hasRetainedGraphics = true;
    final id = control.imageId;
    if (id != null) retainedImageIds.add(id);
  }

  if (!hasRetainedGraphics && retainedImageIds.isEmpty) {
    return TerminalGraphicsFrame.empty;
  }
  return TerminalGraphicsFrame(
    hasRetainedGraphics: hasRetainedGraphics,
    retainedImageIds: retainedImageIds,
  );
}