Fix regression in handling shift+tab resulting in u in the input prompt. (#11634)

This commit is contained in:
Jacob Richman
2025-10-21 19:54:51 -07:00
committed by GitHub
parent cc3904f026
commit 306e12c23c
2 changed files with 35 additions and 1 deletions

View File

@@ -953,6 +953,40 @@ describe('useTextBuffer', () => {
expect(getBufferState(result).lines).toEqual(['', '']);
});
it('should do nothing for a tab key press', () => {
const { result } = renderHook(() =>
useTextBuffer({ viewport, isValidPath: () => false }),
);
act(() =>
result.current.handleInput({
name: 'tab',
ctrl: false,
meta: false,
shift: false,
paste: false,
sequence: '\t',
}),
);
expect(getBufferState(result).text).toBe('');
});
it('should do nothing for a shift tab key press', () => {
const { result } = renderHook(() =>
useTextBuffer({ viewport, isValidPath: () => false }),
);
act(() =>
result.current.handleInput({
name: 'tab',
ctrl: false,
meta: false,
shift: true,
paste: false,
sequence: '\u001b[9;2u',
}),
);
expect(getBufferState(result).text).toBe('');
});
it('should handle "Backspace" key', () => {
const { result } = renderHook(() =>
useTextBuffer({

View File

@@ -1933,7 +1933,7 @@ export function useTextBuffer({
else if (key.name === 'delete' || (key.ctrl && key.name === 'd')) del();
else if (key.ctrl && !key.shift && key.name === 'z') undo();
else if (key.ctrl && key.shift && key.name === 'z') redo();
else if (input && !key.ctrl && !key.meta) {
else if (input && !key.ctrl && !key.meta && key.name !== 'tab') {
insert(input, { paste: key.paste });
}
},