Stop printing garbage characters for F1,F2.. keys (#12835)

This commit is contained in:
Tommaso Sciortino
2025-11-10 10:56:05 -08:00
committed by GitHub
parent 2136598e87
commit 3c9052a751
10 changed files with 70 additions and 18 deletions

View File

@@ -977,6 +977,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: 'h',
}),
);
@@ -987,6 +988,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: 'i',
}),
);
@@ -1004,6 +1006,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: '\r',
}),
);
@@ -1021,6 +1024,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\t',
}),
);
@@ -1038,6 +1042,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: true,
paste: false,
insertable: false,
sequence: '\u001b[9;2u',
}),
);
@@ -1060,6 +1065,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x7f',
}),
);
@@ -1084,6 +1090,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x7f',
});
result.current.handleInput({
@@ -1092,6 +1099,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x7f',
});
result.current.handleInput({
@@ -1100,6 +1108,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x7f',
});
});
@@ -1159,6 +1168,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x1b[D',
}),
); // cursor [0,1]
@@ -1170,6 +1180,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\x1b[C',
}),
); // cursor [0,2]
@@ -1189,6 +1200,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: textWithAnsi,
}),
);
@@ -1206,6 +1218,7 @@ describe('useTextBuffer', () => {
meta: false,
shift: true,
paste: false,
insertable: true,
sequence: '\r',
}),
); // Simulates Shift+Enter in VSCode terminal
@@ -1410,6 +1423,7 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
meta: false,
shift: false,
paste: false,
insertable: true,
sequence,
});
@@ -1468,6 +1482,7 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: largeTextWithUnsafe,
}),
);
@@ -1502,6 +1517,7 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: largeTextWithAnsi,
}),
);
@@ -1526,6 +1542,7 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: emojis,
}),
);
@@ -1717,12 +1734,35 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
meta: false,
shift: false,
paste: false,
insertable: true,
sequence: '\r',
}),
);
expect(getBufferState(result).lines).toEqual(['']);
});
it('should not print anything for function keys when singleLine is true', () => {
const { result } = renderHook(() =>
useTextBuffer({
viewport,
isValidPath: () => false,
singleLine: true,
}),
);
act(() =>
result.current.handleInput({
name: 'f1',
ctrl: false,
meta: false,
shift: false,
paste: false,
insertable: false,
sequence: '\u001bOP',
}),
);
expect(getBufferState(result).lines).toEqual(['']);
});
it('should strip newlines from pasted text when singleLine is true', () => {
const { result } = renderHook(() =>
useTextBuffer({