diff --git a/src/vs/base/common/strings.ts b/src/vs/base/common/strings.ts index ec727797b87877881af10f503da3d770a1a6b53f..2d971940fbcfd27fa619438737e49178a63ada3f 100644 --- a/src/vs/base/common/strings.ts +++ b/src/vs/base/common/strings.ts @@ -144,27 +144,6 @@ export function stripWildcards(pattern: string): string { return pattern.replace(/\*/g, ''); } -/** - * @deprecated ES6: use `String.startsWith` - */ -export function startsWith(haystack: string, needle: string): boolean { - if (haystack.length < needle.length) { - return false; - } - - if (haystack === needle) { - return true; - } - - for (let i = 0; i < needle.length; i++) { - if (haystack[i] !== needle[i]) { - return false; - } - } - - return true; -} - /** * @deprecated ES6: use `String.endsWith` */ diff --git a/src/vs/base/test/common/resources.test.ts b/src/vs/base/test/common/resources.test.ts index 3bacb9e8155f2bc1594c628b2e7938ffbcbab248..8026e240bba4e3afefe841936d1370bdff6a4a9b 100644 --- a/src/vs/base/test/common/resources.test.ts +++ b/src/vs/base/test/common/resources.test.ts @@ -7,7 +7,6 @@ import { dirname, basename, distinctParents, joinPath, normalizePath, isAbsolute import { URI } from 'vs/base/common/uri'; import { isWindows } from 'vs/base/common/platform'; import { toSlashes } from 'vs/base/common/extpath'; -import { startsWith } from 'vs/base/common/strings'; import { win32, posix } from 'vs/base/common/path'; @@ -304,7 +303,7 @@ suite('Resources', () => { const p = path.indexOf('/') !== -1 ? posix : win32; if (!p.isAbsolute(path)) { let expectedPath = isWindows ? toSlashes(path) : path; - expectedPath = startsWith(expectedPath, './') ? expectedPath.substr(2) : expectedPath; + expectedPath = expectedPath.startsWith('./') ? expectedPath.substr(2) : expectedPath; assert.equal(relativePath(u1, actual), expectedPath, `relativePath (${u1.toString()}) on actual (${actual.toString()}) should be to path (${expectedPath})`); } } diff --git a/src/vs/base/test/common/strings.test.ts b/src/vs/base/test/common/strings.test.ts index bce692cd6c9a511b0578a1caf5df83f7894d2e10..c68a77c8f86e984ab61e693308d94f315c506f25 100644 --- a/src/vs/base/test/common/strings.test.ts +++ b/src/vs/base/test/common/strings.test.ts @@ -140,16 +140,6 @@ suite('Strings', () => { assert.strictEqual(strings.escape('Hello'), '<foo>Hello</foo>'); }); - test('startsWith', () => { - assert(strings.startsWith('foo', 'f')); - assert(strings.startsWith('foo', 'fo')); - assert(strings.startsWith('foo', 'foo')); - assert(!strings.startsWith('foo', 'o')); - assert(!strings.startsWith('', 'f')); - assert(strings.startsWith('foo', '')); - assert(strings.startsWith('', '')); - }); - test('endsWith', () => { assert(strings.endsWith('foo', 'o')); assert(strings.endsWith('foo', 'oo')); diff --git a/src/vs/editor/contrib/codeAction/types.ts b/src/vs/editor/contrib/codeAction/types.ts index b8f8c5e741e8450975dd5b318740275650552586..8f558329017017ea74f3e19ae21eda05d8e7efc5 100644 --- a/src/vs/editor/contrib/codeAction/types.ts +++ b/src/vs/editor/contrib/codeAction/types.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { startsWith } from 'vs/base/common/strings'; import { CodeAction, CodeActionTriggerType } from 'vs/editor/common/modes'; import { Position } from 'vs/editor/common/core/position'; @@ -27,7 +26,7 @@ export class CodeActionKind { } public contains(other: CodeActionKind): boolean { - return this.equals(other) || this.value === '' || startsWith(other.value, this.value + CodeActionKind.sep); + return this.equals(other) || this.value === '' || other.value.startsWith(this.value + CodeActionKind.sep); } public intersects(other: CodeActionKind): boolean { diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index 43dd6f160577b61cbee63b6a3bf936618109793f..ff1e6930dcc324441fd514385f432b83c8882794 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -9,7 +9,6 @@ import { illegalArgument } from 'vs/base/common/errors'; import { IRelativePattern } from 'vs/base/common/glob'; import { isMarkdownString } from 'vs/base/common/htmlContent'; import { ResourceMap } from 'vs/base/common/map'; -import { startsWith } from 'vs/base/common/strings'; import { isStringArray } from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; import { generateUuid } from 'vs/base/common/uuid'; @@ -1171,7 +1170,7 @@ export class CodeActionKind { } public contains(other: CodeActionKind): boolean { - return this.value === other.value || startsWith(other.value, this.value + CodeActionKind.sep); + return this.value === other.value || other.value.startsWith(this.value + CodeActionKind.sep); } } CodeActionKind.Empty = new CodeActionKind(''); diff --git a/src/vs/workbench/api/common/jsonValidationExtensionPoint.ts b/src/vs/workbench/api/common/jsonValidationExtensionPoint.ts index dd2ad38b4679a0b028149b123aac1e3943f1d11f..e768c889fb99d82a9473aa2a763d27747ccb56de 100644 --- a/src/vs/workbench/api/common/jsonValidationExtensionPoint.ts +++ b/src/vs/workbench/api/common/jsonValidationExtensionPoint.ts @@ -5,7 +5,6 @@ import * as nls from 'vs/nls'; import { ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry'; -import * as strings from 'vs/base/common/strings'; import * as resources from 'vs/base/common/resources'; import { isString } from 'vs/base/common/types'; @@ -64,7 +63,7 @@ export class JSONValidationExtensionPoint { collector.error(nls.localize('invalid.url', "'configuration.jsonValidation.url' must be a URL or relative path")); return; } - if (strings.startsWith(uri, './')) { + if (uri.startsWith('./')) { try { const colorThemeLocation = resources.joinPath(extensionLocation, uri); if (!resources.isEqualOrParent(colorThemeLocation, extensionLocation)) { diff --git a/src/vs/workbench/contrib/tasks/node/processRunnerDetector.ts b/src/vs/workbench/contrib/tasks/node/processRunnerDetector.ts index a90fce79a5f54b0d2e8b360ee306d44a7334c41c..ca397c18bc3b7f5eb516aca1fc00712fe21e1aa0 100644 --- a/src/vs/workbench/contrib/tasks/node/processRunnerDetector.ts +++ b/src/vs/workbench/contrib/tasks/node/processRunnerDetector.ts @@ -379,7 +379,7 @@ export class ProcessRunnerDetector { if (taskName === test) { taskInfo.index = index; taskInfo.exact = 3; - } else if ((Strings.startsWith(taskName, test) || Strings.endsWith(taskName, test)) && taskInfo.exact < 3) { + } else if ((taskName.startsWith(test) || taskName.endsWith(test)) && taskInfo.exact < 3) { taskInfo.index = index; taskInfo.exact = 2; } else if (taskName.indexOf(test) !== -1 && taskInfo.exact < 2) { diff --git a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts index 8d93275942af62d4ddbf58046809f7921f76b437..1783cf20c748f5bf74e1fb6bd32ae8c010cfba4e 100644 --- a/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts +++ b/src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts @@ -6,7 +6,6 @@ import 'vs/css!./welcomePage'; import 'vs/workbench/contrib/welcome/page/browser/vs_code_welcome_page'; import { URI } from 'vs/base/common/uri'; -import * as strings from 'vs/base/common/strings'; import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands'; import * as arrays from 'vs/base/common/arrays'; import { WalkThroughInput } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput'; @@ -78,7 +77,7 @@ export class WelcomePageContribution implements IWorkbenchContribution { .then(folder => { const files = folder.children ? folder.children.map(child => child.name) : []; - const file = files.sort().find(file => strings.startsWith(file.toLowerCase(), 'readme')); + const file = files.sort().find(file => file.toLowerCase().startsWith('readme')); if (file) { return joinPath(folderUri, file); } @@ -88,7 +87,7 @@ export class WelcomePageContribution implements IWorkbenchContribution { .then(readmes => { if (!editorService.activeEditor) { if (readmes.length) { - const isMarkDown = (readme: URI) => strings.endsWith(readme.path.toLowerCase(), '.md'); + const isMarkDown = (readme: URI) => readme.path.toLowerCase().endsWith('.md'); return Promise.all([ this.commandService.executeCommand('markdown.showPreview', null, readmes.filter(isMarkDown), { locked: true }), editorService.openEditors(readmes.filter(readme => !isMarkDown(readme)) diff --git a/src/vs/workbench/services/themes/common/colorThemeData.ts b/src/vs/workbench/services/themes/common/colorThemeData.ts index 932b34cefbbbbb767e5673f6c45c57e1f4ba65f8..6b9fa724b740e75b30a137fec37ff0f5b1e168ad 100644 --- a/src/vs/workbench/services/themes/common/colorThemeData.ts +++ b/src/vs/workbench/services/themes/common/colorThemeData.ts @@ -19,7 +19,6 @@ import { Registry } from 'vs/platform/registry/common/platform'; import { getParseErrorMessage } from 'vs/base/common/jsonErrorMessages'; import { URI } from 'vs/base/common/uri'; import { parse as parsePList } from 'vs/workbench/services/themes/common/plistParser'; -import { startsWith } from 'vs/base/common/strings'; import { TokenStyle, SemanticTokenRule, ProbeScope, getTokenClassificationRegistry, TokenStyleValue, TokenStyleData, parseClassifierString } from 'vs/platform/theme/common/tokenClassificationRegistry'; import { MatcherWithPriority, Matcher, createMatchers } from 'vs/workbench/services/themes/common/textMateScopeMatcher'; import { IExtensionResourceLoaderService } from 'vs/workbench/services/extensionResourceLoader/common/extensionResourceLoader'; @@ -641,7 +640,7 @@ export class ColorThemeData implements IWorkbenchColorTheme { } function toCSSSelector(extensionId: string, path: string) { - if (startsWith(path, './')) { + if (path.startsWith('./')) { path = path.substr(2); } let str = `${extensionId}-${path}`;