From 33cd8a0e113f8e4c5bd3c550460f805b3aad9ae5 Mon Sep 17 00:00:00 2001 From: Waldemar Kornewald Date: Fri, 6 Sep 2019 12:44:59 +0200 Subject: [PATCH] Fix #20768: Don't seed search without selection This makes CMD/CTRL+F consistent with other editors/IDEs. --- src/vs/editor/contrib/find/findController.ts | 16 +++++----------- src/vs/editor/contrib/find/test/find.test.ts | 9 ++------- .../contrib/find/test/findController.test.ts | 8 +++++--- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/vs/editor/contrib/find/findController.ts b/src/vs/editor/contrib/find/findController.ts index 664bc8c8bf32e..d8133f9b1cb4b 100644 --- a/src/vs/editor/contrib/find/findController.ts +++ b/src/vs/editor/contrib/find/findController.ts @@ -36,17 +36,11 @@ export function getSelectionSearchString(editor: ICodeEditor): string | null { const selection = editor.getSelection(); // if selection spans multiple lines, default search string to empty - if (selection.startLineNumber === selection.endLineNumber) { - if (selection.isEmpty()) { - let wordAtPosition = editor.getModel().getWordAtPosition(selection.getStartPosition()); - if (wordAtPosition) { - return wordAtPosition.word; - } - } else { - if (editor.getModel().getValueLengthInRange(selection) < SEARCH_STRING_MAX_LENGTH) { - return editor.getModel().getValueInRange(selection); - } - } + if (selection.startLineNumber === selection.endLineNumber + && !selection.isEmpty() + && editor.getModel().getValueLengthInRange(selection) < SEARCH_STRING_MAX_LENGTH + ) { + return editor.getModel().getValueInRange(selection); } return null; diff --git a/src/vs/editor/contrib/find/test/find.test.ts b/src/vs/editor/contrib/find/test/find.test.ts index 1cfc4f135f09f..2a536188a5cf9 100644 --- a/src/vs/editor/contrib/find/test/find.test.ts +++ b/src/vs/editor/contrib/find/test/find.test.ts @@ -20,17 +20,12 @@ suite('Find', () => { // The cursor is at the very top, of the file, at the first ABC let searchStringAtTop = getSelectionSearchString(editor); - assert.equal(searchStringAtTop, 'ABC'); + assert.equal(searchStringAtTop, null); // Move cursor to the end of ABC editor.setPosition(new Position(1, 3)); let searchStringAfterABC = getSelectionSearchString(editor); - assert.equal(searchStringAfterABC, 'ABC'); - - // Move cursor to DEF - editor.setPosition(new Position(1, 5)); - let searchStringInsideDEF = getSelectionSearchString(editor); - assert.equal(searchStringInsideDEF, 'DEF'); + assert.equal(searchStringAfterABC, null); }); }); diff --git a/src/vs/editor/contrib/find/test/findController.test.ts b/src/vs/editor/contrib/find/test/findController.test.ts index 6ac1767a275da..4659de7d06f4f 100644 --- a/src/vs/editor/contrib/find/test/findController.test.ts +++ b/src/vs/editor/contrib/find/test/findController.test.ts @@ -218,9 +218,11 @@ suite('FindController', () => { let findController = editor.registerAndInstantiateContribution(TestFindController); let nextMatchFindAction = new NextMatchFindAction(); - editor.setPosition({ - lineNumber: 1, - column: 9 + editor.setSelection({ + startLineNumber: 1, + startColumn: 8, + endLineNumber: 1, + endColumn: 11 }); nextMatchFindAction.run(null, editor);