Skip to content

Commit 01a8501

Browse files
fix: resolve eslint no-control-regex error in terminal-patterns
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a649e4e commit 01a8501

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

packages/vscode-extension/src/terminal/terminal-patterns.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,9 @@ export function maskTerminalOutput(data: string, patterns: TerminalPattern[]): M
186186
// Preserve ANSI codes and line breaks within the matched range.
187187
// This maintains terminal layout when a key spans multiple visual lines.
188188
const matchedOriginal = data.slice(origStart, origEnd);
189-
const structural = matchedOriginal.replace(/[^\x1b\r\n]/g, '').length > 0
190-
? extractStructural(matchedOriginal)
191-
: '';
189+
// eslint-disable-next-line no-control-regex
190+
const hasStructural = /[\x1b\r\n]/.test(matchedOriginal);
191+
const structural = hasStructural ? extractStructural(matchedOriginal) : '';
192192

193193
result = result.slice(0, origStart) + m.mask + structural + result.slice(origEnd);
194194
}
@@ -204,10 +204,9 @@ export function maskTerminalOutput(data: string, patterns: TerminalPattern[]): M
204204
*/
205205
function extractStructural(text: string): string {
206206
const parts: string[] = [];
207-
// eslint-disable-next-line no-control-regex
208-
const re = new RegExp(ANSI_AND_STRUCTURAL_REGEX.source, 'g');
207+
ANSI_AND_STRUCTURAL_REGEX.lastIndex = 0;
209208
let m: RegExpExecArray | null;
210-
while ((m = re.exec(text)) !== null) {
209+
while ((m = ANSI_AND_STRUCTURAL_REGEX.exec(text)) !== null) {
211210
parts.push(m[0]);
212211
}
213212
return parts.join('');

0 commit comments

Comments
 (0)