From 5c12fe3ee48af49055c6be05f6d79cd0e2ee000f Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 24 Mar 2016 23:02:36 +0100 Subject: [PATCH] Use Object.keys --- .../standalone/standaloneCodeEditor.ts | 10 +- .../browser/standalone/standaloneServices.ts | 20 ++-- .../contentWidgets/contentWidgets.ts | 77 ++++++------- .../overlayWidgets/overlayWidgets.ts | 12 +- .../browser/viewParts/viewZones/viewZones.ts | 84 +++++++------- .../editor/browser/widget/codeEditorWidget.ts | 17 ++- src/vs/editor/common/commonCodeEditor.ts | 29 ++--- .../common/config/commonEditorConfig.ts | 12 +- src/vs/editor/common/controller/cursor.ts | 15 ++- .../common/model/textModelWithDecorations.ts | 106 +++++++++--------- .../common/model/textModelWithMarkers.ts | 10 +- .../model/textModelWithTrackedRanges.ts | 38 +++---- .../common/services/languagesRegistry.ts | 12 +- .../common/services/modelServiceImpl.ts | 32 +++--- .../common/viewLayout/whitespaceComputer.ts | 30 ++--- .../common/viewModel/viewModelDecorations.ts | 7 +- src/vs/editor/contrib/links/browser/links.ts | 10 +- .../contrib/quickOpen/common/quickOpen.ts | 8 +- 18 files changed, 251 insertions(+), 278 deletions(-) diff --git a/src/vs/editor/browser/standalone/standaloneCodeEditor.ts b/src/vs/editor/browser/standalone/standaloneCodeEditor.ts index d3397d0627d..ffb1f8c4361 100644 --- a/src/vs/editor/browser/standalone/standaloneCodeEditor.ts +++ b/src/vs/editor/browser/standalone/standaloneCodeEditor.ts @@ -293,12 +293,12 @@ var startup = (function() { })(); function shallowClone(obj:T): T { - var r:T = {}; + let r:T = {}; if (obj) { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - r[key] = obj[key]; - } + let keys = Object.keys(obj); + for (let i = 0, len = keys.length; i < len; i++) { + let key = keys[i]; + r[key] = obj[key]; } } return r; diff --git a/src/vs/editor/browser/standalone/standaloneServices.ts b/src/vs/editor/browser/standalone/standaloneServices.ts index 65f02d80b11..f85a6db1297 100644 --- a/src/vs/editor/browser/standalone/standaloneServices.ts +++ b/src/vs/editor/browser/standalone/standaloneServices.ts @@ -90,12 +90,12 @@ export interface IStaticServices { } function shallowClone(obj:T): T { - var r:T = {}; + let r:T = {}; if (obj) { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - r[key] = obj[key]; - } + let keys = Object.keys(obj); + for (let i = 0, len = keys.length; i < len; i++) { + let key = keys[i]; + r[key] = obj[key]; } } return r; @@ -106,11 +106,11 @@ export function ensureStaticPlatformServices(services: IEditorOverrideServices): var statics = getOrCreateStaticServices(services); - for (var serviceId in statics) { - if (statics.hasOwnProperty(serviceId)) { - if (!services.hasOwnProperty(serviceId)) { - services[serviceId] = statics[serviceId]; - } + let keys = Object.keys(statics); + for (let i = 0, len = keys.length; i < len; i++) { + let serviceId = keys[i]; + if (!services.hasOwnProperty(serviceId)) { + services[serviceId] = statics[serviceId]; } } diff --git a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts index bab8f388804..90440567905 100644 --- a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts +++ b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts @@ -114,11 +114,10 @@ export class ViewContentWidgets extends ViewPart { this._requestModificationFrameBeforeRendering(() => { // update the maxWidth on widgets nodes, such that `onReadAfterForcedLayout` // below can read out the adjusted width/height of widgets - let widgetId:string; - for (widgetId in this._widgets) { - if (this._widgets.hasOwnProperty(widgetId)) { - StyleMutator.setMaxWidth(this._widgets[widgetId].widget.getDomNode(), this._contentWidth); - } + let keys = Object.keys(this._widgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + StyleMutator.setMaxWidth(this._widgets[widgetId].widget.getDomNode(), this._contentWidth); } }); @@ -363,48 +362,42 @@ export class ViewContentWidgets extends ViewPart { } _render(ctx:IRenderingContext): void { - let data:IMyRenderData = {}, - renderData: IMyWidgetRenderData, - widgetId: string; - - for (widgetId in this._widgets) { - if (this._widgets.hasOwnProperty(widgetId)) { - renderData = this._prepareRenderWidget(this._widgets[widgetId], ctx); - if (renderData) { - data[widgetId] = renderData; - } + let data:IMyRenderData = {}; + + let keys = Object.keys(this._widgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + let renderData = this._prepareRenderWidget(this._widgets[widgetId], ctx); + if (renderData) { + data[widgetId] = renderData; } } this._requestModificationFrame(() => { - let widgetId:string, - widget:IWidgetData, - domNode: HTMLElement; - - for (widgetId in this._widgets) { - if (this._widgets.hasOwnProperty(widgetId)) { - widget = this._widgets[widgetId]; - domNode = this._widgets[widgetId].widget.getDomNode(); - - if (data.hasOwnProperty(widgetId)) { - if (widget.allowEditorOverflow) { - StyleMutator.setTop(domNode, data[widgetId].top); - StyleMutator.setLeft(domNode, data[widgetId].left); - } else { - StyleMutator.setTop(domNode, data[widgetId].top + ctx.viewportTop - ctx.bigNumbersDelta); - StyleMutator.setLeft(domNode, data[widgetId].left); - } - if (!widget.isVisible) { - StyleMutator.setVisibility(domNode, 'inherit'); - domNode.setAttribute('monaco-visible-content-widget', 'true'); - widget.isVisible = true; - } + let keys = Object.keys(this._widgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + let widget = this._widgets[widgetId]; + let domNode = this._widgets[widgetId].widget.getDomNode(); + + if (data.hasOwnProperty(widgetId)) { + if (widget.allowEditorOverflow) { + StyleMutator.setTop(domNode, data[widgetId].top); + StyleMutator.setLeft(domNode, data[widgetId].left); } else { - if (widget.isVisible) { - domNode.removeAttribute('monaco-visible-content-widget'); - widget.isVisible = false; - StyleMutator.setVisibility(domNode, 'hidden'); - } + StyleMutator.setTop(domNode, data[widgetId].top + ctx.viewportTop - ctx.bigNumbersDelta); + StyleMutator.setLeft(domNode, data[widgetId].left); + } + if (!widget.isVisible) { + StyleMutator.setVisibility(domNode, 'inherit'); + domNode.setAttribute('monaco-visible-content-widget', 'true'); + widget.isVisible = true; + } + } else { + if (widget.isVisible) { + domNode.removeAttribute('monaco-visible-content-widget'); + widget.isVisible = false; + StyleMutator.setVisibility(domNode, 'hidden'); } } } diff --git a/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts b/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts index 36a3860d4ea..d4c85601156 100644 --- a/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts +++ b/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.ts @@ -82,7 +82,7 @@ export class ViewOverlayWidgets extends ViewPart { widgetData.preference = preference; this._requestModificationFrame(() => { - if(this._widgets.hasOwnProperty(widget.getId())) { + if (this._widgets.hasOwnProperty(widget.getId())) { this._renderWidget(widgetData); } }); @@ -136,13 +136,11 @@ export class ViewOverlayWidgets extends ViewPart { } _render(ctx:IRenderingContext): void { - var widgetId:string; - this._requestModificationFrame(() => { - for (widgetId in this._widgets) { - if (this._widgets.hasOwnProperty(widgetId)) { - this._renderWidget(this._widgets[widgetId]); - } + let keys = Object.keys(this._widgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + this._renderWidget(this._widgets[widgetId]); } }); } diff --git a/src/vs/editor/browser/viewParts/viewZones/viewZones.ts b/src/vs/editor/browser/viewParts/viewZones/viewZones.ts index e1e748dfeef..309114c4b9f 100644 --- a/src/vs/editor/browser/viewParts/viewZones/viewZones.ts +++ b/src/vs/editor/browser/viewParts/viewZones/viewZones.ts @@ -54,30 +54,29 @@ export class ViewZones extends ViewPart { // ---- begin view event handlers private _recomputeWhitespacesProps(): boolean { - let id:string; let zone2Height:{[id:string]:number;} = {}; let hadAChange = false; - for (id in this._zones) { - if (this._zones.hasOwnProperty(id)) { - let zone = this._zones[id]; - let props = this._computeWhitespaceProps(zone.delegate); - if (this._whitespaceManager.changeWhitespace(parseInt(id, 10), props.afterViewLineNumber, props.heightInPx)) { - this._safeCallOnComputedHeight(zone.delegate, props.heightInPx); - zone2Height[id] = props.heightInPx; - hadAChange = true; - } + let keys = Object.keys(this._zones); + for (let i = 0, len = keys.length; i < len; i++) { + let id = keys[i]; + let zone = this._zones[id]; + let props = this._computeWhitespaceProps(zone.delegate); + if (this._whitespaceManager.changeWhitespace(parseInt(id, 10), props.afterViewLineNumber, props.heightInPx)) { + this._safeCallOnComputedHeight(zone.delegate, props.heightInPx); + zone2Height[id] = props.heightInPx; + hadAChange = true; } } if (hadAChange) { this._requestModificationFrame(() => { - for (id in this._zones) { - if (this._zones.hasOwnProperty(id)) { - if (zone2Height.hasOwnProperty(id)) { - // TODO@Alex - edit dom node properties only in render() - StyleMutator.setHeight(this._zones[id].delegate.domNode, zone2Height[id]); - } + let keys = Object.keys(this._zones); + for (let i = 0, len = keys.length; i < len; i++) { + let id = keys[i]; + if (zone2Height.hasOwnProperty(id)) { + // TODO@Alex - edit dom node properties only in render() + StyleMutator.setHeight(this._zones[id].delegate.domNode, zone2Height[id]); } } }); @@ -291,41 +290,36 @@ export class ViewZones extends ViewPart { var visibleWhitespaces = this._whitespaceManager.getWhitespaceViewportData(); this._requestModificationFrame(() => { - var visibleZones:{[id:string]:editorCommon.IViewWhitespaceViewportData;} = {}, - i:number, - len:number, - hasVisibleZone = false; + let visibleZones:{[id:string]:editorCommon.IViewWhitespaceViewportData;} = {}; - for (i = 0, len = visibleWhitespaces.length; i < len; i++) { + let hasVisibleZone = false; + for (let i = 0, len = visibleWhitespaces.length; i < len; i++) { visibleZones[visibleWhitespaces[i].id.toString()] = visibleWhitespaces[i]; hasVisibleZone = true; } - var id:string, - zone:IMyViewZone; - - for (id in this._zones) { - if (this._zones.hasOwnProperty(id)) { - zone = this._zones[id]; - - if (visibleZones.hasOwnProperty(id)) { - // zone is visible - StyleMutator.setTop(zone.delegate.domNode, (visibleZones[id].verticalOffset - ctx.bigNumbersDelta)); - StyleMutator.setHeight(zone.delegate.domNode, visibleZones[id].height); - if (!zone.isVisible) { - StyleMutator.setDisplay(zone.delegate.domNode, 'block'); - zone.delegate.domNode.setAttribute('monaco-visible-view-zone', 'true'); - zone.isVisible = true; - } - this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(visibleZones[id].verticalOffset)); - } else { - if (zone.isVisible) { - StyleMutator.setDisplay(zone.delegate.domNode, 'none'); - zone.delegate.domNode.removeAttribute('monaco-visible-view-zone'); - zone.isVisible = false; - } - this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(-1000000)); + let keys = Object.keys(this._zones); + for (let i = 0, len = keys.length; i < len; i++) { + let id = keys[i]; + let zone = this._zones[id]; + + if (visibleZones.hasOwnProperty(id)) { + // zone is visible + StyleMutator.setTop(zone.delegate.domNode, (visibleZones[id].verticalOffset - ctx.bigNumbersDelta)); + StyleMutator.setHeight(zone.delegate.domNode, visibleZones[id].height); + if (!zone.isVisible) { + StyleMutator.setDisplay(zone.delegate.domNode, 'block'); + zone.delegate.domNode.setAttribute('monaco-visible-view-zone', 'true'); + zone.isVisible = true; + } + this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(visibleZones[id].verticalOffset)); + } else { + if (zone.isVisible) { + StyleMutator.setDisplay(zone.delegate.domNode, 'none'); + zone.delegate.domNode.removeAttribute('monaco-visible-view-zone'); + zone.isVisible = false; } + this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(-1000000)); } } diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index ccb722fbddc..9776c9f17b2 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -404,17 +404,16 @@ export class CodeEditorWidget extends CommonCodeEditor implements editorBrowser. this._view.renderOnce(() => { - var widgetId:string; - for (widgetId in this.contentWidgets) { - if (this.contentWidgets.hasOwnProperty(widgetId)) { - this._view.addContentWidget(this.contentWidgets[widgetId]); - } + let keys = Object.keys(this.contentWidgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + this._view.addContentWidget(this.contentWidgets[widgetId]); } - for (widgetId in this.overlayWidgets) { - if (this.overlayWidgets.hasOwnProperty(widgetId)) { - this._view.addOverlayWidget(this.overlayWidgets[widgetId]); - } + keys = Object.keys(this.overlayWidgets); + for (let i = 0, len = keys.length; i < len; i++) { + let widgetId = keys[i]; + this._view.addOverlayWidget(this.overlayWidgets[widgetId]); } this._view.render(false, true); diff --git a/src/vs/editor/common/commonCodeEditor.ts b/src/vs/editor/common/commonCodeEditor.ts index 6b5adb50899..852fd97e877 100644 --- a/src/vs/editor/common/commonCodeEditor.ts +++ b/src/vs/editor/common/commonCodeEditor.ts @@ -147,12 +147,12 @@ export abstract class CommonCodeEditor extends EventEmitter implements IActionPr this._codeEditorService.removeCodeEditor(this); this._lifetimeDispose = disposeAll(this._lifetimeDispose); - var contributionId:string; - for (contributionId in this.contributions) { - if (this.contributions.hasOwnProperty(contributionId)) { - this.contributions[contributionId].dispose(); - } + let keys = Object.keys(this.contributions); + for (let i = 0, len = keys.length; i < len; i++) { + let contributionId = keys[i]; + this.contributions[contributionId].dispose(); } + this.contributions = {}; this._postDetachModelCleanup(this._detachModel()); @@ -524,17 +524,18 @@ export abstract class CommonCodeEditor extends EventEmitter implements IActionPr } public getActions(): IAction[] { - var result: IAction[] = []; - var id: string; - for (id in this.contributions) { - if (this.contributions.hasOwnProperty(id)) { - var contribution = this.contributions[id]; - // contribution instanceof IAction - if (isAction(contribution)) { - result.push(contribution); - } + let result: IAction[] = []; + + let keys = Object.keys(this.contributions); + for (let i = 0, len = keys.length; i < len; i++) { + let id = keys[i]; + let contribution = this.contributions[id]; + // contribution instanceof IAction + if (isAction(contribution)) { + result.push(contribution); } } + return result; } diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index f30c75fb76a..d53d929d687 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -639,12 +639,12 @@ export abstract class CommonEditorConfiguration extends Disposable implements ed let changeEvent = InternalEditorOptionsHelper.createConfigurationChangedEvent(oldOpts, this.editor); let hasChanged = false; - for (let key in changeEvent) { - if (changeEvent.hasOwnProperty(key)) { - if (changeEvent[key]) { - hasChanged = true; - break; - } + let keys = Object.keys(changeEvent); + for (let i = 0, len = keys.length; i < len; i++) { + let key = keys[i]; + if (changeEvent[key]) { + hasChanged = true; + break; } } diff --git a/src/vs/editor/common/controller/cursor.ts b/src/vs/editor/common/controller/cursor.ts index a1cbac7a8a8..38252b52d05 100644 --- a/src/vs/editor/common/controller/cursor.ts +++ b/src/vs/editor/common/controller/cursor.ts @@ -921,8 +921,8 @@ export class Cursor extends EventEmitter { // ----- handlers beyond this point private _registerHandlers(): void { - var H = editorCommon.Handler; - var handlersMap:{ + let H = editorCommon.Handler; + let handlersMap:{ [key:string]:(ctx:IMultipleCursorOperationContext)=>boolean; } = {}; @@ -1041,15 +1041,14 @@ export class Cursor extends EventEmitter { handlersMap[H.ExecuteCommand] = (ctx:IMultipleCursorOperationContext) => this._externalExecuteCommand(ctx); handlersMap[H.ExecuteCommands] = (ctx:IMultipleCursorOperationContext) => this._externalExecuteCommands(ctx); - var createHandler = (handlerId:string, handlerExec:(ctx:IMultipleCursorOperationContext)=>boolean) => { + let createHandler = (handlerId:string, handlerExec:(ctx:IMultipleCursorOperationContext)=>boolean) => { return (e:editorCommon.IDispatcherEvent) => this._onHandler(handlerId, handlerExec, e); }; - var handler:string; - for (handler in handlersMap) { - if (handlersMap.hasOwnProperty(handler)) { - this.configuration.handlerDispatcher.setHandler(handler, createHandler(handler, handlersMap[handler])); - } + let keys = Object.keys(handlersMap); + for (let i = 0, len = keys.length; i < len; i++) { + let handler = keys[i]; + this.configuration.handlerDispatcher.setHandler(handler, createHandler(handler, handlersMap[handler])); } } diff --git a/src/vs/editor/common/model/textModelWithDecorations.ts b/src/vs/editor/common/model/textModelWithDecorations.ts index 8ed8c470cc0..c1c8950d67f 100644 --- a/src/vs/editor/common/model/textModelWithDecorations.ts +++ b/src/vs/editor/common/model/textModelWithDecorations.ts @@ -177,17 +177,15 @@ export class TextModelWithDecorations extends TextModelWithTrackedRanges impleme throw new Error('TextModelWithDecorations.removeAllDecorationsWithOwnerId: Model is disposed'); } - var decorationId:string; - var decoration:IInternalDecoration; - var toRemove:string[] = []; + let toRemove:string[] = []; - for (decorationId in this.decorations) { - if (this.decorations.hasOwnProperty(decorationId)) { - decoration = this.decorations[decorationId]; + let keys = Object.keys(this.decorations); + for (let i = 0, len = keys.length; i < len; i++) { + let decorationId = keys[i]; + let decoration = this.decorations[decorationId]; - if (decoration.ownerId === ownerId) { - toRemove.push(decoration.id); - } + if (decoration.ownerId === ownerId) { + toRemove.push(decoration.id); } } @@ -298,32 +296,31 @@ export class TextModelWithDecorations extends TextModelWithTrackedRanges impleme throw new Error('TextModelWithDecorations.getAllDecorations: Model is disposed'); } - var result:editorCommon.IModelDecoration[] = []; - var decorationId:string; - var decoration:IInternalDecoration; + let result:editorCommon.IModelDecoration[] = []; - for (decorationId in this.decorations) { - if (this.decorations.hasOwnProperty(decorationId)) { - decoration = this.decorations[decorationId]; + let keys = Object.keys(this.decorations); + for (let i = 0, len = keys.length; i < len; i++) { + let decorationId = keys[i]; + let decoration = this.decorations[decorationId]; - if (ownerId && decoration.ownerId && decoration.ownerId !== ownerId) { - continue; - } + if (ownerId && decoration.ownerId && decoration.ownerId !== ownerId) { + continue; + } - if (filterOutValidation) { - if (decoration.options.className === editorCommon.ClassName.EditorErrorDecoration || decoration.options.className === editorCommon.ClassName.EditorWarningDecoration) { - continue; - } + if (filterOutValidation) { + if (decoration.options.className === editorCommon.ClassName.EditorErrorDecoration || decoration.options.className === editorCommon.ClassName.EditorWarningDecoration) { + continue; } - - result.push({ - id: decoration.id, - ownerId: decoration.ownerId, - range: this.getTrackedRange(decoration.rangeId), - options: decoration.options - }); } + + result.push({ + id: decoration.id, + ownerId: decoration.ownerId, + range: this.getTrackedRange(decoration.rangeId), + options: decoration.options + }); } + return result; } @@ -370,12 +367,11 @@ export class TextModelWithDecorations extends TextModelWithTrackedRanges impleme } private _onChangedRanges(eventBuilder:DeferredEventsBuilder, changedRanges:editorCommon.IChangedTrackedRanges): void { - var rangeId:string; - var decorationId:string; - - for (rangeId in changedRanges) { - if (changedRanges.hasOwnProperty(rangeId) && this.rangeIdToDecorationId.hasOwnProperty(rangeId)) { - decorationId = this.rangeIdToDecorationId[rangeId]; + let keys = Object.keys(changedRanges); + for (let i = 0, len = keys.length; i < len; i++) { + let rangeId = keys[i]; + if (this.rangeIdToDecorationId.hasOwnProperty(rangeId)) { + let decorationId = this.rangeIdToDecorationId[rangeId]; eventBuilder.addMovedDecoration(decorationId, changedRanges[rangeId]); } @@ -383,34 +379,34 @@ export class TextModelWithDecorations extends TextModelWithTrackedRanges impleme } private _handleCollectedDecorationsEvents(b:DeferredEventsBuilder): void { - var decorationId:string, - addedOrChangedDecorations:editorCommon.IModelDecorationsChangedEventDecorationData[] = [], + var addedOrChangedDecorations:editorCommon.IModelDecorationsChangedEventDecorationData[] = [], removedDecorations:string[] = [], decorationIds:string[] = [], decorationData:editorCommon.IModelDecorationsChangedEventDecorationData, oldRange:editorCommon.IRange; - for (decorationId in b.newOrChangedDecorations) { - if (b.newOrChangedDecorations.hasOwnProperty(decorationId)) { - decorationIds.push(decorationId); - decorationData = this._getDecorationData(decorationId); - decorationData.isForValidation = (decorationData.options.className === editorCommon.ClassName.EditorErrorDecoration || decorationData.options.className === editorCommon.ClassName.EditorWarningDecoration); - addedOrChangedDecorations.push(decorationData); - if (b.oldDecorationRange.hasOwnProperty(decorationId)) { - oldRange = b.oldDecorationRange[decorationId]; - oldRange.startLineNumber = oldRange.startLineNumber || decorationData.range.startLineNumber; - oldRange.startColumn = oldRange.startColumn || decorationData.range.startColumn; - oldRange.endLineNumber = oldRange.endLineNumber || decorationData.range.endLineNumber; - oldRange.endColumn = oldRange.endColumn || decorationData.range.endColumn; - } + let keys = Object.keys(b.newOrChangedDecorations); + for (let i = 0, len = keys.length; i < len; i++) { + let decorationId = keys[i]; + + decorationIds.push(decorationId); + decorationData = this._getDecorationData(decorationId); + decorationData.isForValidation = (decorationData.options.className === editorCommon.ClassName.EditorErrorDecoration || decorationData.options.className === editorCommon.ClassName.EditorWarningDecoration); + addedOrChangedDecorations.push(decorationData); + if (b.oldDecorationRange.hasOwnProperty(decorationId)) { + oldRange = b.oldDecorationRange[decorationId]; + oldRange.startLineNumber = oldRange.startLineNumber || decorationData.range.startLineNumber; + oldRange.startColumn = oldRange.startColumn || decorationData.range.startColumn; + oldRange.endLineNumber = oldRange.endLineNumber || decorationData.range.endLineNumber; + oldRange.endColumn = oldRange.endColumn || decorationData.range.endColumn; } } - for (decorationId in b.removedDecorations) { - if (b.removedDecorations.hasOwnProperty(decorationId)) { - decorationIds.push(decorationId); - removedDecorations.push(decorationId); - } + keys = Object.keys(b.removedDecorations); + for (let i = 0, len = keys.length; i < len; i++) { + let decorationId = keys[i]; + decorationIds.push(decorationId); + removedDecorations.push(decorationId); } if (decorationIds.length > 0) { diff --git a/src/vs/editor/common/model/textModelWithMarkers.ts b/src/vs/editor/common/model/textModelWithMarkers.ts index 9855ae1b37e..21ff6056aac 100644 --- a/src/vs/editor/common/model/textModelWithMarkers.ts +++ b/src/vs/editor/common/model/textModelWithMarkers.ts @@ -223,11 +223,11 @@ export class TextModelWithMarkers extends TextModelWithTokens implements ITextMo throw new Error('TextModelWithMarkers._getMarkersInMap: Model is disposed'); } - var result: ILineMarker[] = [], - markerId: string; - - for (markerId in markersMap) { - if (markersMap.hasOwnProperty(markerId) && this._markerIdToMarker.hasOwnProperty(markerId)) { + let result: ILineMarker[] = []; + let keys = Object.keys(markersMap); + for (let i = 0, len = keys.length; i < len; i++) { + let markerId = keys[i]; + if (this._markerIdToMarker.hasOwnProperty(markerId)) { result.push(this._markerIdToMarker[markerId]); } } diff --git a/src/vs/editor/common/model/textModelWithTrackedRanges.ts b/src/vs/editor/common/model/textModelWithTrackedRanges.ts index b1bee1fc609..de46767d928 100644 --- a/src/vs/editor/common/model/textModelWithTrackedRanges.ts +++ b/src/vs/editor/common/model/textModelWithTrackedRanges.ts @@ -299,31 +299,27 @@ export class TextModelWithTrackedRanges extends TextModelWithMarkers implements * Fetch only multi-line ranges that intersect with the given line number range */ private _getMultiLineTrackedRanges(filterStartLineNumber: number, filterEndLineNumber: number): editorCommon.IModelTrackedRange[] { - var result: editorCommon.IModelTrackedRange[] = [], - rangeId: string, - range: ITrackedRange, - startMarker: editorCommon.IEditorPosition, - endMarker: editorCommon.IEditorPosition; + let result: editorCommon.IModelTrackedRange[] = []; - for (rangeId in this._multiLineTrackedRanges) { - if (this._multiLineTrackedRanges.hasOwnProperty(rangeId)) { - range = this._ranges[rangeId]; - - startMarker = this._getMarker(range.startMarkerId); - if (startMarker.lineNumber > filterEndLineNumber) { - continue; - } + let keys = Object.keys(this._multiLineTrackedRanges); + for (let i = 0, len = keys.length; i < len; i++) { + let rangeId = keys[i]; + let range = this._ranges[rangeId]; - endMarker = this._getMarker(range.endMarkerId); - if (endMarker.lineNumber < filterStartLineNumber) { - continue; - } + let startMarker = this._getMarker(range.startMarkerId); + if (startMarker.lineNumber > filterEndLineNumber) { + continue; + } - result.push({ - id: range.id, - range: this._newEditorRange(startMarker, endMarker) - }); + let endMarker = this._getMarker(range.endMarkerId); + if (endMarker.lineNumber < filterStartLineNumber) { + continue; } + + result.push({ + id: range.id, + range: this._newEditorRange(startMarker, endMarker) + }); } return result; diff --git a/src/vs/editor/common/services/languagesRegistry.ts b/src/vs/editor/common/services/languagesRegistry.ts index c8db69c848a..14a06e8013d 100644 --- a/src/vs/editor/common/services/languagesRegistry.ts +++ b/src/vs/editor/common/services/languagesRegistry.ts @@ -200,12 +200,12 @@ export class LanguagesRegistry { } public getMimeForMode(theModeId: string): string { - for (var _mime in this.mime2LanguageId) { - if (this.mime2LanguageId.hasOwnProperty(_mime)) { - var modeId = this.mime2LanguageId[_mime]; - if (modeId === theModeId) { - return _mime; - } + let keys = Object.keys(this.mime2LanguageId); + for (let i = 0, len = keys.length; i < len; i++) { + let _mime = keys[i]; + let modeId = this.mime2LanguageId[_mime]; + if (modeId === theModeId) { + return _mime; } } diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index 90b877aa5e1..2eb9de5cc83 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -309,18 +309,18 @@ export class ModelServiceImpl implements IModelService { this._modelCreationOptions = newOpts; // Update options on all models - for (let modelId in this._models) { - if (this._models.hasOwnProperty(modelId)) { - let modelData = this._models[modelId]; + let keys = Object.keys(this._models); + for (let i = 0, len = keys.length; i < len; i++) { + let modelId = keys[i]; + let modelData = this._models[modelId]; - if (this._modelCreationOptions.detectIndentation) { - modelData.model.detectIndentation(this._modelCreationOptions.insertSpaces, this._modelCreationOptions.tabSize); - } else { - modelData.model.updateOptions({ - insertSpaces: this._modelCreationOptions.insertSpaces, - tabSize: this._modelCreationOptions.tabSize - }); - } + if (this._modelCreationOptions.detectIndentation) { + modelData.model.detectIndentation(this._modelCreationOptions.insertSpaces, this._modelCreationOptions.tabSize); + } else { + modelData.model.updateOptions({ + insertSpaces: this._modelCreationOptions.insertSpaces, + tabSize: this._modelCreationOptions.tabSize + }); } } } @@ -398,11 +398,13 @@ export class ModelServiceImpl implements IModelService { public getModels(): editorCommon.IModel[] { let ret: editorCommon.IModel[] = []; - for (let modelId in this._models) { - if (this._models.hasOwnProperty(modelId)) { - ret.push(this._models[modelId].model); - } + + let keys = Object.keys(this._models); + for (let i = 0, len = keys.length; i < len; i++) { + let modelId = keys[i]; + ret.push(this._models[modelId].model); } + return ret; } diff --git a/src/vs/editor/common/viewLayout/whitespaceComputer.ts b/src/vs/editor/common/viewLayout/whitespaceComputer.ts index 33c005ad608..30fb0f9e9d4 100644 --- a/src/vs/editor/common/viewLayout/whitespaceComputer.ts +++ b/src/vs/editor/common/viewLayout/whitespaceComputer.ts @@ -117,15 +117,12 @@ export class WhitespaceComputer { this.ordinals.splice(insertIndex, 0, ordinal); this.prefixSum.splice(insertIndex, 0, 0); - var sid:string, - oldIndex:number; - - for (sid in this.whitespaceId2Index) { - if (this.whitespaceId2Index.hasOwnProperty(sid)) { - oldIndex = this.whitespaceId2Index[sid]; - if (oldIndex >= insertIndex) { - this.whitespaceId2Index[sid] = oldIndex + 1; - } + let keys = Object.keys(this.whitespaceId2Index); + for (let i = 0, len = keys.length; i < len; i++) { + let sid = keys[i]; + let oldIndex = this.whitespaceId2Index[sid]; + if (oldIndex >= insertIndex) { + this.whitespaceId2Index[sid] = oldIndex + 1; } } @@ -220,15 +217,12 @@ export class WhitespaceComputer { this.prefixSum.splice(removeIndex, 1); this.prefixSumValidIndex = Math.min(this.prefixSumValidIndex, removeIndex - 1); - var sid:string, - oldIndex:number; - - for (sid in this.whitespaceId2Index) { - if (this.whitespaceId2Index.hasOwnProperty(sid)) { - oldIndex = this.whitespaceId2Index[sid]; - if (oldIndex >= removeIndex) { - this.whitespaceId2Index[sid] = oldIndex - 1; - } + let keys = Object.keys(this.whitespaceId2Index); + for (let i = 0, len = keys.length; i < len; i++) { + let sid = keys[i]; + let oldIndex = this.whitespaceId2Index[sid]; + if (oldIndex >= removeIndex) { + this.whitespaceId2Index[sid] = oldIndex - 1; } } } diff --git a/src/vs/editor/common/viewModel/viewModelDecorations.ts b/src/vs/editor/common/viewModel/viewModelDecorations.ts index c58231a2072..e1ce18be1eb 100644 --- a/src/vs/editor/common/viewModel/viewModelDecorations.ts +++ b/src/vs/editor/common/viewModel/viewModelDecorations.ts @@ -156,9 +156,10 @@ export class ViewModelDecorations implements IDisposable { } // Interpret new decorations - var id:string; - for (id in addedOrChangedMap) { - if (!usedMap.hasOwnProperty(id) && addedOrChangedMap.hasOwnProperty(id)) { + let keys = Object.keys(addedOrChangedMap); + for (let i = 0, len = keys.length; i < len; i++) { + let id = keys[i]; + if (!usedMap.hasOwnProperty(id)) { theirDecoration = addedOrChangedMap[id]; myDecoration = new ViewModelDecoration(theirDecoration, this.converter.convertModelRangeToViewRange(theirDecoration.range, theirDecoration.options.isWholeLine)); diff --git a/src/vs/editor/contrib/links/browser/links.ts b/src/vs/editor/contrib/links/browser/links.ts index 46c77d09c16..5a28715c3d9 100644 --- a/src/vs/editor/contrib/links/browser/links.ts +++ b/src/vs/editor/contrib/links/browser/links.ts @@ -230,11 +230,11 @@ class LinkDetector { private updateDecorations(links:ILink[]):void { this.editor.changeDecorations((changeAccessor:editorCommon.IModelDecorationsChangeAccessor) => { var oldDecorations:string[] = []; - for (var decorationId in this.currentOccurences) { - if (this.currentOccurences.hasOwnProperty(decorationId)) { - var occurance = this.currentOccurences[decorationId]; - oldDecorations.push(occurance.decorationId); - } + let keys = Object.keys(this.currentOccurences); + for (let i = 0, len = keys.length; i < len; i++) { + let decorationId = keys[i]; + let occurance = this.currentOccurences[decorationId]; + oldDecorations.push(occurance.decorationId); } var newDecorations:editorCommon.IModelDeltaDecoration[] = []; diff --git a/src/vs/editor/contrib/quickOpen/common/quickOpen.ts b/src/vs/editor/contrib/quickOpen/common/quickOpen.ts index 0aa1775af67..888331213f6 100644 --- a/src/vs/editor/contrib/quickOpen/common/quickOpen.ts +++ b/src/vs/editor/contrib/quickOpen/common/quickOpen.ts @@ -36,10 +36,10 @@ export function getOutlineEntries(model: IModel): TPromise { let promises = OutlineRegistry.all(model).map(support => { if (support.outlineGroupLabel) { - for (var key in support.outlineGroupLabel) { - if (Object.prototype.hasOwnProperty.call(support.outlineGroupLabel, key)) { - groupLabels[key] = support.outlineGroupLabel[key]; - } + let keys = Object.keys(support.outlineGroupLabel); + for (let i = 0, len = keys.length; i < len; i++) { + let key = keys[i]; + groupLabels[key] = support.outlineGroupLabel[key]; } } -- GitLab