diff --git a/lib/project-find-view.js b/lib/project-find-view.js index bac9dec8..897db490 100644 --- a/lib/project-find-view.js +++ b/lib/project-find-view.js @@ -318,7 +318,7 @@ class ProjectFindView { return searchPromise; } - search(options) { + async search(options) { // We always want to set the options passed in, even if we dont end up doing the search if (options == null) { options = {}; } this.model.getFindOptions().set(options); @@ -330,13 +330,13 @@ class ProjectFindView { let {onlyRunIfActive, onlyRunIfChanged} = options; if ((onlyRunIfActive && !this.model.active) || !findPattern) return Promise.resolve(); - return this.showResultPane().then(() => { - try { - return this.model.search(findPattern, pathsPattern, replacePattern, options); - } catch (e) { - this.setErrorMessage(e.message); - } - }); + await this.showResultPane() + + try { + return await this.model.search(findPattern, pathsPattern, replacePattern, options); + } catch (e) { + this.setErrorMessage(e.message); + } } replaceAll() { diff --git a/lib/project/results-model.js b/lib/project/results-model.js index 516a4ecd..3fa39d2f 100644 --- a/lib/project/results-model.js +++ b/lib/project/results-model.js @@ -187,7 +187,7 @@ module.exports = class ResultsModel { ) } - search (findPattern, pathsPattern, replacePattern, options = {}) { + async search (findPattern, pathsPattern, replacePattern, options = {}) { if (!this.shouldRerunSearch(findPattern, pathsPattern, options)) { this.emitter.emit('did-noop-search') return Promise.resolve() @@ -236,17 +236,18 @@ module.exports = class ResultsModel { }) this.emitter.emit('did-start-searching', this.inProgressSearchPromise) - return this.inProgressSearchPromise.then(message => { - if (message === 'cancelled') { - this.emitter.emit('did-cancel-searching') - } else { - const resultsSummary = this.getResultsSummary() - this.metricsReporter.sendSearchEvent(Date.now() - startTime, resultsSummary.matchCount) - this.inProgressSearchPromise = null - this.emitter.emit('did-finish-searching', resultsSummary) - } - }) + const message = await this.inProgressSearchPromise + + if (message === 'cancelled') { + this.emitter.emit('did-cancel-searching') + } else { + const resultsSummary = this.getResultsSummary() + + this.metricsReporter.sendSearchEvent(Date.now() - startTime, resultsSummary.matchCount) + this.inProgressSearchPromise = null + this.emitter.emit('did-finish-searching', resultsSummary) + } } replace (pathsPattern, replacePattern, replacementPaths) {