From ac263d212901cc010f13f4591d6782bb7bf82d06 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 1 Sep 2016 12:40:55 +0200 Subject: [PATCH] Introduce and adopt @editorBrowserContribution --- src/vs/editor/browser/editorBrowserExtensions.ts | 13 ++++++++----- .../contrib/accessibility/browser/accessibility.ts | 5 ++--- src/vs/editor/contrib/codelens/browser/codelens.ts | 5 ++--- .../contrib/contextmenu/browser/contextmenu.ts | 5 ++--- .../defineKeybinding/browser/defineKeybinding.ts | 5 ++--- src/vs/editor/contrib/find/browser/find.ts | 8 +++----- src/vs/editor/contrib/find/common/findController.ts | 3 ++- src/vs/editor/contrib/folding/browser/folding.ts | 5 ++--- .../goToDeclaration/browser/goToDeclaration.ts | 5 ++--- .../editor/contrib/gotoError/browser/gotoError.ts | 5 ++--- src/vs/editor/contrib/hover/browser/hover.ts | 5 ++--- .../iPadShowKeyboard/browser/iPadShowKeyboard.ts | 5 ++--- src/vs/editor/contrib/links/browser/links.ts | 5 ++--- .../contrib/multicursor/browser/menuPreventer.ts | 5 ++--- .../parameterHints/browser/parameterHints.ts | 5 ++--- src/vs/editor/contrib/quickFix/browser/quickFix.ts | 5 ++--- .../contrib/quickOpen/browser/editorQuickOpen.ts | 5 ++--- .../referenceSearch/browser/referencesController.ts | 6 ++---- src/vs/editor/contrib/rename/browser/rename.ts | 5 ++--- .../electron-browser/selectionClipboard.ts | 5 ++--- .../contrib/suggest/browser/suggestController.ts | 5 ++--- .../debug/electron-browser/debug.contribution.ts | 5 +---- .../electron-browser/debugEditorContribution.ts | 2 ++ .../parts/git/browser/gitEditorContributions.ts | 2 ++ .../parts/git/browser/gitWorkbenchContributions.ts | 6 +----- 25 files changed, 55 insertions(+), 75 deletions(-) diff --git a/src/vs/editor/browser/editorBrowserExtensions.ts b/src/vs/editor/browser/editorBrowserExtensions.ts index b4df735ec27..68e4f566adb 100644 --- a/src/vs/editor/browser/editorBrowserExtensions.ts +++ b/src/vs/editor/browser/editorBrowserExtensions.ts @@ -9,13 +9,14 @@ import {Registry} from 'vs/platform/platform'; import {IEditorContribution} from 'vs/editor/common/editorCommon'; import {ICodeEditor, IEditorContributionDescriptor, ISimpleEditorContributionCtor} from 'vs/editor/browser/editorBrowser'; +export function editorBrowserContribution(ctor:ISimpleEditorContributionCtor): void { + EditorContributionRegistry.INSTANCE.registerEditorBrowserContribution(ctor); +} + export namespace EditorBrowserRegistry { // --- Editor Contributions - export function registerEditorContribution(ctor:ISimpleEditorContributionCtor): void { - (Registry.as(Extensions.EditorContributions)).registerEditorBrowserContribution(ctor); - } export function getEditorContributions(): IEditorContributionDescriptor[] { - return (Registry.as(Extensions.EditorContributions)).getEditorBrowserContributions(); + return EditorContributionRegistry.INSTANCE.getEditorBrowserContributions(); } } @@ -39,6 +40,8 @@ var Extensions = { class EditorContributionRegistry { + public static INSTANCE = new EditorContributionRegistry(); + private editorContributions: IEditorContributionDescriptor[]; constructor() { @@ -54,4 +57,4 @@ class EditorContributionRegistry { } } -Registry.add(Extensions.EditorContributions, new EditorContributionRegistry()); +Registry.add(Extensions.EditorContributions, EditorContributionRegistry.INSTANCE); diff --git a/src/vs/editor/contrib/accessibility/browser/accessibility.ts b/src/vs/editor/contrib/accessibility/browser/accessibility.ts index d7204efb6cb..aea329cf478 100644 --- a/src/vs/editor/contrib/accessibility/browser/accessibility.ts +++ b/src/vs/editor/contrib/accessibility/browser/accessibility.ts @@ -22,12 +22,13 @@ import {GlobalScreenReaderNVDA} from 'vs/editor/common/config/commonEditorConfig import {ICommonCodeEditor, IEditorContribution, EditorContextKeys} from 'vs/editor/common/editorCommon'; import {editorAction, CommonEditorRegistry, EditorAction, EditorCommand, Command} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor, IOverlayWidget, IOverlayWidgetPosition} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {ToggleTabFocusModeAction} from 'vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode'; const CONTEXT_ACCESSIBILITY_WIDGET_VISIBLE = new RawContextKey('accessibilityHelpWidgetVisible', false); const TOGGLE_EXPERIMENTAL_SCREEN_READER_SUPPORT_COMMAND_ID = 'toggleExperimentalScreenReaderSupport'; +@editorBrowserContribution class AccessibilityHelpController extends Disposable implements IEditorContribution { private static ID = 'editor.contrib.accessibilityHelpController'; @@ -216,8 +217,6 @@ class ShowAccessibilityHelpAction extends EditorAction { } } -EditorBrowserRegistry.registerEditorContribution(AccessibilityHelpController); - const AccessibilityHelpCommand = EditorCommand.bindToContribution(AccessibilityHelpController.get); CommonEditorRegistry.registerEditorCommand(new AccessibilityHelpCommand({ diff --git a/src/vs/editor/contrib/codelens/browser/codelens.ts b/src/vs/editor/contrib/codelens/browser/codelens.ts index 4f01cea8943..001ededc0c6 100644 --- a/src/vs/editor/contrib/codelens/browser/codelens.ts +++ b/src/vs/editor/contrib/codelens/browser/codelens.ts @@ -20,7 +20,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon'; import {CodeLensProviderRegistry, ICodeLensSymbol, Command} from 'vs/editor/common/modes'; import {IModelService} from 'vs/editor/common/services/modelService'; import * as editorBrowser from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {ICodeLensData, getCodeLensData} from '../common/codelens'; @@ -339,6 +339,7 @@ class CodeLens { } } +@editorBrowserContribution export class CodeLensContribution implements editorCommon.IEditorContribution { private static ID: string = 'css.editor.codeLens'; @@ -626,5 +627,3 @@ export class CodeLensContribution implements editorCommon.IEditorContribution { }); } } - -EditorBrowserRegistry.registerEditorContribution(CodeLensContribution); diff --git a/src/vs/editor/contrib/contextmenu/browser/contextmenu.ts b/src/vs/editor/contrib/contextmenu/browser/contextmenu.ts index e32cb1b6cb1..74dc57dd060 100644 --- a/src/vs/editor/contrib/contextmenu/browser/contextmenu.ts +++ b/src/vs/editor/contrib/contextmenu/browser/contextmenu.ts @@ -19,13 +19,14 @@ import {IMenuService, IMenu, MenuId} from 'vs/platform/actions/common/actions'; import {ICommonCodeEditor, IEditorContribution, MouseTargetType, EditorContextKeys, IScrollEvent} from 'vs/editor/common/editorCommon'; import {editorAction, ServicesAccessor, EditorAction} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor, IEditorMouseEvent} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; interface IPosition { x: number; y: number; } +@editorBrowserContribution class ContextMenuController implements IEditorContribution { private static ID = 'editor.contrib.contextmenu'; @@ -241,5 +242,3 @@ class ShowContextMenu extends EditorAction { contribution.showContextMenu(); } } - -EditorBrowserRegistry.registerEditorContribution(ContextMenuController); diff --git a/src/vs/editor/contrib/defineKeybinding/browser/defineKeybinding.ts b/src/vs/editor/contrib/defineKeybinding/browser/defineKeybinding.ts index 54868e0fefd..792215afcfb 100644 --- a/src/vs/editor/contrib/defineKeybinding/browser/defineKeybinding.ts +++ b/src/vs/editor/contrib/defineKeybinding/browser/defineKeybinding.ts @@ -22,7 +22,7 @@ import {Range} from 'vs/editor/common/core/range'; import * as editorCommon from 'vs/editor/common/editorCommon'; import {editorAction, ServicesAccessor, EditorAction} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {CodeSnippet} from 'vs/editor/contrib/snippet/common/snippet'; import {SnippetController} from 'vs/editor/contrib/snippet/common/snippetController'; import {SmartSnippetInserter} from 'vs/editor/contrib/defineKeybinding/common/smartSnippetInserter'; @@ -36,6 +36,7 @@ const NLS_KB_LAYOUT_ERROR_MESSAGE = nls.localize('defineKeybinding.kbLayoutError const INTERESTING_FILE = /keybindings\.json$/; +@editorBrowserContribution export class DefineKeybindingController implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.defineKeybinding'; @@ -486,5 +487,3 @@ function isInterestingEditorModel(editor:editorCommon.ICommonCodeEditor): boolea let url = model.uri.toString(); return INTERESTING_FILE.test(url); } - -EditorBrowserRegistry.registerEditorContribution(DefineKeybindingController); diff --git a/src/vs/editor/contrib/find/browser/find.ts b/src/vs/editor/contrib/find/browser/find.ts index 9ec31b782b7..406f5603146 100644 --- a/src/vs/editor/contrib/find/browser/find.ts +++ b/src/vs/editor/contrib/find/browser/find.ts @@ -8,10 +8,11 @@ import {IContextViewService} from 'vs/platform/contextview/browser/contextView'; import {IKeybindingService} from 'vs/platform/keybinding/common/keybinding'; import {IContextKeyService} from 'vs/platform/contextkey/common/contextkey'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {FindWidget, IFindController} from 'vs/editor/contrib/find/browser/findWidget'; -import {CommonFindController, FindStartFocusAction, IFindStartOptions, SelectionHighlighter} from 'vs/editor/contrib/find/common/findController'; +import {CommonFindController, FindStartFocusAction, IFindStartOptions} from 'vs/editor/contrib/find/common/findController'; +@editorBrowserContribution class FindController extends CommonFindController implements IFindController { private _widget: FindWidget; @@ -37,6 +38,3 @@ class FindController extends CommonFindController implements IFindController { } } } - -EditorBrowserRegistry.registerEditorContribution(FindController); -EditorBrowserRegistry.registerEditorContribution(SelectionHighlighter); diff --git a/src/vs/editor/contrib/find/common/findController.ts b/src/vs/editor/contrib/find/common/findController.ts index 39cb266c1c2..ac50edc6fbb 100644 --- a/src/vs/editor/contrib/find/common/findController.ts +++ b/src/vs/editor/contrib/find/common/findController.ts @@ -12,7 +12,7 @@ import {Range} from 'vs/editor/common/core/range'; import {Selection} from 'vs/editor/common/core/selection'; import * as strings from 'vs/base/common/strings'; import * as editorCommon from 'vs/editor/common/editorCommon'; -import {editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; +import {editorAction, commonEditorContribution, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; import {FIND_IDS, FindModelBoundToEditorModel} from 'vs/editor/contrib/find/common/findModel'; import {FindReplaceState, FindReplaceStateChangedEvent, INewFindReplaceState} from 'vs/editor/contrib/find/common/findState'; import {DocumentHighlightProviderRegistry} from 'vs/editor/common/modes'; @@ -694,6 +694,7 @@ export class CompatChangeAll extends AbstractSelectHighlightsAction { } } +@commonEditorContribution export class SelectionHighlighter extends Disposable implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.selectionHighlighter'; diff --git a/src/vs/editor/contrib/folding/browser/folding.ts b/src/vs/editor/contrib/folding/browser/folding.ts index 671112fa129..6df223aa4ed 100644 --- a/src/vs/editor/contrib/folding/browser/folding.ts +++ b/src/vs/editor/contrib/folding/browser/folding.ts @@ -16,13 +16,14 @@ import * as editorCommon from 'vs/editor/common/editorCommon'; import {Range} from 'vs/editor/common/core/range'; import {editorAction, ServicesAccessor, EditorAction, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor, IEditorMouseEvent} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {CollapsibleRegion, getCollapsibleRegionsToFoldAtLine, getCollapsibleRegionsToUnfoldAtLine, doesLineBelongsToCollapsibleRegion, IFoldingRange} from 'vs/editor/contrib/folding/common/foldingModel'; import {computeRanges, limitByIndent} from 'vs/editor/contrib/folding/common/indentFoldStrategy'; import {Selection} from 'vs/editor/common/core/selection'; import EditorContextKeys = editorCommon.EditorContextKeys; +@editorBrowserContribution export class FoldingController implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.folding'; @@ -706,8 +707,6 @@ class FoldLevelAction extends FoldingAction { } } -EditorBrowserRegistry.registerEditorContribution(FoldingController); - CommonEditorRegistry.registerEditorAction( new FoldLevelAction({ id: FoldLevelAction.ID(1), diff --git a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts index 895923a27a6..01af5ba4bf9 100644 --- a/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts +++ b/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.ts @@ -24,7 +24,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon'; import {editorAction, IActionOptions, ServicesAccessor, EditorAction} from 'vs/editor/common/editorCommonExtensions'; import {Location, DefinitionProviderRegistry} from 'vs/editor/common/modes'; import {ICodeEditor, IEditorMouseEvent, IMouseTarget} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {getDeclarationsAtPosition} from 'vs/editor/contrib/goToDeclaration/common/goToDeclaration'; import {ReferencesController} from 'vs/editor/contrib/referenceSearch/browser/referencesController'; import {ReferencesModel} from 'vs/editor/contrib/referenceSearch/browser/referencesModel'; @@ -211,6 +211,7 @@ export class PeekDefinitionAction extends DefinitionAction { // --- Editor Contribution to goto definition using the mouse and a modifier key +@editorBrowserContribution class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.gotodefinitionwithmouse'; @@ -487,5 +488,3 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC this.toUnhook = dispose(this.toUnhook); } } - -EditorBrowserRegistry.registerEditorContribution(GotoDefinitionWithMouseEditorContribution); diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.ts b/src/vs/editor/contrib/gotoError/browser/gotoError.ts index e016f6ce7fd..c424a1865f8 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.ts @@ -25,7 +25,7 @@ import {Range} from 'vs/editor/common/core/range'; import * as editorCommon from 'vs/editor/common/editorCommon'; import {editorAction, ServicesAccessor, IActionOptions, EditorAction, EditorCommand, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {ZoneWidget} from 'vs/editor/contrib/zoneWidget/browser/zoneWidget'; import {getCodeActions, IQuickFix2} from 'vs/editor/contrib/quickFix/common/quickFix'; @@ -446,6 +446,7 @@ class MarkerNavigationAction extends EditorAction { } } +@editorBrowserContribution class MarkerController implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.markerController'; @@ -572,5 +573,3 @@ CommonEditorRegistry.registerEditorCommand(new MarkerCommand({ secondary: [KeyMod.Shift | KeyCode.Escape] } })); - -EditorBrowserRegistry.registerEditorContribution(MarkerController); \ No newline at end of file diff --git a/src/vs/editor/contrib/hover/browser/hover.ts b/src/vs/editor/contrib/hover/browser/hover.ts index f4ca8b9a3ef..6e46dea178c 100644 --- a/src/vs/editor/contrib/hover/browser/hover.ts +++ b/src/vs/editor/contrib/hover/browser/hover.ts @@ -16,13 +16,14 @@ import {Range} from 'vs/editor/common/core/range'; import * as editorCommon from 'vs/editor/common/editorCommon'; import {editorAction, ServicesAccessor, EditorAction} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor, IEditorMouseEvent} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {ModesContentHoverWidget} from './modesContentHover'; import {ModesGlyphHoverWidget} from './modesGlyphHover'; import {IDisposable, dispose} from 'vs/base/common/lifecycle'; import EditorContextKeys = editorCommon.EditorContextKeys; +@editorBrowserContribution class ModesHoverController implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.hover'; @@ -165,5 +166,3 @@ class ShowHoverAction extends EditorAction { ModesHoverController.get(editor).showContentHover(range, true); } } - -EditorBrowserRegistry.registerEditorContribution(ModesHoverController); diff --git a/src/vs/editor/contrib/iPadShowKeyboard/browser/iPadShowKeyboard.ts b/src/vs/editor/contrib/iPadShowKeyboard/browser/iPadShowKeyboard.ts index 4aa2689f3fa..f10bfd28f36 100644 --- a/src/vs/editor/contrib/iPadShowKeyboard/browser/iPadShowKeyboard.ts +++ b/src/vs/editor/contrib/iPadShowKeyboard/browser/iPadShowKeyboard.ts @@ -11,8 +11,9 @@ import * as browser from 'vs/base/browser/browser'; import * as dom from 'vs/base/browser/dom'; import {IEditorContribution} from 'vs/editor/common/editorCommon'; import {ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; +@editorBrowserContribution export class IPadShowKeyboard implements IEditorContribution { private static ID = 'editor.contrib.iPadShowKeyboard'; @@ -105,5 +106,3 @@ class ShowKeyboardWidget implements IOverlayWidget { }; } } - -EditorBrowserRegistry.registerEditorContribution(IPadShowKeyboard); \ No newline at end of file diff --git a/src/vs/editor/contrib/links/browser/links.ts b/src/vs/editor/contrib/links/browser/links.ts index 4f02b2ee51c..841ff6b6819 100644 --- a/src/vs/editor/contrib/links/browser/links.ts +++ b/src/vs/editor/contrib/links/browser/links.ts @@ -22,7 +22,7 @@ import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerServic import {IEditorMouseEvent, ICodeEditor} from 'vs/editor/browser/editorBrowser'; import {getLinks, Link} from 'vs/editor/contrib/links/common/links'; import {IDisposable, dispose} from 'vs/base/common/lifecycle'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; class LinkOccurence { @@ -71,6 +71,7 @@ class LinkOccurence { } } +@editorBrowserContribution class LinkDetector implements editorCommon.IEditorContribution { private static ID: string = 'editor.linkDetector'; @@ -336,5 +337,3 @@ class OpenLinkAction extends EditorAction { } } } - -EditorBrowserRegistry.registerEditorContribution(LinkDetector); diff --git a/src/vs/editor/contrib/multicursor/browser/menuPreventer.ts b/src/vs/editor/contrib/multicursor/browser/menuPreventer.ts index 1deb1d191f6..6265095b07d 100644 --- a/src/vs/editor/contrib/multicursor/browser/menuPreventer.ts +++ b/src/vs/editor/contrib/multicursor/browser/menuPreventer.ts @@ -8,11 +8,12 @@ import {KeyMod} from 'vs/base/common/keyCodes'; import {Disposable} from 'vs/base/common/lifecycle'; import {IEditorContribution} from 'vs/editor/common/editorCommon'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; /** * Prevents the top-level menu from showing up when doing Alt + Click in the editor */ +@editorBrowserContribution export class MenuPreventer extends Disposable implements IEditorContribution { private static ID = 'editor.contrib.menuPreventer'; @@ -61,5 +62,3 @@ export class MenuPreventer extends Disposable implements IEditorContribution { return MenuPreventer.ID; } } - -EditorBrowserRegistry.registerEditorContribution(MenuPreventer); diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHints.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHints.ts index b874446ef5c..9486b38db67 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHints.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHints.ts @@ -12,10 +12,11 @@ import { ICommonCodeEditor, IEditorContribution, EditorContextKeys, ModeContextK import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; -import { EditorBrowserRegistry } from 'vs/editor/browser/editorBrowserExtensions'; +import { editorBrowserContribution } from 'vs/editor/browser/editorBrowserExtensions'; import { ParameterHintsWidget } from './parameterHintsWidget'; import { Context } from '../common/parameterHints'; +@editorBrowserContribution class ParameterHintsController implements IEditorContribution { private static ID = 'editor.controller.parameterHints'; @@ -82,8 +83,6 @@ const weight = CommonEditorRegistry.commandWeight(75); const ParameterHintsCommand = EditorCommand.bindToContribution(ParameterHintsController.get); -EditorBrowserRegistry.registerEditorContribution(ParameterHintsController); - CommonEditorRegistry.registerEditorCommand(new ParameterHintsCommand({ id: 'closeParameterHints', precondition: Context.Visible, diff --git a/src/vs/editor/contrib/quickFix/browser/quickFix.ts b/src/vs/editor/contrib/quickFix/browser/quickFix.ts index 62d0f0ea888..e46f8f491af 100644 --- a/src/vs/editor/contrib/quickFix/browser/quickFix.ts +++ b/src/vs/editor/contrib/quickFix/browser/quickFix.ts @@ -16,11 +16,12 @@ import {ITelemetryService} from 'vs/platform/telemetry/common/telemetry'; import {ICommonCodeEditor, EditorContextKeys, ModeContextKeys, IEditorContribution, IRange} from 'vs/editor/common/editorCommon'; import {editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {IQuickFix2} from '../common/quickFix'; import {QuickFixModel} from './quickFixModel'; import {QuickFixSelectionWidget} from './quickFixSelectionWidget'; +@editorBrowserContribution export class QuickFixController implements IEditorContribution { private static ID = 'editor.contrib.quickFixController'; @@ -204,5 +205,3 @@ CommonEditorRegistry.registerEditorCommand(new QuickFixCommand({ primary: KeyCode.PageUp } })); - -EditorBrowserRegistry.registerEditorContribution(QuickFixController); \ No newline at end of file diff --git a/src/vs/editor/contrib/quickOpen/browser/editorQuickOpen.ts b/src/vs/editor/contrib/quickOpen/browser/editorQuickOpen.ts index 33d5af9ae82..eab693fbc7c 100644 --- a/src/vs/editor/contrib/quickOpen/browser/editorQuickOpen.ts +++ b/src/vs/editor/contrib/quickOpen/browser/editorQuickOpen.ts @@ -8,7 +8,7 @@ import {QuickOpenModel} from 'vs/base/parts/quickopen/browser/quickOpenModel'; import {IAutoFocus} from 'vs/base/parts/quickopen/common/quickOpen'; import * as editorCommon from 'vs/editor/common/editorCommon'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {QuickOpenEditorWidget} from './quickOpenEditorWidget'; import {Selection} from 'vs/editor/common/core/selection'; import {IActionOptions, EditorAction} from 'vs/editor/common/editorCommonExtensions'; @@ -19,6 +19,7 @@ export interface IQuickOpenControllerOpts { getAutoFocus(searchValue:string):IAutoFocus; } +@editorBrowserContribution export class QuickOpenController implements editorCommon.IEditorContribution { private static ID = 'editor.controller.quickOpenController'; @@ -164,5 +165,3 @@ export interface IDecorator { decorateLine(range:editorCommon.IRange, editor:editorCommon.IEditor):void; clearDecorations():void; } - -EditorBrowserRegistry.registerEditorContribution(QuickOpenController); diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts index 6d916657b6c..ed546e93138 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referencesController.ts @@ -19,7 +19,7 @@ import {IWorkspaceContextService} from 'vs/platform/workspace/common/workspace'; import {IStorageService} from 'vs/platform/storage/common/storage'; import * as editorCommon from 'vs/editor/common/editorCommon'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {IPeekViewService} from 'vs/editor/contrib/zoneWidget/browser/peekViewWidget'; import {ReferencesModel, OneReference} from './referencesModel'; import {ReferenceWidget, LayoutData} from './referencesWidget'; @@ -32,6 +32,7 @@ export interface RequestOptions { onGoto?: (reference: OneReference) => TPromise; } +@editorBrowserContribution export class ReferencesController implements editorCommon.IEditorContribution { private static ID = 'editor.contrib.referencesController'; @@ -238,6 +239,3 @@ export class ReferencesController implements editorCommon.IEditorContribution { } } } - - -EditorBrowserRegistry.registerEditorContribution(ReferencesController); \ No newline at end of file diff --git a/src/vs/editor/contrib/rename/browser/rename.ts b/src/vs/editor/contrib/rename/browser/rename.ts index 666f5ef4ec5..20723c2f08f 100644 --- a/src/vs/editor/contrib/rename/browser/rename.ts +++ b/src/vs/editor/contrib/rename/browser/rename.ts @@ -16,7 +16,7 @@ import {RawContextKey, IContextKey, IContextKeyService, ContextKeyExpr} from 'vs import {IMessageService} from 'vs/platform/message/common/message'; import {IProgressService} from 'vs/platform/progress/common/progress'; import {editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry} from 'vs/editor/common/editorCommonExtensions'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {IRange, ICommonCodeEditor, EditorContextKeys, ModeContextKeys, IEditorContribution} from 'vs/editor/common/editorCommon'; import {BulkEdit, createBulkEdit} from 'vs/editor/common/services/bulkEdit'; import {ICodeEditor} from 'vs/editor/browser/editorBrowser'; @@ -27,6 +27,7 @@ import RenameInputField from './renameInputField'; const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false); +@editorBrowserContribution class RenameController implements IEditorContribution { private static ID = 'editor.contrib.renameController'; @@ -170,8 +171,6 @@ export class RenameAction extends EditorAction { } } -EditorBrowserRegistry.registerEditorContribution(RenameController); - const RenameCommand = EditorCommand.bindToContribution(RenameController.get); CommonEditorRegistry.registerEditorCommand(new RenameCommand({ diff --git a/src/vs/editor/contrib/selectionClipboard/electron-browser/selectionClipboard.ts b/src/vs/editor/contrib/selectionClipboard/electron-browser/selectionClipboard.ts index 69b7d6f156c..7e173928fba 100644 --- a/src/vs/editor/contrib/selectionClipboard/electron-browser/selectionClipboard.ts +++ b/src/vs/editor/contrib/selectionClipboard/electron-browser/selectionClipboard.ts @@ -10,11 +10,12 @@ import * as platform from 'vs/base/common/platform'; import {ICodeEditor, IEditorMouseEvent} from 'vs/editor/browser/editorBrowser'; import {Disposable} from 'vs/base/common/lifecycle'; import {EndOfLinePreference, IEditorContribution, ICursorSelectionChangedEvent, IConfigurationChangedEvent} from 'vs/editor/common/editorCommon'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import {IContextKeyService} from 'vs/platform/contextkey/common/contextkey'; import {RunOnceScheduler} from 'vs/base/common/async'; import {Range} from 'vs/editor/common/core/range'; +@editorBrowserContribution class SelectionClipboard extends Disposable implements IEditorContribution { private static ID = 'editor.contrib.selectionClipboard'; @@ -98,5 +99,3 @@ class SelectionClipboard extends Disposable implements IEditorContribution { super.dispose(); } } - -EditorBrowserRegistry.registerEditorContribution(SelectionClipboard); diff --git a/src/vs/editor/contrib/suggest/browser/suggestController.ts b/src/vs/editor/contrib/suggest/browser/suggestController.ts index aaf69c96b67..7f930f3b036 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestController.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestController.ts @@ -15,7 +15,7 @@ import { ICommandService } from 'vs/platform/commands/common/commands'; import { ICommonCodeEditor, IEditorContribution, EditorContextKeys, ModeContextKeys } from 'vs/editor/common/editorCommon'; import { editorAction, ServicesAccessor, EditorAction, EditorCommand, CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; -import { EditorBrowserRegistry } from 'vs/editor/browser/editorBrowserExtensions'; +import { editorBrowserContribution } from 'vs/editor/browser/editorBrowserExtensions'; import { EditOperation } from 'vs/editor/common/core/editOperation'; import { CodeSnippet } from 'vs/editor/contrib/snippet/common/snippet'; import { SnippetController } from 'vs/editor/contrib/snippet/common/snippetController'; @@ -24,6 +24,7 @@ import { SuggestModel } from '../common/suggestModel'; import { ICompletionItem } from '../common/completionModel'; import { SuggestWidget } from './suggestWidget'; +@editorBrowserContribution export class SuggestController implements IEditorContribution { private static ID: string = 'editor.contrib.suggestController'; @@ -281,5 +282,3 @@ CommonEditorRegistry.registerEditorCommand(new SuggestCommand({ mac: { primary: KeyMod.WinCtrl | KeyCode.Space } } })); - -EditorBrowserRegistry.registerEditorContribution(SuggestController); diff --git a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts index f6fd54cc210..ad60e646b80 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts @@ -8,7 +8,6 @@ import 'vs/css!../browser/media/debugHover'; import nls = require('vs/nls'); import {KeyMod, KeyCode} from 'vs/base/common/keyCodes'; import {TPromise} from 'vs/base/common/winjs.base'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; import {SyncActionDescriptor} from 'vs/platform/actions/common/actions'; import platform = require('vs/platform/platform'); import {registerSingleton} from 'vs/platform/instantiation/common/extensions'; @@ -27,7 +26,7 @@ import {StepOverAction, ClearReplAction, FocusReplAction, StepIntoAction, StepOu ConfigureAction, ToggleReplAction, DisableAllBreakpointsAction, EnableAllBreakpointsAction, RemoveAllBreakpointsAction, RunAction, ReapplyBreakpointsAction} from 'vs/workbench/parts/debug/browser/debugActions'; import debugwidget = require('vs/workbench/parts/debug/browser/debugActionsWidget'); import service = require('vs/workbench/parts/debug/electron-browser/debugService'); -import {DebugEditorContribution} from 'vs/workbench/parts/debug/electron-browser/debugEditorContribution'; +import 'vs/workbench/parts/debug/electron-browser/debugEditorContribution'; import {IViewletService} from 'vs/workbench/services/viewlet/common/viewletService'; import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService'; @@ -47,8 +46,6 @@ class OpenDebugViewletAction extends viewlet.ToggleViewletAction { } } -EditorBrowserRegistry.registerEditorContribution(DebugEditorContribution); - // register viewlet (platform.Registry.as(viewlet.Extensions.Viewlets)).registerViewlet(new viewlet.ViewletDescriptor( 'vs/workbench/parts/debug/browser/debugViewlet', diff --git a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts index 56749d3d6e4..0c699e7a30e 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts @@ -13,6 +13,7 @@ import {IAction, Action} from 'vs/base/common/actions'; import {KeyCode} from 'vs/base/common/keyCodes'; import keyboard = require('vs/base/browser/keyboardEvent'); import editorbrowser = require('vs/editor/browser/editorBrowser'); +import {editorBrowserContribution} from 'vs/editor/browser/editorBrowserExtensions'; import editorcommon = require('vs/editor/common/editorCommon'); import {DebugHoverWidget} from 'vs/workbench/parts/debug/electron-browser/debugHover'; import debugactions = require('vs/workbench/parts/debug/browser/debugActions'); @@ -24,6 +25,7 @@ import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService'; const HOVER_DELAY = 300; +@editorBrowserContribution export class DebugEditorContribution implements debug.IDebugEditorContribution { private toDispose: lifecycle.IDisposable[]; diff --git a/src/vs/workbench/parts/git/browser/gitEditorContributions.ts b/src/vs/workbench/parts/git/browser/gitEditorContributions.ts index 8f96515ffc8..a1f37c2bcab 100644 --- a/src/vs/workbench/parts/git/browser/gitEditorContributions.ts +++ b/src/vs/workbench/parts/git/browser/gitEditorContributions.ts @@ -5,6 +5,7 @@ 'use strict'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; +import { editorBrowserContribution } from 'vs/editor/browser/editorBrowserExtensions'; import { IModel, IModelDeltaDecoration, IModelDecorationOptions, OverviewRulerLane, IEditorContribution, TrackedRangeStickiness } from 'vs/editor/common/editorCommon'; import { IGitService, ModelEvents, StatusType } from 'vs/workbench/parts/git/common/git'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; @@ -70,6 +71,7 @@ class MergeDecoratorBoundToModel extends Disposable { } } +@editorBrowserContribution export class MergeDecorator extends Disposable implements IEditorContribution { static ID = 'vs.git.editor.merge.decorator'; diff --git a/src/vs/workbench/parts/git/browser/gitWorkbenchContributions.ts b/src/vs/workbench/parts/git/browser/gitWorkbenchContributions.ts index 9e5ad93a71c..bf04acda152 100644 --- a/src/vs/workbench/parts/git/browser/gitWorkbenchContributions.ts +++ b/src/vs/workbench/parts/git/browser/gitWorkbenchContributions.ts @@ -24,11 +24,10 @@ import wbar = require('vs/workbench/common/actionRegistry'); import gitoutput = require('vs/workbench/parts/git/browser/gitOutput'); import output = require('vs/workbench/parts/output/common/output'); import {SyncActionDescriptor} from 'vs/platform/actions/common/actions'; -import {EditorBrowserRegistry} from 'vs/editor/browser/editorBrowserExtensions'; import confregistry = require('vs/platform/configuration/common/configurationRegistry'); import {IConfigurationService} from 'vs/platform/configuration/common/configuration'; import quickopen = require('vs/workbench/browser/quickopen'); -import editorcontrib = require('vs/workbench/parts/git/browser/gitEditorContributions'); +import 'vs/workbench/parts/git/browser/gitEditorContributions'; import {IActivityService, ProgressBadge, NumberBadge} from 'vs/workbench/services/activity/common/activityService'; import {IEventService} from 'vs/platform/event/common/event'; import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation'; @@ -498,9 +497,6 @@ export function registerContributions(): void { nls.localize('view', "View") ); - // Register MergeDecorator - EditorBrowserRegistry.registerEditorContribution(editorcontrib.MergeDecorator); - // Register StatusUpdater (platform.Registry.as(ext.Extensions.Workbench)).registerWorkbenchContribution( StatusUpdater