Simplify paste handling (#16654)

This commit is contained in:
Tommaso Sciortino
2026-01-14 13:27:36 -08:00
committed by GitHub
parent 41369f67eb
commit 94d5ae541e
22 changed files with 25 additions and 97 deletions

View File

@@ -114,7 +114,7 @@ describe(`useKeypress`, () => {
const key = { name: 'return', sequence: '\x1B\r' };
act(() => stdin.write(key.sequence));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ ...key, meta: true, paste: false }),
expect.objectContaining({ ...key, meta: true }),
);
});
@@ -139,11 +139,10 @@ describe(`useKeypress`, () => {
expect(onKeypress).toHaveBeenCalledTimes(1);
expect(onKeypress).toHaveBeenCalledWith({
name: '',
name: 'paste',
ctrl: false,
meta: false,
shift: false,
paste: true,
insertable: true,
sequence: pasteText,
});
@@ -155,19 +154,19 @@ describe(`useKeypress`, () => {
const keyA = { name: 'a', sequence: 'a' };
act(() => stdin.write('a'));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ ...keyA, paste: false }),
expect.objectContaining({ ...keyA }),
);
const pasteText = 'pasted';
act(() => stdin.write(PASTE_START + pasteText + PASTE_END));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ paste: true, sequence: pasteText }),
expect.objectContaining({ name: 'paste', sequence: pasteText }),
);
const keyB = { name: 'b', sequence: 'b' };
act(() => stdin.write('b'));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ ...keyB, paste: false }),
expect.objectContaining({ ...keyB }),
);
expect(onKeypress).toHaveBeenCalledTimes(3);
@@ -183,10 +182,8 @@ describe(`useKeypress`, () => {
stdin.write(PASTE_END);
});
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ paste: true, sequence: pasteText }),
expect.objectContaining({ name: 'paste', sequence: pasteText }),
);
expect(onKeypress).toHaveBeenCalledTimes(1);
});
it('should handle paste false alarm', async () => {
@@ -222,10 +219,10 @@ describe(`useKeypress`, () => {
);
});
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ paste: true, sequence: pasteText1 }),
expect.objectContaining({ name: 'paste', sequence: pasteText1 }),
);
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ paste: true, sequence: pasteText2 }),
expect.objectContaining({ name: 'paste', sequence: pasteText2 }),
);
expect(onKeypress).toHaveBeenCalledTimes(2);
@@ -237,7 +234,7 @@ describe(`useKeypress`, () => {
const keyA = { name: 'a', sequence: 'a' };
act(() => stdin.write('a'));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ ...keyA, paste: false }),
expect.objectContaining({ ...keyA }),
);
const pasteText = 'pasted';
@@ -251,13 +248,13 @@ describe(`useKeypress`, () => {
stdin.write(PASTE_END.slice(3));
});
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ paste: true, sequence: pasteText }),
expect.objectContaining({ name: 'paste', sequence: pasteText }),
);
const keyB = { name: 'b', sequence: 'b' };
act(() => stdin.write('b'));
expect(onKeypress).toHaveBeenCalledWith(
expect.objectContaining({ ...keyB, paste: false }),
expect.objectContaining({ ...keyB }),
);
expect(onKeypress).toHaveBeenCalledTimes(3);

View File

@@ -61,7 +61,6 @@ describe('useSelectionList', () => {
ctrl: options.ctrl ?? false,
meta: false,
shift: options.shift ?? false,
paste: false,
insertable: false,
};
activeKeypressHandler(key);
@@ -331,7 +330,6 @@ describe('useSelectionList', () => {
ctrl: false,
meta: false,
shift: false,
paste: false,
insertable: true,
};
handler(key);
@@ -381,7 +379,6 @@ describe('useSelectionList', () => {
ctrl: false,
meta: false,
shift: false,
paste: false,
insertable: false,
};
handler(key);

View File

@@ -39,7 +39,6 @@ const createKey = (partial: Partial<Key>): Key => ({
ctrl: partial.ctrl || false,
meta: partial.meta || false,
shift: partial.shift || false,
paste: partial.paste || false,
insertable: partial.insertable || false,
...partial,
});

View File

@@ -312,7 +312,6 @@ export function useVim(buffer: TextBuffer, onSubmit?: (value: string) => void) {
ctrl: key.ctrl || false,
meta: key.meta || false,
shift: key.shift || false,
paste: key.paste || false,
insertable: key.insertable || false,
}),
[],