diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 075dbed945431f7a65aefb9efb3d28c7eaf10faf..1f5d28cf0edc436f0550c551a78c1672418c0b02 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -38,9 +38,9 @@ workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(Toggle mac: { primary: KeyMod.CtrlCmd | KeyMod.WinCtrl | KeyCode.KEY_F } }), viewCategory); -// Configuration const configurationRegistry = Registry.as(ConfigurationExtensions.Configuration); +// Window Configuration configurationRegistry.registerConfiguration({ 'id': 'window', 'order': 6, @@ -66,6 +66,7 @@ configurationRegistry.registerConfiguration({ } }); +// Update Configuration configurationRegistry.registerConfiguration({ 'id': 'update', 'order': 10, diff --git a/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts b/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts index 79a63565d58447a7ea05de563c3a2e0be2059db0..05816142c67da6923db537bf9cfde01a57af0f87 100644 --- a/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/commandsHandler.ts @@ -32,13 +32,14 @@ import {KeybindingsUtils} from 'vs/platform/keybinding/common/keybindingsUtils'; import {IQuickOpenService} from 'vs/workbench/services/quickopen/browser/quickOpenService'; import {KeyMod, KeyCode} from 'vs/base/common/keyCodes'; -const ACTION_ID = 'workbench.action.showCommands'; -const ACTION_LABEL = nls.localize('showTriggerActions', "Show All Commands"); -const ALL_COMMANDS_PREFIX = '>'; -const EDITOR_COMMANDS_PREFIX = '$'; +export const ALL_COMMANDS_PREFIX = '>'; +export const EDITOR_COMMANDS_PREFIX = '$'; export class ShowAllCommandsAction extends QuickOpenAction { + public static ID = 'workbench.action.showCommands'; + public static LABEL = nls.localize('showTriggerActions', "Show All Commands"); + constructor(actionId: string, actionLabel: string, @IQuickOpenService quickOpenService: IQuickOpenService) { super(actionId, actionLabel, ALL_COMMANDS_PREFIX, quickOpenService); } @@ -351,21 +352,4 @@ export class QuickCommandsEditorAction extends EditorAction { return super.run(); } -} - -// Register Action -let registry = Registry.as(ActionExtensions.WorkbenchActions); -registry.registerWorkbenchAction(new SyncActionDescriptor(ShowAllCommandsAction, ACTION_ID, ACTION_LABEL, { - primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_P, - secondary: [KeyCode.F1] -})); - -// Register Quick Open Handler -(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( - new QuickOpenHandlerDescriptor( - 'vs/workbench/parts/quickopen/browser/commandsHandler', - 'CommandsHandler', - ALL_COMMANDS_PREFIX, - nls.localize('commandsHandlerDescriptionDefault', "Show and Run Commands") - ) -); \ No newline at end of file +} \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts index 7ad4536fae5f0c240a18bad154900d9c5d8139e1..17665c205449d17d28175aca4602bfb8e31427e6 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts @@ -24,11 +24,13 @@ import {Position} from 'vs/platform/editor/common/editor'; import {IQuickOpenService} from 'vs/workbench/services/quickopen/browser/quickOpenService'; import {KeyMod, KeyCode} from 'vs/base/common/keyCodes'; -const ACTION_ID = 'workbench.action.gotoLine'; -const ACTION_LABEL = nls.localize('gotoLine', "Go to Line..."); -const GOTO_LINE_PREFIX = ':'; +export const GOTO_LINE_PREFIX = ':'; export class GotoLineAction extends QuickOpenAction { + + public static ID = 'workbench.action.gotoLine'; + public static LABEL = nls.localize('gotoLine', "Go to Line..."); + constructor(actionId: string, actionLabel: string, @IQuickOpenService quickOpenService: IQuickOpenService) { super(actionId, actionLabel, GOTO_LINE_PREFIX, quickOpenService); } @@ -281,27 +283,4 @@ export class GotoLineHandler extends QuickOpenHandler { autoFocusFirstEntry: searchValue.trim().length > 0 }; } -} - -// Register Action -let registry = Registry.as(ActionExtensions.WorkbenchActions); -registry.registerWorkbenchAction(new SyncActionDescriptor(GotoLineAction, ACTION_ID, ACTION_LABEL, { - primary: KeyMod.CtrlCmd | KeyCode.KEY_G, - mac: { primary: KeyMod.WinCtrl | KeyCode.KEY_G } -})); - -// Register Quick Open Handler -(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( - new QuickOpenHandlerDescriptor( - 'vs/workbench/parts/quickopen/browser/gotoLineHandler', - 'GotoLineHandler', - GOTO_LINE_PREFIX, - [ - { - prefix: GOTO_LINE_PREFIX, - needsEditor: true, - description: env.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line") - }, - ] - ) -); \ No newline at end of file +} \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts index aa7743ebfdb9d905022cd75d56c1a07ed202935a..265488010508b92584d8d01cca1aa7b10e4a766e 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts @@ -33,13 +33,14 @@ import {Position} from 'vs/platform/editor/common/editor'; import {KeyMod, KeyCode} from 'vs/base/common/keyCodes'; import {OutlineRegistry, getOutlineEntries} from 'vs/editor/contrib/quickOpen/common/quickOpen'; -const ACTION_ID = 'workbench.action.gotoSymbol'; -const ACTION_LABEL = nls.localize('gotoSymbol', "Go to Symbol..."); - -const GOTO_SYMBOL_PREFIX = '@'; -const SCOPE_PREFIX = ':'; +export const GOTO_SYMBOL_PREFIX = '@'; +export const SCOPE_PREFIX = ':'; export class GotoSymbolAction extends QuickOpenAction { + + public static ID = 'workbench.action.gotoSymbol'; + public static LABEL = nls.localize('gotoSymbol', "Go to Symbol..."); + constructor(actionId: string, actionLabel: string, @IQuickOpenService quickOpenService: IQuickOpenService) { super(actionId, actionLabel, GOTO_SYMBOL_PREFIX, quickOpenService); } @@ -432,7 +433,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { if (model && types.isFunction((model).getMode)) { - canRun = OutlineRegistry.has( model); + canRun = OutlineRegistry.has(model); } } @@ -527,7 +528,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { return TPromise.as(this.outlineToModelCache[modelId]); } - return getOutlineEntries( model).then(outline => { + return getOutlineEntries(model).then(outline => { let model = new OutlineModel(outline, this.toQuickOpenEntries(outline)); @@ -627,29 +628,4 @@ export class GotoSymbolHandler extends QuickOpenHandler { this.lastKnownEditorViewState = null; this.activeOutlineRequest = null; } -} - -// Register Action -let registry = Registry.as(ActionExtensions.WorkbenchActions); -registry.registerWorkbenchAction(new SyncActionDescriptor(GotoSymbolAction, ACTION_ID, ACTION_LABEL, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_O })); - -// Register Quick Outline Handler -(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( - new QuickOpenHandlerDescriptor( - 'vs/workbench/parts/quickopen/browser/gotoSymbolHandler', - 'GotoSymbolHandler', - GOTO_SYMBOL_PREFIX, - [ - { - prefix: GOTO_SYMBOL_PREFIX, - needsEditor: true, - description: env.isMacintosh ? nls.localize('gotoSymbolDescriptionNormalMac', "Go to Symbol") : nls.localize('gotoSymbolDescriptionNormalWin', "Go to Symbol") - }, - { - prefix: GOTO_SYMBOL_PREFIX + SCOPE_PREFIX, - needsEditor: true, - description: nls.localize('gotoSymbolDescriptionScoped', "Go to Symbol by Category") - } - ] - ) -); \ No newline at end of file +} \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts index 4cd1b9b87bdd70b6a0ce4f29c1e8feae91353e08..cd0e4c8f1ad03b0127df562329c912919b279913 100644 --- a/src/vs/workbench/parts/quickopen/browser/helpHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/helpHandler.ts @@ -15,7 +15,7 @@ import {ITree, IElementCallback} from 'vs/base/parts/tree/common/tree'; import {QuickOpenHandlerDescriptor, IQuickOpenRegistry, Extensions, QuickOpenHandler} from 'vs/workbench/browser/quickopen'; import {IQuickOpenService} from 'vs/workbench/services/quickopen/browser/quickOpenService'; -const HELP_PREFIX = '?'; +export const HELP_PREFIX = '?'; class HelpEntry extends QuickOpenEntryItem { private prefix: string; @@ -182,14 +182,4 @@ export class HelpHandler extends QuickOpenHandler { autoFocusPrefixMatch: searchValue }; } -} - -// Register Quick Open Handler -(Registry.as(Extensions.Quickopen)).registerQuickOpenHandler( - new QuickOpenHandlerDescriptor( - 'vs/workbench/parts/quickopen/browser/helpHandler', - 'HelpHandler', - HELP_PREFIX, - nls.localize('helpDescription', "Show Help") - ) -); \ No newline at end of file +} \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/markersHandler.ts b/src/vs/workbench/parts/quickopen/browser/markersHandler.ts index 2f007cc8d825fbf5b4198eb90cbce3f634bf9fc9..7b266cfaf31016cc4bd473277f03fdc98b1faa58 100644 --- a/src/vs/workbench/parts/quickopen/browser/markersHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/markersHandler.ts @@ -67,9 +67,8 @@ class MarkerEntry extends QuickOpenEntryItem { return null; } - public run(mode:Mode, context:IContext):boolean { - - if(mode !== Mode.OPEN) { + public run(mode: Mode, context: IContext): boolean { + if (mode !== Mode.OPEN) { return false; } @@ -107,7 +106,7 @@ export class MarkersHandler extends QuickOpenHandler { this._contextService = contextService; } - public getResults(searchValue:string):TPromise { + public getResults(searchValue: string): TPromise { searchValue = searchValue.trim(); let markers = this._markerService.read({ take: 500 }); @@ -121,7 +120,6 @@ export class MarkersHandler extends QuickOpenHandler { } private static _sort(a: IMarker, b: IMarker): number { - let ret: number; // 1st: severity matters first @@ -144,7 +142,7 @@ export class MarkersHandler extends QuickOpenHandler { // 4th: start column matters ret = a.startColumn - b.startColumn; - if(ret !== 0) { + if (ret !== 0) { return ret; } @@ -153,7 +151,7 @@ export class MarkersHandler extends QuickOpenHandler { private _filter(marker: IMarker, query: string): boolean { - if(marker.resource.scheme === network.schemas.inMemory) { + if (marker.resource.scheme === network.schemas.inMemory) { // ignore inmemory-models return false; } @@ -172,7 +170,7 @@ export class MarkersHandler extends QuickOpenHandler { return 'marker-handler'; } - public getAutoFocus(searchValue:string):IAutoFocus { + public getAutoFocus(searchValue: string): IAutoFocus { return { autoFocusFirstEntry: !!searchValue }; @@ -187,7 +185,7 @@ export class MarkersHandler extends QuickOpenHandler { } -class GotoMarkerAction extends QuickOpenAction { +export class GotoMarkerAction extends QuickOpenAction { static Prefix = '!'; static Id = 'workbench.action.showErrorsWarnings'; @@ -196,24 +194,4 @@ class GotoMarkerAction extends QuickOpenAction { constructor(actionId: string, actionLabel: string, @IQuickOpenService quickOpenService: IQuickOpenService) { super(actionId, actionLabel, GotoMarkerAction.Prefix, quickOpenService); } -} - -// Register Action -let registry = Registry.as(ActionExtensions.WorkbenchActions); -registry.registerWorkbenchAction(new SyncActionDescriptor(GotoMarkerAction, GotoMarkerAction.Id, GotoMarkerAction.Label, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_M })); - -// Register Quick Open Handler -(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( - new QuickOpenHandlerDescriptor( - 'vs/workbench/parts/quickopen/browser/markersHandler', - 'MarkersHandler', - GotoMarkerAction.Prefix, - [ - { - prefix: GotoMarkerAction.Prefix, - needsEditor: false, - description: env.isMacintosh ? nls.localize('desc.mac', "Show Errors or Warnings") : nls.localize('desc.win', "Show Errors and Warnings") - }, - ] - ) -); \ No newline at end of file +} \ No newline at end of file diff --git a/src/vs/workbench/parts/quickopen/browser/quickopen.contribution.ts b/src/vs/workbench/parts/quickopen/browser/quickopen.contribution.ts new file mode 100644 index 0000000000000000000000000000000000000000..73c9ae80361ca0fa7af53d628f8db33fcd737735 --- /dev/null +++ b/src/vs/workbench/parts/quickopen/browser/quickopen.contribution.ts @@ -0,0 +1,126 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +'use strict'; + +import env = require('vs/base/common/platform'); +import nls = require('vs/nls'); +import {QuickOpenHandlerDescriptor, IQuickOpenRegistry, Extensions as QuickOpenExtensions, QuickOpenHandler} from 'vs/workbench/browser/quickopen'; +import {Registry} from 'vs/platform/platform'; +import {SyncActionDescriptor} from 'vs/platform/actions/common/actions'; +import {IWorkbenchActionRegistry, Extensions as ActionExtensions} from 'vs/workbench/browser/actionRegistry'; +import {KeyMod, KeyCode} from 'vs/base/common/keyCodes'; +import {IConfigurationRegistry, Extensions as ConfigurationExtensions} from 'vs/platform/configuration/common/configurationRegistry'; +import {GotoSymbolHandler, GotoSymbolAction, GOTO_SYMBOL_PREFIX, SCOPE_PREFIX} from 'vs/workbench/parts/quickopen/browser/gotoSymbolHandler'; +import {CommandsHandler, ShowAllCommandsAction, ALL_COMMANDS_PREFIX} from 'vs/workbench/parts/quickopen/browser/commandsHandler'; +import {GotoLineAction, GotoLineHandler, GOTO_LINE_PREFIX} from 'vs/workbench/parts/quickopen/browser/gotoLineHandler'; +import {HelpHandler, HELP_PREFIX} from 'vs/workbench/parts/quickopen/browser/helpHandler'; +import {MarkersHandler, GotoMarkerAction} from 'vs/workbench/parts/quickopen/browser/markersHandler'; + +// Register Actions +let registry = Registry.as(ActionExtensions.WorkbenchActions); +registry.registerWorkbenchAction(new SyncActionDescriptor(GotoMarkerAction, GotoMarkerAction.Id, GotoMarkerAction.Label, { + primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_M +})); + +registry.registerWorkbenchAction(new SyncActionDescriptor(ShowAllCommandsAction, ShowAllCommandsAction.ID, ShowAllCommandsAction.LABEL, { + primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_P, + secondary: [KeyCode.F1] +})); + +registry.registerWorkbenchAction(new SyncActionDescriptor(GotoLineAction, GotoLineAction.ID, GotoLineAction.LABEL, { + primary: KeyMod.CtrlCmd | KeyCode.KEY_G, + mac: { primary: KeyMod.WinCtrl | KeyCode.KEY_G } +})); + +registry.registerWorkbenchAction(new SyncActionDescriptor(GotoSymbolAction, GotoSymbolAction.ID, GotoSymbolAction.LABEL, { + primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_O +})); + +// Register Quick Open Handler + +(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( + new QuickOpenHandlerDescriptor( + 'vs/workbench/parts/quickopen/browser/markersHandler', + 'MarkersHandler', + GotoMarkerAction.Prefix, + [ + { + prefix: GotoMarkerAction.Prefix, + needsEditor: false, + description: env.isMacintosh ? nls.localize('desc.mac', "Show Errors or Warnings") : nls.localize('desc.win', "Show Errors and Warnings") + }, + ] + ) +); + +(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( + new QuickOpenHandlerDescriptor( + 'vs/workbench/parts/quickopen/browser/commandsHandler', + 'CommandsHandler', + ALL_COMMANDS_PREFIX, + nls.localize('commandsHandlerDescriptionDefault', "Show and Run Commands") + ) +); + +(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( + new QuickOpenHandlerDescriptor( + 'vs/workbench/parts/quickopen/browser/gotoLineHandler', + 'GotoLineHandler', + GOTO_LINE_PREFIX, + [ + { + prefix: GOTO_LINE_PREFIX, + needsEditor: true, + description: env.isMacintosh ? nls.localize('gotoLineDescriptionMac', "Go to Line") : nls.localize('gotoLineDescriptionWin', "Go to Line") + }, + ] + ) +); + +(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( + new QuickOpenHandlerDescriptor( + 'vs/workbench/parts/quickopen/browser/gotoSymbolHandler', + 'GotoSymbolHandler', + GOTO_SYMBOL_PREFIX, + [ + { + prefix: GOTO_SYMBOL_PREFIX, + needsEditor: true, + description: env.isMacintosh ? nls.localize('gotoSymbolDescriptionNormalMac', "Go to Symbol") : nls.localize('gotoSymbolDescriptionNormalWin', "Go to Symbol") + }, + { + prefix: GOTO_SYMBOL_PREFIX + SCOPE_PREFIX, + needsEditor: true, + description: nls.localize('gotoSymbolDescriptionScoped', "Go to Symbol by Category") + } + ] + ) +); + +(Registry.as(QuickOpenExtensions.Quickopen)).registerQuickOpenHandler( + new QuickOpenHandlerDescriptor( + 'vs/workbench/parts/quickopen/browser/helpHandler', + 'HelpHandler', + HELP_PREFIX, + nls.localize('helpDescription', "Show Help") + ) +); + +// Configuration +const configurationRegistry = Registry.as(ConfigurationExtensions.Configuration); +configurationRegistry.registerConfiguration({ + 'id': 'filter', + 'order': 11, + 'title': nls.localize('filterConfigurationTitle', "Filter configuration"), + 'type': 'object', + 'properties': { + 'filter.enableFuzzy': { + 'type': 'boolean', + 'default': false, + 'description': nls.localize('enableFuzzy', "Enable or disable fuzzy matching in controls that narrow down while typing.") + } + } +}); \ No newline at end of file diff --git a/src/vs/workbench/workbench.main.js b/src/vs/workbench/workbench.main.js index 5520316700eda1a008deed136b6e4a17a642c39d..54d4f319ecb343038d4581389d5ec9330149623b 100644 --- a/src/vs/workbench/workbench.main.js +++ b/src/vs/workbench/workbench.main.js @@ -31,11 +31,7 @@ define([ 'vs/workbench/browser/actions/triggerNavigation', 'vs/workbench/browser/actions/showPerformanceBox', - 'vs/workbench/parts/quickopen/browser/gotoSymbolHandler', - 'vs/workbench/parts/quickopen/browser/commandsHandler', - 'vs/workbench/parts/quickopen/browser/gotoLineHandler', - 'vs/workbench/parts/quickopen/browser/helpHandler', - 'vs/workbench/parts/quickopen/browser/markersHandler', + 'vs/workbench/parts/quickopen/browser/quickopen.contribution', 'vs/workbench/parts/files/browser/explorerViewlet', 'vs/workbench/parts/files/browser/fileActions.contribution',