diff --git a/src/vs/editor/browser/editorExtensions.ts b/src/vs/editor/browser/editorExtensions.ts index d5645730c37..2676bb009b2 100644 --- a/src/vs/editor/browser/editorExtensions.ts +++ b/src/vs/editor/browser/editorExtensions.ts @@ -487,7 +487,7 @@ export namespace EditorExtensionsRegistry { return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId); } - export function getEditorActions(): EditorAction[] { + export function getEditorActions(): Iterable { return EditorContributionRegistry.INSTANCE.getEditorActions(); } @@ -546,8 +546,8 @@ class EditorContributionRegistry { this.editorActions.push(action); } - public getEditorActions(): EditorAction[] { - return this.editorActions.slice(0); + public getEditorActions(): Iterable { + return this.editorActions; } public registerEditorCommand(editorCommand: EditorCommand) { diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index 403b5e61c2f..2872e6be0f0 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -343,10 +343,10 @@ export class CodeEditorWidget extends Disposable implements editorBrowser.ICodeE } } - EditorExtensionsRegistry.getEditorActions().forEach((action) => { + for (const action of EditorExtensionsRegistry.getEditorActions()) { if (this._actions[action.id]) { onUnexpectedError(new Error(`Cannot have two actions with the same id ${action.id}`)); - return; + continue; } const internalAction = new InternalEditorAction( action.id, @@ -361,7 +361,7 @@ export class CodeEditorWidget extends Disposable implements editorBrowser.ICodeE this._contextKeyService ); this._actions[internalAction.id] = internalAction; - }); + } const isDropIntoEnabled = () => { return !this._configuration.options.get(EditorOption.readOnly) diff --git a/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.ts b/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.ts index c4ec1bbf5e3..c94bdc405fa 100644 --- a/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.ts +++ b/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.ts @@ -76,7 +76,7 @@ export class SimpleCommentEditor extends CodeEditorWidget { return this._parentThread; } - protected _getActions(): EditorAction[] { + protected _getActions(): Iterable { return EditorExtensionsRegistry.getEditorActions(); } diff --git a/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.ts b/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.ts index 6d4006e97ba..af9124ee5a0 100644 --- a/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.ts +++ b/src/vs/workbench/contrib/mergeEditor/browser/view/editors/resultCodeEditorView.ts @@ -7,6 +7,7 @@ import { reset } from 'vs/base/browser/dom'; import { renderLabelWithIcons } from 'vs/base/browser/ui/iconLabel/iconLabels'; import { CompareResult } from 'vs/base/common/arrays'; import { BugIndicatingError } from 'vs/base/common/errors'; +import { Iterable } from 'vs/base/common/iterator'; import { toDisposable } from 'vs/base/common/lifecycle'; import { autorun, autorunWithStore, derived, IObservable } from 'vs/base/common/observable'; import { IEditorContributionDescription, EditorExtensionsRegistry } from 'vs/editor/browser/editorExtensions'; @@ -205,7 +206,7 @@ export class ResultCodeEditorView extends CodeEditorView { return result; }); - protected override getEditorContributions(): IEditorContributionDescription[] | undefined { - return Array.from(EditorExtensionsRegistry.getEditorContributions()).filter(c => c.id !== CodeLensContribution.ID); + protected override getEditorContributions(): Iterable | undefined { + return Iterable.filter(EditorExtensionsRegistry.getEditorContributions(), c => c.id !== CodeLensContribution.ID); } } diff --git a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts index c6312374488..1b9edd9c0d4 100644 --- a/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts +++ b/src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts @@ -519,7 +519,9 @@ export class KeybindingsEditor extends EditorPane implements IKeybindingsEditorP private getActionsLabels(): Map { const actionsLabels: Map = new Map(); - EditorExtensionsRegistry.getEditorActions().forEach(editorAction => actionsLabels.set(editorAction.id, editorAction.label)); + for (const editorAction of EditorExtensionsRegistry.getEditorActions()) { + actionsLabels.set(editorAction.id, editorAction.label); + } for (const menuItem of MenuRegistry.getMenuItems(MenuId.CommandPalette)) { if (isIMenuItem(menuItem)) { const title = typeof menuItem.command.title === 'string' ? menuItem.command.title : menuItem.command.title.value;