diff --git a/extensions/css-language-features/server/src/pathCompletion.ts b/extensions/css-language-features/server/src/pathCompletion.ts index 28fb9ab24bb..4d988a52da9 100644 --- a/extensions/css-language-features/server/src/pathCompletion.ts +++ b/extensions/css-language-features/server/src/pathCompletion.ts @@ -195,9 +195,9 @@ function escapePath(p: string) { } function resolveWorkspaceRoot(activeDoc: TextDocument, workspaceFolders: WorkspaceFolder[]): string | undefined { - for (let i = 0; i < workspaceFolders.length; i++) { - if (startsWith(activeDoc.uri, workspaceFolders[i].uri)) { - return path.resolve(URI.parse(workspaceFolders[i].uri).fsPath); + for (const folder of workspaceFolders) { + if (startsWith(activeDoc.uri, folder.uri)) { + return path.resolve(URI.parse(folder.uri).fsPath); } } return undefined; diff --git a/extensions/html-language-features/server/src/utils/arrays.ts b/extensions/html-language-features/server/src/utils/arrays.ts index ede6aae0bbd..16b5b46475d 100644 --- a/extensions/html-language-features/server/src/utils/arrays.ts +++ b/extensions/html-language-features/server/src/utils/arrays.ts @@ -5,8 +5,8 @@ export function pushAll(to: T[], from: T[]) { if (from) { - for (let i = 0; i < from.length; i++) { - to.push(from[i]); + for (const e of from) { + to.push(e); } } } diff --git a/extensions/merge-conflict/src/commandHandler.ts b/extensions/merge-conflict/src/commandHandler.ts index 3ca2bdcd8b0..3247b592f88 100644 --- a/extensions/merge-conflict/src/commandHandler.ts +++ b/extensions/merge-conflict/src/commandHandler.ts @@ -282,11 +282,11 @@ export default class CommandHandler implements vscode.Disposable { throw new Error(`Unsupported direction ${direction}`); } - for (let i = 0; i < conflicts.length; i++) { - if (predicate(conflicts[i]) && !conflicts[i].range.contains(selection)) { + for (const conflict of conflicts) { + if (predicate(conflict) && !conflict.range.contains(selection)) { return { canNavigate: true, - conflict: conflicts[i] + conflict: conflict }; } } diff --git a/extensions/merge-conflict/src/mergeDecorator.ts b/extensions/merge-conflict/src/mergeDecorator.ts index 6f4b556d2bf..b3d24bed81d 100644 --- a/extensions/merge-conflict/src/mergeDecorator.ts +++ b/extensions/merge-conflict/src/mergeDecorator.ts @@ -153,10 +153,10 @@ export default class MergeDecorator implements vscode.Disposable { } private applyDecorationsFromEvent(eventDocument: vscode.TextDocument) { - for (let i = 0; i < vscode.window.visibleTextEditors.length; i++) { - if (vscode.window.visibleTextEditors[i].document === eventDocument) { + for (const editor of vscode.window.visibleTextEditors) { + if (editor.document === eventDocument) { // Attempt to apply - this.applyDecorations(vscode.window.visibleTextEditors[i]); + this.applyDecorations(editor); } } } diff --git a/extensions/npm/src/features/bowerJSONContribution.ts b/extensions/npm/src/features/bowerJSONContribution.ts index da3c49a7d71..4770303760c 100644 --- a/extensions/npm/src/features/bowerJSONContribution.ts +++ b/extensions/npm/src/features/bowerJSONContribution.ts @@ -68,9 +68,9 @@ export class BowerJSONContribution implements IJSONContribution { const obj = JSON.parse(success.responseText); if (Array.isArray(obj)) { const results = <{ name: string; description: string; }[]>obj; - for (let i = 0; i < results.length; i++) { - const name = results[i].name; - const description = results[i].description || ''; + for (const result of results) { + const name = result.name; + const description = result.description || ''; const insertText = new SnippetString().appendText(JSON.stringify(name)); if (addValue) { insertText.appendText(': ').appendPlaceholder('latest'); diff --git a/extensions/npm/src/features/packageJSONContribution.ts b/extensions/npm/src/features/packageJSONContribution.ts index 4ea9f87f2eb..3635171a4f1 100644 --- a/extensions/npm/src/features/packageJSONContribution.ts +++ b/extensions/npm/src/features/packageJSONContribution.ts @@ -87,8 +87,8 @@ export class PackageJSONContribution implements IJSONContribution { const obj = JSON.parse(success.responseText); if (obj && Array.isArray(obj.rows)) { const results = <{ key: string[]; }[]>obj.rows; - for (let i = 0; i < results.length; i++) { - const keys = results[i].key; + for (const result of results) { + const keys = result.key; if (Array.isArray(keys) && keys.length > 0) { const name = keys[0]; const insertText = new SnippetString().appendText(JSON.stringify(name)); diff --git a/src/vs/base/common/glob.ts b/src/vs/base/common/glob.ts index b77a9ab56f0..f9c74b9ed46 100644 --- a/src/vs/base/common/glob.ts +++ b/src/vs/base/common/glob.ts @@ -58,11 +58,8 @@ export function splitGlobAware(pattern: string, splitChar: string): string[] { let inBraces = false; let inBrackets = false; - let char: string; let curVal = ''; - for (let i = 0; i < pattern.length; i++) { - char = pattern[i]; - + for (const char of pattern) { switch (char) { case splitChar: if (!inBraces && !inBrackets) { @@ -136,10 +133,7 @@ function parseRegExp(pattern: string): string { let inBrackets = false; let bracketVal = ''; - let char: string; - for (let i = 0; i < segment.length; i++) { - char = segment[i]; - + for (const char of segment) { // Support brace expansion if (char !== '}' && inBraces) { braceVal += char; diff --git a/src/vs/base/common/labels.ts b/src/vs/base/common/labels.ts index 2bdf7cbb840..c9e2a9b1733 100644 --- a/src/vs/base/common/labels.ts +++ b/src/vs/base/common/labels.ts @@ -286,11 +286,8 @@ export function template(template: string, values: { [key: string]: string | ISe const segments: ISegment[] = []; let inVariable = false; - let char: string; let curVal = ''; - for (let i = 0; i < template.length; i++) { - char = template[i]; - + for (const char of template) { // Beginning of variable if (char === '$' || (inVariable && char === '{')) { if (curVal) { diff --git a/src/vs/base/common/mime.ts b/src/vs/base/common/mime.ts index 6d942688444..dea84057f73 100644 --- a/src/vs/base/common/mime.ts +++ b/src/vs/base/common/mime.ts @@ -197,8 +197,7 @@ function guessMimeTypeByFirstline(firstLine: string): string | null { } if (firstLine.length > 0) { - for (let i = 0; i < registeredAssociations.length; ++i) { - const association = registeredAssociations[i]; + for (const association of registeredAssociations) { if (!association.firstline) { continue; } diff --git a/src/vs/base/common/objects.ts b/src/vs/base/common/objects.ts index 0a1a98da412..ef5e8b59de4 100644 --- a/src/vs/base/common/objects.ts +++ b/src/vs/base/common/objects.ts @@ -62,8 +62,8 @@ function _cloneAndChange(obj: any, changer: (orig: any) => any, seen: Set): if (isArray(obj)) { const r1: any[] = []; - for (let i1 = 0; i1 < obj.length; i1++) { - r1.push(_cloneAndChange(obj[i1], changer, seen)); + for (const e of obj) { + r1.push(_cloneAndChange(e, changer, seen)); } return r1; } @@ -177,8 +177,8 @@ export function equals(one: any, other: any): boolean { function arrayToHash(array: string[]): { [name: string]: true } { const result: any = {}; - for (let i = 0; i < array.length; ++i) { - result[array[i]] = true; + for (const e of array) { + result[e] = true; } return result; } diff --git a/src/vs/base/common/worker/simpleWorker.ts b/src/vs/base/common/worker/simpleWorker.ts index 3bb968d34f5..fc6db66a8e4 100644 --- a/src/vs/base/common/worker/simpleWorker.ts +++ b/src/vs/base/common/worker/simpleWorker.ts @@ -234,8 +234,8 @@ export class SimpleWorkerClient extends Disposable { lazyProxyReject = reject; this._onModuleLoaded.then((availableMethods: string[]) => { let proxy = {}; - for (let i = 0; i < availableMethods.length; i++) { - (proxy as any)[availableMethods[i]] = createProxyMethod(availableMethods[i], proxyMethodRequest); + for (const methodName of availableMethods) { + (proxy as any)[methodName] = createProxyMethod(methodName, proxyMethodRequest); } resolve(proxy); }, (e) => { diff --git a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts index f5803ce6613..e63b8d4a1f2 100644 --- a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts +++ b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts @@ -458,9 +458,8 @@ class Widget { // Do two passes, first for perfect fit, second picks first option if (this._preference) { for (let pass = 1; pass <= 2; pass++) { - for (let i = 0; i < this._preference.length; i++) { + for (const pref of this._preference) { // placement - let pref = this._preference[i]; if (pref === ContentWidgetPositionPreference.ABOVE) { if (!placement) { // Widget outside of viewport diff --git a/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts b/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts index deee1d3cac4..3d3450b6275 100644 --- a/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts +++ b/src/vs/editor/browser/viewParts/viewCursors/viewCursors.ts @@ -180,8 +180,8 @@ export class ViewCursors extends ViewPart { if (shouldRender(this._primaryCursor.getPosition())) { return true; } - for (let i = 0; i < this._secondaryCursors.length; i++) { - if (shouldRender(this._secondaryCursors[i].getPosition())) { + for (const secondaryCursor of this._secondaryCursors) { + if (shouldRender(secondaryCursor.getPosition())) { return true; } } diff --git a/src/vs/editor/common/controller/cursor.ts b/src/vs/editor/common/controller/cursor.ts index e47ee8d9f8b..15ccc7a4e1f 100644 --- a/src/vs/editor/common/controller/cursor.ts +++ b/src/vs/editor/common/controller/cursor.ts @@ -727,8 +727,8 @@ class CommandExecutor { }); // Remove losing cursors - for (let i = 0; i < losingCursors.length; i++) { - selectionsAfter.splice(losingCursors[i], 1); + for (const losingCursor of losingCursors) { + selectionsAfter.splice(losingCursor, 1); } return selectionsAfter; diff --git a/src/vs/editor/common/controller/cursorCollection.ts b/src/vs/editor/common/controller/cursorCollection.ts index 78dcb514eab..63cc38e4862 100644 --- a/src/vs/editor/common/controller/cursorCollection.ts +++ b/src/vs/editor/common/controller/cursorCollection.ts @@ -254,9 +254,9 @@ export class CursorCollection { cursors[winnerIndex].setState(this.context, resultingState.modelState, resultingState.viewState); } - for (let j = 0; j < sortedCursors.length; j++) { - if (sortedCursors[j].index > looserIndex) { - sortedCursors[j].index--; + for (const sortedCursor of sortedCursors) { + if (sortedCursor.index > looserIndex) { + sortedCursor.index--; } } diff --git a/src/vs/editor/common/controller/cursorCommon.ts b/src/vs/editor/common/controller/cursorCommon.ts index 8fb7502a724..99deb5a4635 100644 --- a/src/vs/editor/common/controller/cursorCommon.ts +++ b/src/vs/editor/common/controller/cursorCommon.ts @@ -148,16 +148,16 @@ export class CursorConfiguration { let autoClosingPairs = CursorConfiguration._getAutoClosingPairs(languageIdentifier); if (autoClosingPairs) { - for (let i = 0; i < autoClosingPairs.length; i++) { - this.autoClosingPairsOpen[autoClosingPairs[i].open] = autoClosingPairs[i].close; - this.autoClosingPairsClose[autoClosingPairs[i].close] = autoClosingPairs[i].open; + for (const pair of autoClosingPairs) { + this.autoClosingPairsOpen[pair.open] = pair.close; + this.autoClosingPairsClose[pair.close] = pair.open; } } let surroundingPairs = CursorConfiguration._getSurroundingPairs(languageIdentifier); if (surroundingPairs) { - for (let i = 0; i < surroundingPairs.length; i++) { - this.surroundingPairs[surroundingPairs[i].open] = surroundingPairs[i].close; + for (const pair of surroundingPairs) { + this.surroundingPairs[pair.open] = pair.close; } } } @@ -167,8 +167,8 @@ export class CursorConfiguration { this._electricChars = {}; let electricChars = CursorConfiguration._getElectricCharacters(this._languageIdentifier); if (electricChars) { - for (let i = 0; i < electricChars.length; i++) { - this._electricChars[electricChars[i]] = true; + for (const char of electricChars) { + this._electricChars[char] = true; } } } diff --git a/src/vs/editor/common/modes/supports/characterPair.ts b/src/vs/editor/common/modes/supports/characterPair.ts index f2ba775b603..bb8ecd4980e 100644 --- a/src/vs/editor/common/modes/supports/characterPair.ts +++ b/src/vs/editor/common/modes/supports/characterPair.ts @@ -46,9 +46,7 @@ export class CharacterPairSupport { let tokenIndex = context.findTokenIndexAtOffset(column - 2); let standardTokenType = context.getStandardTokenType(tokenIndex); - for (let i = 0; i < this._autoClosingPairs.length; ++i) { - let autoClosingPair = this._autoClosingPairs[i]; - + for (const autoClosingPair of this._autoClosingPairs) { if (autoClosingPair.open === character) { return autoClosingPair.isOK(standardTokenType); } diff --git a/src/vs/editor/common/services/editorWorkerServiceImpl.ts b/src/vs/editor/common/services/editorWorkerServiceImpl.ts index 8d91b3a5da0..501de316cb7 100644 --- a/src/vs/editor/common/services/editorWorkerServiceImpl.ts +++ b/src/vs/editor/common/services/editorWorkerServiceImpl.ts @@ -261,8 +261,8 @@ class EditorModelManager extends Disposable { } } - for (let i = 0; i < toRemove.length; i++) { - this._stopModelSync(toRemove[i]); + for (const e of toRemove) { + this._stopModelSync(e); } } diff --git a/src/vs/editor/common/services/webWorker.ts b/src/vs/editor/common/services/webWorker.ts index 95539535e3a..4e54ac849a4 100644 --- a/src/vs/editor/common/services/webWorker.ts +++ b/src/vs/editor/common/services/webWorker.ts @@ -81,8 +81,8 @@ class MonacoWebWorkerImpl extends EditorWorkerClient implements MonacoWebWork }; let foreignProxy = {} as T; - for (let i = 0; i < foreignMethods.length; i++) { - (foreignProxy)[foreignMethods[i]] = createProxyMethod(foreignMethods[i], proxyMethodRequest); + for (const foreignMethod of foreignMethods) { + (foreignProxy)[foreignMethod] = createProxyMethod(foreignMethod, proxyMethodRequest); } return foreignProxy; diff --git a/src/vs/editor/common/viewModel/viewModelImpl.ts b/src/vs/editor/common/viewModel/viewModelImpl.ts index 59498f4a5ce..3ce877d8212 100644 --- a/src/vs/editor/common/viewModel/viewModelImpl.ts +++ b/src/vs/editor/common/viewModel/viewModelImpl.ts @@ -611,8 +611,8 @@ export class ViewModel extends viewEvents.ViewEventEmitter implements IViewModel } let result: string[] = []; - for (let i = 0; i < nonEmptyRanges.length; i++) { - result.push(this.getValueInRange(nonEmptyRanges[i], forceCRLF ? EndOfLinePreference.CRLF : EndOfLinePreference.TextDefined)); + for (const nonEmptyRange of nonEmptyRanges) { + result.push(this.getValueInRange(nonEmptyRange, forceCRLF ? EndOfLinePreference.CRLF : EndOfLinePreference.TextDefined)); } return result.length === 1 ? result[0] : result; } diff --git a/src/vs/editor/contrib/comment/comment.ts b/src/vs/editor/contrib/comment/comment.ts index ca4ce3d9bc2..454e6073f51 100644 --- a/src/vs/editor/contrib/comment/comment.ts +++ b/src/vs/editor/contrib/comment/comment.ts @@ -33,8 +33,8 @@ abstract class CommentLineAction extends EditorAction { let selections = editor.getSelections(); let opts = model.getOptions(); - for (let i = 0; i < selections.length; i++) { - commands.push(new LineCommentCommand(selections[i], opts.tabSize, this._type)); + for (const selection of selections) { + commands.push(new LineCommentCommand(selection, opts.tabSize, this._type)); } editor.pushUndoStop(); @@ -128,8 +128,8 @@ class BlockCommentAction extends EditorAction { let commands: ICommand[] = []; let selections = editor.getSelections(); - for (let i = 0; i < selections.length; i++) { - commands.push(new BlockCommentCommand(selections[i])); + for (const selection of selections) { + commands.push(new BlockCommentCommand(selection)); } editor.pushUndoStop(); diff --git a/src/vs/editor/contrib/comment/lineCommentCommand.ts b/src/vs/editor/contrib/comment/lineCommentCommand.ts index f4340b008ab..5bc743096c7 100644 --- a/src/vs/editor/contrib/comment/lineCommentCommand.ts +++ b/src/vs/editor/contrib/comment/lineCommentCommand.ts @@ -299,8 +299,8 @@ export class LineCommentCommand implements editorCommon.ICommand { } } this._selectionId = builder.trackSelection(s); - for (let i = 0; i < ops.length; i++) { - builder.addEditOperation(ops[i].range, ops[i].text); + for (const op of ops) { + builder.addEditOperation(op.range, op.text); } } diff --git a/src/vs/editor/contrib/find/replaceAllCommand.ts b/src/vs/editor/contrib/find/replaceAllCommand.ts index ddc402d9adc..304fbcb4c6a 100644 --- a/src/vs/editor/contrib/find/replaceAllCommand.ts +++ b/src/vs/editor/contrib/find/replaceAllCommand.ts @@ -57,8 +57,8 @@ export class ReplaceAllCommand implements editorCommon.ICommand { } resultOps.push(previousOp); - for (let i = 0; i < resultOps.length; i++) { - builder.addEditOperation(resultOps[i].range, resultOps[i].text); + for (const op of resultOps) { + builder.addEditOperation(op.range, op.text); } } diff --git a/src/vs/editor/contrib/linesOperations/linesOperations.ts b/src/vs/editor/contrib/linesOperations/linesOperations.ts index abb9612ed9b..975bf3d23b1 100644 --- a/src/vs/editor/contrib/linesOperations/linesOperations.ts +++ b/src/vs/editor/contrib/linesOperations/linesOperations.ts @@ -38,11 +38,11 @@ abstract class AbstractCopyLinesAction extends EditorAction { public run(_accessor: ServicesAccessor, editor: ICodeEditor): void { - let commands: ICommand[] = []; - let selections = editor.getSelections() || []; + const commands: ICommand[] = []; + const selections = editor.getSelections() || []; - for (let i = 0; i < selections.length; i++) { - commands.push(new CopyLinesCommand(selections[i], this.down)); + for (const selection of selections) { + commands.push(new CopyLinesCommand(selection, this.down)); } editor.pushUndoStop(); @@ -114,8 +114,8 @@ abstract class AbstractMoveLinesAction extends EditorAction { let selections = editor.getSelections() || []; let autoIndent = editor.getConfiguration().autoIndent; - for (let i = 0; i < selections.length; i++) { - commands.push(new MoveLinesCommand(selections[i], this.down, autoIndent)); + for (const selection of selections) { + commands.push(new MoveLinesCommand(selection, this.down, autoIndent)); } editor.pushUndoStop(); diff --git a/src/vs/editor/contrib/links/links.ts b/src/vs/editor/contrib/links/links.ts index 701b20428aa..d224f2254ad 100644 --- a/src/vs/editor/contrib/links/links.ts +++ b/src/vs/editor/contrib/links/links.ts @@ -270,8 +270,8 @@ class LinkDetector implements editorCommon.IEditorContribution { let newDecorations: IModelDeltaDecoration[] = []; if (links) { // Not sure why this is sometimes null - for (let i = 0; i < links.length; i++) { - newDecorations.push(LinkOccurrence.decoration(links[i], useMetaKey)); + for (const link of links) { + newDecorations.push(LinkOccurrence.decoration(link, useMetaKey)); } } diff --git a/src/vs/editor/standalone/browser/simpleServices.ts b/src/vs/editor/standalone/browser/simpleServices.ts index 8e007e8133b..8c7cff0fdf1 100644 --- a/src/vs/editor/standalone/browser/simpleServices.ts +++ b/src/vs/editor/standalone/browser/simpleServices.ts @@ -350,8 +350,8 @@ export class StandaloneKeybindingService extends AbstractKeybindingService { result[resultLen++] = new ResolvedKeybindingItem(null, item.command, item.commandArgs, when, isDefault); } else { const resolvedKeybindings = this.resolveKeybinding(keybinding); - for (let j = 0; j < resolvedKeybindings.length; j++) { - result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybindings[j], item.command, item.commandArgs, when, isDefault); + for (const resolvedKeybinding of resolvedKeybindings) { + result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault); } } } diff --git a/src/vs/editor/test/common/model/benchmark/benchmarkUtils.ts b/src/vs/editor/test/common/model/benchmark/benchmarkUtils.ts index aea80a39d49..8611f80179b 100644 --- a/src/vs/editor/test/common/model/benchmark/benchmarkUtils.ts +++ b/src/vs/editor/test/common/model/benchmark/benchmarkUtils.ts @@ -8,9 +8,9 @@ import { PieceTreeTextBufferBuilder } from 'vs/editor/common/model/pieceTreeText export function doBenchmark(id: string, ts: T[], fn: (t: T) => void) { let columns: string[] = [id]; - for (let i = 0; i < ts.length; i++) { + for (const t of ts) { let start = process.hrtime(); - fn(ts[i]); + fn(t); let diff = process.hrtime(start); columns.push(`${(diff[0] * 1000 + diff[1] / 1000000).toFixed(3)} ms`); } diff --git a/src/vs/editor/test/common/model/editableTextModelAuto.test.ts b/src/vs/editor/test/common/model/editableTextModelAuto.test.ts index fb8c7362d8b..5b3ab479ab9 100644 --- a/src/vs/editor/test/common/model/editableTextModelAuto.test.ts +++ b/src/vs/editor/test/common/model/editableTextModelAuto.test.ts @@ -224,12 +224,12 @@ class TestModel { let offsetToPosition = TestModel._generateOffsetToPosition(this.initialContent); this.edits = []; - for (let i = 0; i < edits.length; i++) { - let startPosition = offsetToPosition[edits[i].offset]; - let endPosition = offsetToPosition[edits[i].offset + edits[i].length]; + for (const edit of edits) { + let startPosition = offsetToPosition[edit.offset]; + let endPosition = offsetToPosition[edit.offset + edit.length]; this.edits.push({ range: new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column), - text: edits[i].text + text: edit.text }); } diff --git a/src/vs/editor/test/common/model/linesTextBuffer/textBufferAutoTestUtils.ts b/src/vs/editor/test/common/model/linesTextBuffer/textBufferAutoTestUtils.ts index 155dd7fbe4f..55e1117de7a 100644 --- a/src/vs/editor/test/common/model/linesTextBuffer/textBufferAutoTestUtils.ts +++ b/src/vs/editor/test/common/model/linesTextBuffer/textBufferAutoTestUtils.ts @@ -33,8 +33,8 @@ export function getRandomString(minLength: number, maxLength: number): string { export function generateRandomEdits(chunks: string[], editCnt: number): IIdentifiedSingleEditOperation[] { let lines: string[] = []; - for (let i = 0; i < chunks.length; i++) { - let newLines = chunks[i].split(/\r\n|\r|\n/); + for (const chunk of chunks) { + let newLines = chunk.split(/\r\n|\r|\n/); if (lines.length === 0) { lines.push(...newLines); } else { @@ -66,8 +66,8 @@ export function generateRandomEdits(chunks: string[], editCnt: number): IIdentif export function generateSequentialInserts(chunks: string[], editCnt: number): IIdentifiedSingleEditOperation[] { let lines: string[] = []; - for (let i = 0; i < chunks.length; i++) { - let newLines = chunks[i].split(/\r\n|\r|\n/); + for (const chunk of chunks) { + let newLines = chunk.split(/\r\n|\r|\n/); if (lines.length === 0) { lines.push(...newLines); } else { @@ -101,8 +101,8 @@ export function generateSequentialInserts(chunks: string[], editCnt: number): II export function generateRandomReplaces(chunks: string[], editCnt: number, searchStringLen: number, replaceStringLen: number): IIdentifiedSingleEditOperation[] { let lines: string[] = []; - for (let i = 0; i < chunks.length; i++) { - let newLines = chunks[i].split(/\r\n|\r|\n/); + for (const chunk of chunks) { + let newLines = chunk.split(/\r\n|\r|\n/); if (lines.length === 0) { lines.push(...newLines); } else { diff --git a/src/vs/editor/test/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.test.ts b/src/vs/editor/test/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.test.ts index 5ea1b4ff5fd..626420509dd 100644 --- a/src/vs/editor/test/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.test.ts +++ b/src/vs/editor/test/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.test.ts @@ -154,8 +154,8 @@ function testLineStarts(str: string, pieceTable: PieceTreeBase) { function createTextBuffer(val: string[], normalizeEOL: boolean = true): PieceTreeBase { let bufferBuilder = new PieceTreeTextBufferBuilder(); - for (let i = 0; i < val.length; i++) { - bufferBuilder.acceptChunk(val[i]); + for (const chunk of val) { + bufferBuilder.acceptChunk(chunk); } let factory = bufferBuilder.finish(normalizeEOL); return (factory.create(DefaultEndOfLine.LF)).getPieceTree(); diff --git a/src/vs/editor/test/common/model/textModelSearch.test.ts b/src/vs/editor/test/common/model/textModelSearch.test.ts index bf2822d6f73..1dc5e82b52c 100644 --- a/src/vs/editor/test/common/model/textModelSearch.test.ts +++ b/src/vs/editor/test/common/model/textModelSearch.test.ts @@ -29,20 +29,20 @@ suite('TextModelSearch', () => { let startPos = new Position(1, 1); let match = TextModelSearch.findNextMatch(model, searchParams, startPos, false); assert.deepEqual(match, expectedMatches[0], `findNextMatch ${startPos}`); - for (let i = 0; i < expectedMatches.length; i++) { - startPos = expectedMatches[i].range.getStartPosition(); + for (const expectedMatch of expectedMatches) { + startPos = expectedMatch.range.getStartPosition(); match = TextModelSearch.findNextMatch(model, searchParams, startPos, false); - assert.deepEqual(match, expectedMatches[i], `findNextMatch ${startPos}`); + assert.deepEqual(match, expectedMatch, `findNextMatch ${startPos}`); } // test `findPrevMatch` startPos = new Position(model.getLineCount(), model.getLineMaxColumn(model.getLineCount())); match = TextModelSearch.findPreviousMatch(model, searchParams, startPos, false); assert.deepEqual(match, expectedMatches[expectedMatches.length - 1], `findPrevMatch ${startPos}`); - for (let i = 0; i < expectedMatches.length; i++) { - startPos = expectedMatches[i].range.getEndPosition(); + for (const expectedMatch of expectedMatches) { + startPos = expectedMatch.range.getEndPosition(); match = TextModelSearch.findPreviousMatch(model, searchParams, startPos, false); - assert.deepEqual(match, expectedMatches[i], `findPrevMatch ${startPos}`); + assert.deepEqual(match, expectedMatch, `findPrevMatch ${startPos}`); } } diff --git a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts index c8b68f539b7..0112ef018b6 100644 --- a/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts +++ b/src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts @@ -673,8 +673,7 @@ suite('viewLineRenderer.renderLine', () => { let charOffset = 0; for (let partIndex = 0; partIndex < expected.length; partIndex++) { let part = expected[partIndex]; - for (let i = 0; i < part.length; i++) { - let charIndex = part[i]; + for (const charIndex of part) { // here let _actualPartData = actual.charOffsetToPartData(charOffset); let actualPartIndex = CharacterMapping.getPartIndex(_actualPartData); diff --git a/src/vs/platform/keybinding/common/keybindingResolver.ts b/src/vs/platform/keybinding/common/keybindingResolver.ts index d549ce8cadc..05cecccff7f 100644 --- a/src/vs/platform/keybinding/common/keybindingResolver.ts +++ b/src/vs/platform/keybinding/common/keybindingResolver.ts @@ -180,8 +180,7 @@ export class KeybindingResolver { const bExpressions: ContextKeyExpr[] = ((b instanceof ContextKeyAndExpr) ? b.expr : [b]); let aIndex = 0; - for (let bIndex = 0; bIndex < bExpressions.length; bIndex++) { - let bExpr = bExpressions[bIndex]; + for (const bExpr of bExpressions) { let bExprMatched = false; while (!bExprMatched && aIndex < aExpressions.length) { let aExpr = aExpressions[aIndex]; diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index d9799af6a70..7d4699fd767 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -495,9 +495,9 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { const fileNames: string[] = []; const globPatterns: string[] = []; - for (let i = 0; i < activationEvents.length; i++) { - if (/^workspaceContains:/.test(activationEvents[i])) { - const fileNameOrGlob = activationEvents[i].substr('workspaceContains:'.length); + for (const activationEvent of activationEvents) { + if (/^workspaceContains:/.test(activationEvent)) { + const fileNameOrGlob = activationEvent.substr('workspaceContains:'.length); if (fileNameOrGlob.indexOf('*') >= 0 || fileNameOrGlob.indexOf('?') >= 0) { globPatterns.push(fileNameOrGlob); } else { diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index 1069e29fe06..34e9c8bec26 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -53,10 +53,10 @@ class OutlineAdapter { }); } - private static _asDocumentSymbolTree(resource: URI, info: SymbolInformation[]): modes.DocumentSymbol[] { + private static _asDocumentSymbolTree(resource: URI, infos: SymbolInformation[]): modes.DocumentSymbol[] { // first sort by start (and end) and then loop over all elements // and build a tree based on containment. - info = info.slice(0).sort((a, b) => { + infos = infos.slice(0).sort((a, b) => { let res = a.location.range.start.compareTo(b.location.range.start); if (res === 0) { res = b.location.range.end.compareTo(a.location.range.end); @@ -65,13 +65,13 @@ class OutlineAdapter { }); let res: modes.DocumentSymbol[] = []; let parentStack: modes.DocumentSymbol[] = []; - for (let i = 0; i < info.length; i++) { + for (const info of infos) { let element = { - name: info[i].name, - kind: typeConvert.SymbolKind.from(info[i].kind), - containerName: info[i].containerName, - range: typeConvert.Range.from(info[i].location.range), - selectionRange: typeConvert.Range.from(info[i].location.range), + name: info.name, + kind: typeConvert.SymbolKind.from(info.kind), + containerName: info.containerName, + range: typeConvert.Range.from(info.location.range), + selectionRange: typeConvert.Range.from(info.location.range), children: [] }; diff --git a/src/vs/workbench/browser/composite.ts b/src/vs/workbench/browser/composite.ts index 3076e2891f3..65bb9e04206 100644 --- a/src/vs/workbench/browser/composite.ts +++ b/src/vs/workbench/browser/composite.ts @@ -256,9 +256,9 @@ export abstract class CompositeRegistry extends Disposable } private compositeById(id: string): CompositeDescriptor | null { - for (let i = 0; i < this.composites.length; i++) { - if (this.composites[i].id === id) { - return this.composites[i]; + for (const composite of this.composites) { + if (composite.id === id) { + return composite; } } diff --git a/src/vs/workbench/browser/editor.ts b/src/vs/workbench/browser/editor.ts index 1269430ac44..cc0de2fd029 100644 --- a/src/vs/workbench/browser/editor.ts +++ b/src/vs/workbench/browser/editor.ts @@ -109,8 +109,8 @@ class EditorRegistry implements IEditorRegistry { for (const editor of this.editors) { const inputDescriptors = []>editor[INPUT_DESCRIPTORS_PROPERTY]; - for (let j = 0; j < inputDescriptors.length; j++) { - const inputClass = inputDescriptors[j].ctor; + for (const inputDescriptor of inputDescriptors) { + const inputClass = inputDescriptor.ctor; // Direct check on constructor type (ignores prototype chain) if (!byInstanceOf && input.constructor === inputClass) { diff --git a/src/vs/workbench/browser/parts/compositeBar.ts b/src/vs/workbench/browser/parts/compositeBar.ts index 60469017c69..1ff9f349605 100644 --- a/src/vs/workbench/browser/parts/compositeBar.ts +++ b/src/vs/workbench/browser/parts/compositeBar.ts @@ -593,8 +593,7 @@ class CompositeBarModel { } setPinned(id: string, pinned: boolean): boolean { - for (let index = 0; index < this.items.length; index++) { - const item = this.items[index]; + for (const item of this.items) { if (item.id === id) { if (item.pinned !== pinned) { item.pinned = pinned; @@ -656,8 +655,7 @@ class CompositeBarModel { if (this.activeItem) { this.deactivate(); } - for (let index = 0; index < this.items.length; index++) { - const item = this.items[index]; + for (const item of this.items) { if (item.id === id) { this.activeItem = item; this.activeItem.activityAction.activate(); diff --git a/src/vs/workbench/browser/parts/compositePart.ts b/src/vs/workbench/browser/parts/compositePart.ts index cc6750f0f82..14bc85c0646 100644 --- a/src/vs/workbench/browser/parts/compositePart.ts +++ b/src/vs/workbench/browser/parts/compositePart.ts @@ -159,9 +159,9 @@ export abstract class CompositePart extends Part { protected createComposite(id: string, isActive?: boolean): Composite { // Check if composite is already created - for (let i = 0; i < this.instantiatedComposites.length; i++) { - if (this.instantiatedComposites[i].getId() === id) { - return this.instantiatedComposites[i]; + for (const composite of this.instantiatedComposites) { + if (composite.getId() === id) { + return composite; } } @@ -478,8 +478,8 @@ export abstract class CompositePart extends Part { this.mapProgressServiceToComposite = null; this.mapActionsBindingToComposite = null; - for (let i = 0; i < this.instantiatedComposites.length; i++) { - this.instantiatedComposites[i].dispose(); + for (const composite of this.instantiatedComposites) { + composite.dispose(); } this.instantiatedComposites = []; diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index 6277d9b2e11..e89f138079c 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -196,8 +196,8 @@ export class JoinTwoGroupsAction extends Action { } const targetGroupDirections = [GroupDirection.RIGHT, GroupDirection.DOWN, GroupDirection.LEFT, GroupDirection.UP]; - for (let i = 0; i < targetGroupDirections.length; i++) { - const targetGroup = this.editorGroupService.findGroup({ direction: targetGroupDirections[i] }, sourceGroup); + for (const targetGroupDirection of targetGroupDirections) { + const targetGroup = this.editorGroupService.findGroup({ direction: targetGroupDirection }, sourceGroup); if (targetGroup && sourceGroup !== targetGroup) { this.editorGroupService.mergeGroup(sourceGroup, targetGroup); @@ -780,10 +780,10 @@ export class BaseMoveGroupAction extends Action { break; } - for (let i = 0; i < targetNeighbours.length; i++) { - const targetNeighbour = this.editorGroupService.findGroup({ direction: targetNeighbours[i] }, sourceGroup); - if (targetNeighbour) { - return targetNeighbour; + for (const targetNeighbour of targetNeighbours) { + const targetNeighbourGroup = this.editorGroupService.findGroup({ direction: targetNeighbour }, sourceGroup); + if (targetNeighbourGroup) { + return targetNeighbourGroup; } } diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 69eefa7d43e..1f459bc679d 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -583,8 +583,8 @@ export class EditorStatus implements IStatusbarItem { this.onEOLChange(activeCodeEditor); let selections = activeCodeEditor.getSelections(); - for (let i = 0; i < e.changes.length; i++) { - if (selections.some(selection => Range.areIntersecting(selection, e.changes[i].range))) { + for (const change of e.changes) { + if (selections.some(selection => Range.areIntersecting(selection, change.range))) { this.onSelectionChange(activeCodeEditor); break; } diff --git a/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts b/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts index 85248733682..a6ea9ea01ad 100644 --- a/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts +++ b/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts @@ -294,8 +294,8 @@ export class ReviewZoneWidget extends ZoneWidget { this._commentsElement.setAttribute('role', 'presentation'); this._commentElements = []; - for (let i = 0; i < this._commentThread.comments.length; i++) { - const newCommentNode = this.createNewCommentNode(this._commentThread.comments[i]); + for (const comment of this._commentThread.comments) { + const newCommentNode = this.createNewCommentNode(comment); this._commentElements.push(newCommentNode); this._commentsElement.appendChild(newCommentNode.domNode); diff --git a/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts b/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts index 54e7a066b07..ef05a7fe117 100644 --- a/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts +++ b/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts @@ -131,11 +131,10 @@ class CommentingRangeDecorator { } public getMatchedCommentAction(line: number) { - for (let i = 0; i < this.commentingRangeDecorations.length; i++) { - let range = this.commentingRangeDecorations[i].getActiveRange(); - + for (const decoration of this.commentingRangeDecorations) { + const range = decoration.getActiveRange(); if (range.startLineNumber <= line && line <= range.endLineNumber) { - return this.commentingRangeDecorations[i].getCommentAction(); + return decoration.getCommentAction(); } } diff --git a/src/vs/workbench/parts/experiments/node/experimentService.ts b/src/vs/workbench/parts/experiments/node/experimentService.ts index b3761fc0344..93161ac49e3 100644 --- a/src/vs/workbench/parts/experiments/node/experimentService.ts +++ b/src/vs/workbench/parts/experiments/node/experimentService.ts @@ -149,12 +149,12 @@ export class ExperimentService extends Disposable implements IExperimentService public getCuratedExtensionsList(curatedExtensionsKey: string): Promise { return this._loadExperimentsPromise.then(() => { - for (let i = 0; i < this._experiments.length; i++) { - if (this._experiments[i].enabled - && this._experiments[i].state === ExperimentState.Run - && this._curatedMapping[this._experiments[i].id] - && this._curatedMapping[this._experiments[i].id].curatedExtensionsKey === curatedExtensionsKey) { - return this._curatedMapping[this._experiments[i].id].curatedExtensionsList; + for (const experiment of this._experiments) { + if (experiment.enabled + && experiment.state === ExperimentState.Run + && this._curatedMapping[experiment.id] + && this._curatedMapping[experiment.id].curatedExtensionsKey === curatedExtensionsKey) { + return this._curatedMapping[experiment.id].curatedExtensionsList; } } return []; diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts index 813b30fe62e..c1f0f4e3011 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.ts @@ -831,8 +831,8 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { if (fromDesktop) { const types: string[] = originalEvent.dataTransfer.types; const typesArray: string[] = []; - for (let i = 0; i < types.length; i++) { - typesArray.push(types[i].toLowerCase()); // somehow the types are lowercase + for (const t of types) { + typesArray.push(t.toLowerCase()); // somehow the types are lowercase } if (typesArray.indexOf(DataTransfers.FILES.toLowerCase()) === -1 && typesArray.indexOf(CodeDataTransfers.FILES.toLowerCase()) === -1) { @@ -1023,15 +1023,15 @@ export class FileDragAndDrop extends SimpleFileResourceDragAndDrop { const workspaceCreationData: IWorkspaceFolderCreationData[] = []; const rootsToMove: IWorkspaceFolderCreationData[] = []; - for (let index = 0; index < folders.length; index++) { + for (const folder of folders) { const data = { - uri: folders[index].uri + uri: folder.uri }; - if (target instanceof ExplorerItem && folders[index].uri.toString() === target.resource.toString()) { + if (target instanceof ExplorerItem && folder.uri.toString() === target.resource.toString()) { targetIndex = workspaceCreationData.length; } - if (roots.every(r => r.resource.toString() !== folders[index].uri.toString())) { + if (roots.every(r => r.resource.toString() !== folder.uri.toString())) { workspaceCreationData.push(data); } else { rootsToMove.push(data); diff --git a/src/vs/workbench/parts/preferences/common/preferencesContribution.ts b/src/vs/workbench/parts/preferences/common/preferencesContribution.ts index 30ea0ebe585..2a1a4640594 100644 --- a/src/vs/workbench/parts/preferences/common/preferencesContribution.ts +++ b/src/vs/workbench/parts/preferences/common/preferencesContribution.ts @@ -95,9 +95,9 @@ export class PreferencesContribution implements IWorkbenchContribution { // Multi Folder Workspace Settings File else if (state === WorkbenchState.WORKSPACE) { const folders = this.workspaceService.getWorkspace().folders; - for (let i = 0; i < folders.length; i++) { - if (isEqual(resource, folders[i].toResource(FOLDER_SETTINGS_PATH))) { - return { override: this.preferencesService.openFolderSettings(folders[i].uri, true, options, group) }; + for (const folder of folders) { + if (isEqual(resource, folder.toResource(FOLDER_SETTINGS_PATH))) { + return { override: this.preferencesService.openFolderSettings(folder.uri, true, options, group) }; } } } diff --git a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts index 57623b3a315..2ecec8c79b3 100644 --- a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts @@ -85,9 +85,7 @@ export class HelpHandler extends QuickOpenHandler { // Descriptor has multiple help entries if (types.isArray(handlerDescriptor.helpEntries)) { - for (let j = 0; j < handlerDescriptor.helpEntries.length; j++) { - const helpEntry = handlerDescriptor.helpEntries[j]; - + for (const helpEntry of handlerDescriptor.helpEntries) { if (helpEntry.prefix.indexOf(searchValue) === 0) { matchingHandlers.push(helpEntry); } diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index 936a7c08a0d..c18f2a3d32d 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -1693,8 +1693,8 @@ class TaskService extends Disposable implements ITaskService { let parseErrors: string[] = (result as any).$parseErrors; if (parseErrors) { let isAffected = false; - for (let i = 0; i < parseErrors.length; i++) { - if (/tasks\.json$/.test(parseErrors[i])) { + for (const parseError of parseErrors) { + if (/tasks\.json$/.test(parseError)) { isAffected = true; break; } diff --git a/src/vs/workbench/services/editor/browser/editorService.ts b/src/vs/workbench/services/editor/browser/editorService.ts index 1f637297c7b..dddca753596 100644 --- a/src/vs/workbench/services/editor/browser/editorService.ts +++ b/src/vs/workbench/services/editor/browser/editorService.ts @@ -410,8 +410,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { // Resource editor else { - for (let j = 0; j < group.editors.length; j++) { - const editorInGroup = group.editors[j]; + for (const editorInGroup of group.editors) { const resource = toResource(editorInGroup, { supportSideBySide: true }); if (!resource) { continue; // need a resource to compare with diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts index dbf60e095a0..1f9e83545dc 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -223,8 +223,8 @@ export class ExtensionService extends Disposable implements IExtensionService { previouslyActivatedExtensionIds.push(value); }); - for (let i = 0; i < this._extensionHostProcessManagers.length; i++) { - this._extensionHostProcessManagers[i].dispose(); + for (const manager of this._extensionHostProcessManagers) { + manager.dispose(); } this._extensionHostProcessManagers = []; this._extensionHostActiveExtensions = new Map(); diff --git a/src/vs/workbench/services/history/electron-browser/history.ts b/src/vs/workbench/services/history/electron-browser/history.ts index aaf6574a520..d2de2edc965 100644 --- a/src/vs/workbench/services/history/electron-browser/history.ts +++ b/src/vs/workbench/services/history/electron-browser/history.ts @@ -921,8 +921,8 @@ export class HistoryService extends Disposable implements IHistoryService { } // fallback to first workspace matching scheme filter if any - for (let i = 0; i < folders.length; i++) { - const resource = folders[i].uri; + for (const folder of folders) { + const resource = folder.uri; if (!schemeFilter || resource.scheme === schemeFilter) { return resource; } @@ -933,10 +933,8 @@ export class HistoryService extends Disposable implements IHistoryService { getLastActiveFile(schemeFilter: string): URI { const history = this.getHistory(); - for (let i = 0; i < history.length; i++) { + for (const input of history) { let resource: URI; - - const input = history[i]; if (input instanceof EditorInput) { resource = toResource(input, { filter: schemeFilter }); } else { diff --git a/src/vs/workbench/services/jsonschemas/common/jsonValidationExtensionPoint.ts b/src/vs/workbench/services/jsonschemas/common/jsonValidationExtensionPoint.ts index ee7f27af945..8e20f407866 100644 --- a/src/vs/workbench/services/jsonschemas/common/jsonValidationExtensionPoint.ts +++ b/src/vs/workbench/services/jsonschemas/common/jsonValidationExtensionPoint.ts @@ -40,10 +40,10 @@ export class JSONValidationExtensionPoint { constructor() { configurationExtPoint.setHandler((extensions) => { - for (let i = 0; i < extensions.length; i++) { - const extensionValue = extensions[i].value; - const collector = extensions[i].collector; - const extensionLocation = extensions[i].description.extensionLocation; + for (const extension of extensions) { + const extensionValue = extension.value; + const collector = extension.collector; + const extensionLocation = extension.description.extensionLocation; if (!extensionValue || !Array.isArray(extensionValue)) { collector.error(nls.localize('invalid.jsonValidation', "'configuration.jsonValidation' must be a array")); diff --git a/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts b/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts index e3556f09be3..5f5fda563e5 100644 --- a/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts +++ b/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts @@ -460,9 +460,8 @@ export class WindowsKeyboardMapper implements IKeyboardMapper { const mapping = this._codeInfo[scanCode]; const strCode = ScanCodeUtils.toString(scanCode); - let mods = [0b000, 0b010, 0b101, 0b111]; - for (let modIndex = 0; modIndex < mods.length; modIndex++) { - const mod = mods[modIndex]; + const mods = [0b000, 0b010, 0b101, 0b111]; + for (const mod of mods) { const ctrlKey = (mod & 0b001) ? true : false; const shiftKey = (mod & 0b010) ? true : false; const altKey = (mod & 0b100) ? true : false; diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts index 7ce86f4d025..6411011da03 100644 --- a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts @@ -394,8 +394,8 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { result[resultLen++] = new ResolvedKeybindingItem(null, item.command, item.commandArgs, when, isDefault); } else { const resolvedKeybindings = this.resolveKeybinding(keybinding); - for (let j = 0; j < resolvedKeybindings.length; j++) { - result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybindings[j], item.command, item.commandArgs, when, isDefault); + for (const resolvedKeybinding of resolvedKeybindings) { + result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault); } } } @@ -415,8 +415,8 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { result[resultLen++] = new ResolvedKeybindingItem(null, item.command, item.commandArgs, when, isDefault); } else { const resolvedKeybindings = this._keyboardMapper.resolveUserBinding(firstPart, chordPart); - for (let j = 0; j < resolvedKeybindings.length; j++) { - result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybindings[j], item.command, item.commandArgs, when, isDefault); + for (const resolvedKeybinding of resolvedKeybindings) { + result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault); } } } diff --git a/src/vs/workbench/services/textMate/electron-browser/TMSyntax.ts b/src/vs/workbench/services/textMate/electron-browser/TMSyntax.ts index 60ea1e6dc94..866ccbc1954 100644 --- a/src/vs/workbench/services/textMate/electron-browser/TMSyntax.ts +++ b/src/vs/workbench/services/textMate/electron-browser/TMSyntax.ts @@ -182,15 +182,15 @@ export class TextMateService extends Disposable implements ITextMateService { this._grammarRegistry = null; this._tokenizersRegistrations = dispose(this._tokenizersRegistrations); - for (let i = 0; i < extensions.length; i++) { - let grammars = extensions[i].value; - for (let j = 0; j < grammars.length; j++) { - this._handleGrammarExtensionPointUser(extensions[i].description.extensionLocation, grammars[j], extensions[i].collector); + for (const extension of extensions) { + let grammars = extension.value; + for (const grammar of grammars) { + this._handleGrammarExtensionPointUser(extension.description.extensionLocation, grammar, extension.collector); } } - for (let i = 0; i < this._createdModes.length; i++) { - this._registerDefinitionIfAvailable(this._createdModes[i]); + for (const createMode of this._createdModes) { + this._registerDefinitionIfAvailable(createMode); } }); diff --git a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts index 522436d3ded..4aabd7d20cd 100644 --- a/src/vs/workbench/services/textfile/common/textFileEditorModel.ts +++ b/src/vs/workbench/services/textfile/common/textFileEditorModel.ts @@ -795,8 +795,8 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil // Check for workspace settings file const folders = this.contextService.getWorkspace().folders; - for (let i = 0; i < folders.length; i++) { - if (isEqualOrParent(this.resource, folders[i].toResource('.vscode'))) { + for (const folder of folders) { + if (isEqualOrParent(this.resource, folder.toResource('.vscode'))) { const filename = path.basename(this.resource.fsPath); if (TextFileEditorModel.WHITELIST_WORKSPACE_JSON.indexOf(filename) > -1) { return `.vscode/${filename}`; diff --git a/src/vs/workbench/services/themes/common/colorExtensionPoint.ts b/src/vs/workbench/services/themes/common/colorExtensionPoint.ts index 42a0650ed29..e903d072150 100644 --- a/src/vs/workbench/services/themes/common/colorExtensionPoint.ts +++ b/src/vs/workbench/services/themes/common/colorExtensionPoint.ts @@ -73,9 +73,9 @@ export class ColorExtensionPoint { constructor() { configurationExtPoint.setHandler((extensions) => { - for (let i = 0; i < extensions.length; i++) { - const extensionValue = extensions[i].value; - const collector = extensions[i].collector; + for (const extension of extensions) { + const extensionValue = extension.value; + const collector = extension.collector; if (!extensionValue || !Array.isArray(extensionValue)) { collector.error(nls.localize('invalid.colorConfiguration', "'configuration.colors' must be a array")); diff --git a/src/vs/workbench/services/themes/electron-browser/themeCompatibility.ts b/src/vs/workbench/services/themes/electron-browser/themeCompatibility.ts index 7ce9567369d..b5863d584de 100644 --- a/src/vs/workbench/services/themes/electron-browser/themeCompatibility.ts +++ b/src/vs/workbench/services/themes/electron-browser/themeCompatibility.ts @@ -72,8 +72,6 @@ const ansiColorMap = ['ansiBlack', 'ansiRed', 'ansiGreen', 'ansiYellow', 'ansiBl 'ansiBrightBlack', 'ansiBrightRed', 'ansiBrightGreen', 'ansiBrightYellow', 'ansiBrightBlue', 'ansiBrightMagenta', 'ansiBrightCyan', 'ansiBrightWhite' ]; -for (let i = 0; i < ansiColorMap.length; i++) { - addSettingMapping(ansiColorMap[i], 'terminal.' + ansiColorMap[i]); +for (const color of ansiColorMap) { + addSettingMapping(color, 'terminal.' + color); } - - diff --git a/src/vs/workbench/test/workbenchTestServices.ts b/src/vs/workbench/test/workbenchTestServices.ts index 60c36782db4..f51dfa896d9 100644 --- a/src/vs/workbench/test/workbenchTestServices.ts +++ b/src/vs/workbench/test/workbenchTestServices.ts @@ -557,9 +557,9 @@ export class TestEditorGroupsService implements EditorGroupsServiceImpl { } getGroup(identifier: number): IEditorGroup { - for (let i = 0; i < this.groups.length; i++) { - if (this.groups[i].id === identifier) { - return this.groups[i]; + for (const group of this.groups) { + if (group.id === identifier) { + return group; } }