From 5867b96a250d42837596c9b93ec064a1b32a4c20 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Wed, 14 Nov 2018 16:52:43 -0800 Subject: [PATCH] More Promise removal --- src/vs/platform/search/common/search.ts | 5 ++--- .../api/electron-browser/mainThreadSearch.ts | 17 ++++++++--------- .../services/search/node/searchService.ts | 19 +++++++++---------- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/vs/platform/search/common/search.ts b/src/vs/platform/search/common/search.ts index b475b538dff..08e09a63d8b 100644 --- a/src/vs/platform/search/common/search.ts +++ b/src/vs/platform/search/common/search.ts @@ -12,7 +12,6 @@ import * as objects from 'vs/base/common/objects'; import * as paths from 'vs/base/common/paths'; import { getNLines } from 'vs/base/common/strings'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { Promise } from 'vs/base/common/winjs.base'; import { IFilesConfiguration } from 'vs/platform/files/common/files'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; @@ -29,7 +28,7 @@ export interface ISearchService { textSearch(query: ITextQuery, token?: CancellationToken, onProgress?: (result: ISearchProgressItem) => void): Promise; fileSearch(query: IFileQuery, token?: CancellationToken): Promise; extendQuery(query: ITextQuery | IFileQuery): void; - clearCache(cacheKey: string): Promise; + clearCache(cacheKey: string): Thenable; registerSearchResultProvider(scheme: string, type: SearchProviderType, provider: ISearchResultProvider): IDisposable; } @@ -60,7 +59,7 @@ export const enum SearchProviderType { export interface ISearchResultProvider { textSearch(query: ITextQuery, onProgress?: (p: ISearchProgressItem) => void, token?: CancellationToken): Promise; fileSearch(query: IFileQuery, token?: CancellationToken): Promise; - clearCache(cacheKey: string): Promise; + clearCache(cacheKey: string): Thenable; } export interface IFolderQuery { diff --git a/src/vs/workbench/api/electron-browser/mainThreadSearch.ts b/src/vs/workbench/api/electron-browser/mainThreadSearch.ts index 9728cc8359e..e65bb2586fb 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSearch.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSearch.ts @@ -7,7 +7,6 @@ import { isFalsyOrEmpty } from 'vs/base/common/arrays'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { values } from 'vs/base/common/map'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { TPromise } from 'vs/base/common/winjs.base'; import { IFileMatch, IRawFileMatch2, ISearchComplete, ISearchCompleteStats, ISearchProgressItem, ISearchResultProvider, ISearchService, QueryType, SearchProviderType, ITextQuery, IFileQuery } from 'vs/platform/search/common/search'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; @@ -108,17 +107,17 @@ class RemoteSearchProvider implements ISearchResultProvider, IDisposable { dispose(this._registrations); } - fileSearch(query: IFileQuery, token: CancellationToken = CancellationToken.None): TPromise { + fileSearch(query: IFileQuery, token: CancellationToken = CancellationToken.None): Promise { return this.doSearch(query, null, token); } - textSearch(query: ITextQuery, onProgress?: (p: ISearchProgressItem) => void, token: CancellationToken = CancellationToken.None): TPromise { + textSearch(query: ITextQuery, onProgress?: (p: ISearchProgressItem) => void, token: CancellationToken = CancellationToken.None): Promise { return this.doSearch(query, onProgress, token); } - doSearch(query: ITextQuery | IFileQuery, onProgress?: (p: ISearchProgressItem) => void, token: CancellationToken = CancellationToken.None): TPromise { + doSearch(query: ITextQuery | IFileQuery, onProgress?: (p: ISearchProgressItem) => void, token: CancellationToken = CancellationToken.None): Promise { if (isFalsyOrEmpty(query.folderQueries)) { - return TPromise.as(undefined); + return Promise.resolve(undefined); } const search = new SearchOperation(onProgress); @@ -128,17 +127,17 @@ class RemoteSearchProvider implements ISearchResultProvider, IDisposable { ? this._proxy.$provideFileSearchResults(this._handle, search.id, query, token) : this._proxy.$provideTextSearchResults(this._handle, search.id, query, token); - return TPromise.wrap(searchP).then((result: ISearchCompleteStats) => { + return Promise.resolve(searchP).then((result: ISearchCompleteStats) => { this._searches.delete(search.id); return { results: values(search.matches), stats: result.stats, limitHit: result.limitHit }; }, err => { this._searches.delete(search.id); - return TPromise.wrapError(err); + return Promise.reject(err); }); } - clearCache(cacheKey: string): TPromise { - return TPromise.wrap(this._proxy.$clearCache(cacheKey)); + clearCache(cacheKey: string): Promise { + return Promise.resolve(this._proxy.$clearCache(cacheKey)); } handleFindMatch(session: number, dataOrUri: (UriComponents | IRawFileMatch2)[]): void { diff --git a/src/vs/workbench/services/search/node/searchService.ts b/src/vs/workbench/services/search/node/searchService.ts index a07ad5b8af0..67bbb37dba5 100644 --- a/src/vs/workbench/services/search/node/searchService.ts +++ b/src/vs/workbench/services/search/node/searchService.ts @@ -14,7 +14,6 @@ import { Schemas } from 'vs/base/common/network'; import * as objects from 'vs/base/common/objects'; import { StopWatch } from 'vs/base/common/stopwatch'; import { URI as uri } from 'vs/base/common/uri'; -import { Promise } from 'vs/base/common/winjs.base'; import * as pfs from 'vs/base/node/pfs'; import { getNextTickChannel } from 'vs/base/parts/ipc/node/ipc'; import { Client, IIPCOptions } from 'vs/base/parts/ipc/node/ipc.cp'; @@ -122,16 +121,16 @@ export class SearchService extends Disposable implements ISearchService { private doSearch(query: ISearchQuery, token?: CancellationToken, onProgress?: (item: ISearchProgressItem) => void): Promise { const schemesInQuery = this.getSchemesInQuery(query); - const providerActivations: Promise[] = [Promise.wrap(null)]; + const providerActivations: Thenable[] = [Promise.resolve(null)]; schemesInQuery.forEach(scheme => providerActivations.push(this.extensionService.activateByEvent(`onSearch:${scheme}`))); providerActivations.push(this.extensionService.activateByEvent('onSearch:file')); - const providerPromise = Promise.join(providerActivations) + const providerPromise = Promise.all(providerActivations) .then(() => this.extensionService.whenInstalledExtensionsRegistered()) .then(() => { // Cancel faster if search was canceled while waiting for extensions if (token && token.isCancellationRequested) { - return Promise.wrapError(canceled()); + return Promise.reject(canceled()); } const progressCallback = (item: ISearchProgressItem) => { @@ -190,7 +189,7 @@ export class SearchService extends Disposable implements ISearchService { const e2eSW = StopWatch.create(false); const diskSearchQueries: IFolderQuery[] = []; - const searchPs: Promise[] = []; + const searchPs: Thenable[] = []; const fqs = this.groupFolderQueriesByScheme(query); keys(fqs).forEach(scheme => { @@ -233,7 +232,7 @@ export class SearchService extends Disposable implements ISearchService { this.diskSearch.textSearch(diskSearchQuery, onProviderProgress, token)); } - return Promise.join(searchPs).then(completes => { + return Promise.all(searchPs).then(completes => { const endToEndTime = e2eSW.elapsed(); this.logService.trace(`SearchService#search: ${endToEndTime}ms`); completes.forEach(complete => { @@ -443,7 +442,7 @@ export class SearchService extends Disposable implements ISearchService { ...values(this.fileIndexProviders) ].map(provider => provider && provider.clearCache(cacheKey)); - return Promise.join(clearPs) + return Promise.all(clearPs) .then(() => { }); } } @@ -486,7 +485,7 @@ export class DiskSearch implements ISearchResultProvider { textSearch(query: ITextQuery, onProgress?: (p: ISearchProgressItem) => void, token?: CancellationToken): Promise { const folderQueries = query.folderQueries || []; - return Promise.join(folderQueries.map(q => q.folder.scheme === Schemas.file && pfs.exists(q.folder.fsPath))) + return Promise.all(folderQueries.map(q => q.folder.scheme === Schemas.file && pfs.exists(q.folder.fsPath))) .then(exists => { if (token && token.isCancellationRequested) { throw canceled(); @@ -501,7 +500,7 @@ export class DiskSearch implements ISearchResultProvider { fileSearch(query: IFileQuery, token?: CancellationToken): Promise { const folderQueries = query.folderQueries || []; - return Promise.join(folderQueries.map(q => q.folder.scheme === Schemas.file && pfs.exists(q.folder.fsPath))) + return Promise.all(folderQueries.map(q => q.folder.scheme === Schemas.file && pfs.exists(q.folder.fsPath))) .then(exists => { if (token && token.isCancellationRequested) { throw canceled(); @@ -581,7 +580,7 @@ export class DiskSearch implements ISearchResultProvider { return fileMatch; } - public clearCache(cacheKey: string): Promise { + public clearCache(cacheKey: string): Thenable { return this.raw.clearCache(cacheKey); } } -- GitLab