perf(tui): use startsWith short-circuit in isImageLine

This commit is contained in:
Mario Zechner 2026-01-30 17:07:31 +01:00
parent 4b98473414
commit abd0c47b03

View file

@ -81,10 +81,16 @@ export function resetCapabilitiesCache(): void {
cachedCapabilities = null; cachedCapabilities = null;
} }
const KITTY_PREFIX = "\x1b_G";
const ITERM2_PREFIX = "\x1b]1337;File=";
export function isImageLine(line: string): boolean { export function isImageLine(line: string): boolean {
// Check for Kitty or iTerm2 image escape sequences anywhere in the line // Fast path: sequence at line start (single-row images)
// This prevents width checks from failing on lines containing image data if (line.startsWith(KITTY_PREFIX) || line.startsWith(ITERM2_PREFIX)) {
return line.includes("\x1b_G") || line.includes("\x1b]1337;File="); return true;
}
// Slow path: sequence elsewhere (multi-row images have cursor-up prefix)
return line.includes(KITTY_PREFIX) || line.includes(ITERM2_PREFIX);
} }
/** /**