From 310e5a9057eae40d62ff849293f0e51868b94988 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 10 Sep 2020 14:33:16 -0700 Subject: [PATCH] Replace our arrays.find with stdlib find For #103454 --- src/vs/base/common/arrays.ts | 15 --------------- .../common/modes/supports/characterPair.test.ts | 3 +-- .../contrib/output/common/outputLinkComputer.ts | 3 +-- .../contrib/terminal/browser/terminalService.ts | 3 +-- .../contrib/welcome/page/browser/welcomePage.ts | 2 +- .../credentials/browser/credentialsService.ts | 3 +-- .../test/browser/workbenchTestServices.ts | 3 +-- 7 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/vs/base/common/arrays.ts b/src/vs/base/common/arrays.ts index 9f0c70b4fb827..a8160f25ce8c4 100644 --- a/src/vs/base/common/arrays.ts +++ b/src/vs/base/common/arrays.ts @@ -549,21 +549,6 @@ export function pushToEnd(arr: T[], value: T): void { } } - -/** - * @deprecated ES6: use `Array.find` - */ -export function find(arr: ArrayLike, predicate: (value: T, index: number, arr: ArrayLike) => any): T | undefined { - for (let i = 0; i < arr.length; i++) { - const element = arr[i]; - if (predicate(element, i, arr)) { - return element; - } - } - - return undefined; -} - export function mapArrayOrNot(items: T | T[], fn: (_: T) => U): U | U[] { return Array.isArray(items) ? items.map(fn) : diff --git a/src/vs/editor/test/common/modes/supports/characterPair.test.ts b/src/vs/editor/test/common/modes/supports/characterPair.test.ts index ed059c8a0cba3..e244d6b47f9a7 100644 --- a/src/vs/editor/test/common/modes/supports/characterPair.test.ts +++ b/src/vs/editor/test/common/modes/supports/characterPair.test.ts @@ -8,7 +8,6 @@ import { StandardTokenType } from 'vs/editor/common/modes'; import { CharacterPairSupport } from 'vs/editor/common/modes/supports/characterPair'; import { TokenText, createFakeScopedLineTokens } from 'vs/editor/test/common/modesTestUtils'; import { StandardAutoClosingPairConditional } from 'vs/editor/common/modes/languageConfiguration'; -import { find } from 'vs/base/common/arrays'; suite('CharacterPairSupport', () => { @@ -55,7 +54,7 @@ suite('CharacterPairSupport', () => { }); function findAutoClosingPair(characterPairSupport: CharacterPairSupport, character: string): StandardAutoClosingPairConditional | undefined { - return find(characterPairSupport.getAutoClosingPairs(), autoClosingPair => autoClosingPair.open === character); + return characterPairSupport.getAutoClosingPairs().find(autoClosingPair => autoClosingPair.open === character); } function testShouldAutoClose(characterPairSupport: CharacterPairSupport, line: TokenText[], character: string, column: number): boolean { diff --git a/src/vs/workbench/contrib/output/common/outputLinkComputer.ts b/src/vs/workbench/contrib/output/common/outputLinkComputer.ts index 5c0843958ca0a..f9e6036bc3d57 100644 --- a/src/vs/workbench/contrib/output/common/outputLinkComputer.ts +++ b/src/vs/workbench/contrib/output/common/outputLinkComputer.ts @@ -12,7 +12,6 @@ import * as strings from 'vs/base/common/strings'; import { Range } from 'vs/editor/common/core/range'; import { isWindows } from 'vs/base/common/platform'; import { Schemas } from 'vs/base/common/network'; -import { find } from 'vs/base/common/arrays'; export interface ICreateData { workspaceFolders: string[]; @@ -47,7 +46,7 @@ export class OutputLinkComputer { private getModel(uri: string): IMirrorModel | undefined { const models = this.ctx.getMirrorModels(); - return find(models, model => model.uri.toString() === uri); + return models.find(model => model.uri.toString() === uri); } computeLinks(uri: string): ILink[] { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts index e8a1cdcfff3f1..92b03fff2ab51 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -25,7 +25,6 @@ import { FindReplaceState } from 'vs/editor/contrib/find/findState'; import { escapeNonWindowsPath } from 'vs/workbench/contrib/terminal/common/terminalEnvironment'; import { isWindows, isMacintosh, OperatingSystem, isWeb } from 'vs/base/common/platform'; import { basename } from 'vs/base/common/path'; -import { find } from 'vs/base/common/arrays'; import { timeout } from 'vs/base/common/async'; import { IViewsService, ViewContainerLocation, IViewDescriptorService } from 'vs/workbench/common/views'; import { IDisposable } from 'vs/base/common/lifecycle'; @@ -459,7 +458,7 @@ export class TerminalService implements ITerminalService { } private _getTabForInstance(instance: ITerminalInstance): ITerminalTab | undefined { - return find(this._terminalTabs, tab => tab.terminalInstances.indexOf(instance) !== -1); + return this._terminalTabs.find(tab => tab.terminalInstances.indexOf(instance) !== -1); } public async showPanel(focus?: boolean): Promise { diff --git a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts index 49dcfd548880f..aa95aa602b558 100644 --- a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts +++ b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts @@ -78,7 +78,7 @@ export class WelcomePageContribution implements IWorkbenchContribution { .then(folder => { const files = folder.children ? folder.children.map(child => child.name) : []; - const file = arrays.find(files.sort(), file => strings.startsWith(file.toLowerCase(), 'readme')); + const file = files.sort().find(file => strings.startsWith(file.toLowerCase(), 'readme')); if (file) { return joinPath(folderUri, file); } diff --git a/src/vs/workbench/services/credentials/browser/credentialsService.ts b/src/vs/workbench/services/credentials/browser/credentialsService.ts index c95b04b5ad19c..3d394b6f38de8 100644 --- a/src/vs/workbench/services/credentials/browser/credentialsService.ts +++ b/src/vs/workbench/services/credentials/browser/credentialsService.ts @@ -6,7 +6,6 @@ import { ICredentialsProvider, ICredentialsService } from 'vs/platform/credentials/common/credentials'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; -import { find } from 'vs/base/common/arrays'; export class BrowserCredentialsService implements ICredentialsService { @@ -80,7 +79,7 @@ class InMemoryCredentialsProvider implements ICredentialsProvider { } private doFindPassword(service: string, account?: string): ICredential | undefined { - return find(this.credentials, credential => + return this.credentials.find(credential => credential.service === service && (typeof account !== 'string' || credential.account === account)); } diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index 55b1f0bde1836..123dae166b96a 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -75,7 +75,6 @@ import { Schemas } from 'vs/base/common/network'; import { IProductService } from 'vs/platform/product/common/productService'; import product from 'vs/platform/product/common/product'; import { IHostService } from 'vs/workbench/services/host/browser/host'; -import { find } from 'vs/base/common/arrays'; import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; import { IFilesConfigurationService, FilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; import { IAccessibilityService, AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility'; @@ -556,7 +555,7 @@ export class TestEditorGroupsService implements IEditorGroupsService { get count(): number { return this.groups.length; } getGroups(_order?: GroupsOrder): ReadonlyArray { return this.groups; } - getGroup(identifier: number): IEditorGroup | undefined { return find(this.groups, group => group.id === identifier); } + getGroup(identifier: number): IEditorGroup | undefined { return this.groups.find(group => group.id === identifier); } getLabel(_identifier: number): string { return 'Group 1'; } findGroup(_scope: IFindGroupScope, _source?: number | IEditorGroup, _wrap?: boolean): IEditorGroup { throw new Error('not implemented'); } activateGroup(_group: number | IEditorGroup): IEditorGroup { throw new Error('not implemented'); }