Dont double run "Find in Files" when "searchOnType" enabled

Fixes #84534.
This commit is contained in:
Jackson Kearl 2019-11-11 15:02:11 -08:00
parent 8cf0431e96
commit e1d887932e
2 changed files with 14 additions and 4 deletions

View file

@ -797,8 +797,7 @@ export class SearchView extends ViewletPanel {
if (this.searchWidget.searchInput.getRegex()) { if (this.searchWidget.searchInput.getRegex()) {
selectedText = strings.escapeRegExpCharacters(selectedText); selectedText = strings.escapeRegExpCharacters(selectedText);
} }
this.searchWidget.setValue(selectedText, true);
this.searchWidget.searchInput.setValue(selectedText);
updatedText = true; updatedText = true;
this.onQueryChanged(); this.onQueryChanged();
} }

View file

@ -149,6 +149,8 @@ export class SearchWidget extends Widget {
private _onDidHeightChange = this._register(new Emitter<void>()); private _onDidHeightChange = this._register(new Emitter<void>());
readonly onDidHeightChange: Event<void> = this._onDidHeightChange.event; readonly onDidHeightChange: Event<void> = this._onDidHeightChange.event;
private temporarilySkipSearchOnChange = false;
constructor( constructor(
container: HTMLElement, container: HTMLElement,
options: ISearchWidgetOptions, options: ISearchWidgetOptions,
@ -404,6 +406,11 @@ export class SearchWidget extends Widget {
this._onReplaceToggled.fire(); this._onReplaceToggled.fire();
} }
setValue(value: string, skipSearchOnChange: boolean) {
this.searchInput.setValue(value);
this.temporarilySkipSearchOnChange = skipSearchOnChange || this.temporarilySkipSearchOnChange;
}
setReplaceAllActionState(enabled: boolean): void { setReplaceAllActionState(enabled: boolean): void {
if (this.replaceAllAction.enabled !== enabled) { if (this.replaceAllAction.enabled !== enabled) {
this.replaceAllAction.enabled = enabled; this.replaceAllAction.enabled = enabled;
@ -450,8 +457,12 @@ export class SearchWidget extends Widget {
this.setReplaceAllActionState(false); this.setReplaceAllActionState(false);
if (this.searchConfiguration.searchOnType) { if (this.searchConfiguration.searchOnType) {
this._onSearchCancel.fire({ focus: false }); if (this.temporarilySkipSearchOnChange) {
this._searchDelayer.trigger((() => this.submitSearch()), this.searchConfiguration.searchOnTypeDebouncePeriod); this.temporarilySkipSearchOnChange = false;
} else {
this._onSearchCancel.fire({ focus: false });
this._searchDelayer.trigger((() => this.submitSearch()), this.searchConfiguration.searchOnTypeDebouncePeriod);
}
} }
} }