diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 54e9ce040e6be131391e6aaff58dbca4763406a2..66bbdf5ac51ae89373eb47265bc33be381a72bc5 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -45,7 +45,6 @@ import { Selection } from 'vs/editor/common/core/selection'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { TabFocus } from 'vs/editor/common/config/commonEditorConfig'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; -import { ShowLanguageExtensionsAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions'; function getCodeEditor(editorWidget: IEditor): ICommonCodeEditor { if (editorWidget) { @@ -682,8 +681,7 @@ export class ChangeModeAction extends Action { @IConfigurationEditingService private configurationEditingService: IConfigurationEditingService, @IMessageService private messageService: IMessageService, @IWorkspaceConfigurationService private configurationService: IWorkspaceConfigurationService, - @IQuickOpenService private quickOpenService: IQuickOpenService, - @IInstantiationService private instantiationService: IInstantiationService + @IQuickOpenService private quickOpenService: IQuickOpenService ) { super(actionId, actionLabel); } @@ -742,17 +740,12 @@ export class ChangeModeAction extends Action { // Offer action to configure via settings let configureModeAssociations: IPickOpenEntry; - let galleryAction: Action; if (fileinput) { const resource = fileinput.getResource(); - const ext = paths.extname(resource.fsPath) || paths.basename(resource.fsPath); - - galleryAction = this.instantiationService.createInstance(ShowLanguageExtensionsAction, ext); - if (galleryAction.enabled) { - picks.unshift(galleryAction); - } + configureModeAssociations = { + label: nls.localize('configureAssociationsExt', "Configure File Association for '{0}'...", paths.extname(resource.fsPath) || paths.basename(resource.fsPath)) + }; - configureModeAssociations = { label: nls.localize('configureAssociationsExt', "Configure File Association for '{0}'...", ext) }; picks.unshift(configureModeAssociations); } @@ -764,51 +757,45 @@ export class ChangeModeAction extends Action { picks.unshift(autoDetectMode); } - return this.quickOpenService.pick(picks, { placeHolder: nls.localize('pickLanguage', "Select Language Mode") }).then(pick => { - if (!pick) { - return; - } + return this.quickOpenService.pick(picks, { placeHolder: nls.localize('pickLanguage', "Select Language Mode") }).then(language => { + if (language) { - if (pick === galleryAction) { - galleryAction.run(); - return; - } + // User decided to permanently configure associations, return right after + if (language === configureModeAssociations) { + this.configureFileAssociation(fileinput.getResource()); + return; + } - // User decided to permanently configure associations, return right after - if (pick === configureModeAssociations) { - this.configureFileAssociation(fileinput.getResource()); - return; - } + // Change mode for active editor + activeEditor = this.editorService.getActiveEditor(); + if (activeEditor instanceof BaseTextEditor) { + const editorWidget = activeEditor.getControl(); + const models: IModel[] = []; - // Change mode for active editor - activeEditor = this.editorService.getActiveEditor(); - if (activeEditor instanceof BaseTextEditor) { - const editorWidget = activeEditor.getControl(); - const models: IModel[] = []; + const textModel = getTextModel(editorWidget); + if (textModel) { + models.push(textModel); + } - const textModel = getTextModel(editorWidget); - if (textModel) { - models.push(textModel); - } + // Support for original side of diff + const model = editorWidget.getModel(); + if (model && !!(model).original) { + models.push((model).original); + } - // Support for original side of diff - const model = editorWidget.getModel(); - if (model && !!(model).original) { - models.push((model).original); - } + // Find mode + let mode: TPromise; + if (language === autoDetectMode) { + mode = this.modeService.getOrCreateModeByFilenameOrFirstLine(getUntitledOrFileResource(activeEditor.input, true).fsPath, textModel.getLineContent(1)); + } else { + mode = this.modeService.getOrCreateModeByLanguageName(language.label); + } - // Find mode - let mode: TPromise; - if (pick === autoDetectMode) { - mode = this.modeService.getOrCreateModeByFilenameOrFirstLine(getUntitledOrFileResource(activeEditor.input, true).fsPath, textModel.getLineContent(1)); - } else { - mode = this.modeService.getOrCreateModeByLanguageName(pick.label); + // Change mode + models.forEach(textModel => { + this.modelService.setMode(textModel, mode); + }); } - - // Change mode - models.forEach(textModel => { - this.modelService.setMode(textModel, mode); - }); } }); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index ea8d4f1a28615ec3c358432b3904369aaee5343c..4907afc4e81a6204a07f0e96ff0cff92368e78c8 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -16,7 +16,7 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions'; import { IExtension, ExtensionState, IExtensionsWorkbenchService, VIEWLET_ID, IExtensionsViewlet, ConfigurationKey } from './extensions'; -import { LocalExtensionType, IExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { LocalExtensionType } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IMessageService } from 'vs/platform/message/common/message'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; @@ -677,29 +677,6 @@ export class ShowDisabledExtensionsAction extends Action { } } -export class ShowLanguageExtensionsAction extends Action { - - static ID = 'workbench.extensions.action.showLanguageExtensions'; - - constructor( - private extension: string, - @IViewletService private viewletService: IViewletService, - @IExtensionGalleryService galleryService: IExtensionGalleryService - ) { - super(ShowLanguageExtensionsAction.ID, localize('showLanguageExtensions', "Search Gallery Extensions for '{0}'...", extension), null, true); - this.enabled = galleryService.isEnabled(); - } - - run(): TPromise { - return this.viewletService.openViewlet(VIEWLET_ID, true) - .then(viewlet => viewlet as IExtensionsViewlet) - .then(viewlet => { - viewlet.search(`tag:__ext_${this.extension.replace(/^\./, '')}`); - viewlet.focus(); - }); - } -} - export class ClearExtensionsInputAction extends ShowInstalledExtensionsAction { static ID = 'workbench.extensions.action.clearExtensionsInput';