提交 d1023ee9 编写于 作者: B Benjamin Pasero

debt: no more mime in editor service

上级 ab011457
......@@ -52,11 +52,6 @@ export interface IResourceInput {
*/
resource: URI;
/**
* The mime type of the text input if known.
*/
mime?: string;
/**
* The encoding of the text input if known.
*/
......
......@@ -8,7 +8,7 @@ import {TPromise} from 'vs/base/common/winjs.base';
import nls = require('vs/nls');
import errors = require('vs/base/common/errors');
import {toErrorMessage} from 'vs/base/common/errorMessage';
import {MIME_BINARY, MIME_TEXT} from 'vs/base/common/mime';
import {MIME_BINARY} from 'vs/base/common/mime';
import types = require('vs/base/common/types');
import paths = require('vs/base/common/paths');
import {IEditorViewState} from 'vs/editor/common/editorCommon';
......@@ -182,7 +182,6 @@ export class TextFileEditor extends BaseTextEditor {
// Open
return this.editorService.openEditor({
resource: input.getResource(),
mime: MIME_TEXT,
options: {
pinned: true // new file gets pinned by default
}
......
......@@ -10,7 +10,7 @@ import {TPromise} from 'vs/base/common/winjs.base';
import nls = require('vs/nls');
import {isWindows, isLinux, isMacintosh} from 'vs/base/common/platform';
import {sequence, ITask} from 'vs/base/common/async';
import {MIME_TEXT, isUnspecific, isBinaryMime, guessMimeTypes} from 'vs/base/common/mime';
import {isBinaryMime, guessMimeTypes} from 'vs/base/common/mime';
import paths = require('vs/base/common/paths');
import URI from 'vs/base/common/uri';
import errors = require('vs/base/common/errors');
......@@ -1422,14 +1422,6 @@ export abstract class BaseSaveFileAction extends BaseActionWithErrorReporting {
// Save As (or Save untitled with associated path)
if (this.isSaveAs() || source.scheme === 'untitled') {
let mimeOfSource: string;
if (source.scheme === 'untitled') {
const selectedMime = this.untitledEditorService.get(source).getMime();
if (!isUnspecific(selectedMime)) {
mimeOfSource = [selectedMime, MIME_TEXT].join(', ');
}
}
let encodingOfSource: string;
if (source.scheme === 'untitled') {
encodingOfSource = this.untitledEditorService.get(source).getEncoding();
......@@ -1471,7 +1463,6 @@ export abstract class BaseSaveFileAction extends BaseActionWithErrorReporting {
const replaceWith: IResourceInput = {
resource: target,
mime: mimeOfSource,
encoding: encodingOfSource,
options: {
pinned: true,
......@@ -1563,14 +1554,13 @@ export abstract class BaseSaveAllAction extends BaseActionWithErrorReporting {
const stacks = this.editorGroupService.getStacksModel();
// Store some properties per untitled file to restore later after save is completed
const mapUntitledToProperties: { [resource: string]: { mime: string; encoding: string; indexInGroups: number[]; activeInGroups: boolean[] } } = Object.create(null);
const mapUntitledToProperties: { [resource: string]: { encoding: string; indexInGroups: number[]; activeInGroups: boolean[] } } = Object.create(null);
this.textFileService.getDirty()
.filter(r => r.scheme === 'untitled') // All untitled resources
.map(r => this.untitledEditorService.get(r)) // Mapped to their inputs
.filter(input => !!input) // If possible :)
.forEach(input => {
mapUntitledToProperties[input.getResource().toString()] = {
mime: input.getMime(),
encoding: input.getEncoding(),
indexInGroups: stacks.groups.map(g => g.indexOf(input)),
activeInGroups: stacks.groups.map(g => g.isActive(input))
......@@ -1593,18 +1583,12 @@ export abstract class BaseSaveAllAction extends BaseActionWithErrorReporting {
return;
}
let mimeOfSource: string;
if (!isUnspecific(untitledProps.mime)) {
mimeOfSource = [untitledProps.mime, MIME_TEXT].join(', ');
}
// For each position where the untitled file was opened
untitledProps.indexInGroups.forEach((indexInGroup, index) => {
if (indexInGroup >= 0) {
untitledToReopen.push({
input: {
resource: result.target,
mime: mimeOfSource,
encoding: untitledProps.encoding,
options: {
pinned: true,
......
......@@ -282,7 +282,7 @@ export class ExplorerView extends CollapsibleViewletView {
private openFocusedElement(preserveFocus?: boolean): void {
const stat: FileStat = this.explorerViewer.getFocus();
if (stat && !stat.isDirectory) {
this.editorService.openEditor({ resource: stat.resource, mime: stat.mime, options: { preserveFocus, revealIfVisible: true } }).done(null, errors.onUnexpectedError);
this.editorService.openEditor({ resource: stat.resource, options: { preserveFocus, revealIfVisible: true } }).done(null, errors.onUnexpectedError);
}
}
......
......@@ -611,7 +611,7 @@ export class FileController extends DefaultController {
if (stat && !stat.isDirectory) {
this.telemetryService.publicLog('workbenchActionExecuted', { id: 'workbench.files.openFile', from: 'explorer' });
this.editorService.openEditor({ resource: stat.resource, mime: stat.mime, options: { preserveFocus, pinned } }, sideBySide).done(null, errors.onUnexpectedError);
this.editorService.openEditor({ resource: stat.resource, options: { preserveFocus, pinned } }, sideBySide).done(null, errors.onUnexpectedError);
}
}
......
......@@ -6,7 +6,6 @@
import {IWorkbenchContribution} from 'vs/workbench/common/contributions';
import errors = require('vs/base/common/errors');
import {MIME_UNKNOWN} from 'vs/base/common/mime';
import URI from 'vs/base/common/uri';
import paths = require('vs/base/common/paths');
import {DiffEditorInput} from 'vs/workbench/common/editor/diffEditorInput';
......@@ -71,11 +70,11 @@ export class FileEditorTracker implements IWorkbenchContribution {
const before = e.getBefore();
const after = e.getAfter();
this.handleMovedFileInOpenedEditors(before ? before.resource : null, after ? after.resource : null, after ? after.mime : null);
this.handleMovedFileInOpenedEditors(before ? before.resource : null, after ? after.resource : null);
}
}
private handleMovedFileInOpenedEditors(oldResource: URI, newResource: URI, mimeHint?: string): void {
private handleMovedFileInOpenedEditors(oldResource: URI, newResource: URI): void {
const stacks = this.editorGroupService.getStacksModel();
stacks.groups.forEach(group => {
group.getEditors().forEach(input => {
......@@ -93,7 +92,7 @@ export class FileEditorTracker implements IWorkbenchContribution {
}
// Reopen
this.editorService.openEditor({ resource: reopenFileResource, mime: mimeHint || MIME_UNKNOWN, options: { preserveFocus: true, pinned: group.isPinned(input), index: group.indexOf(input), inactive: !group.isActive(input) } }, stacks.positionOfGroup(group)).done(null, errors.onUnexpectedError);
this.editorService.openEditor({ resource: reopenFileResource, options: { preserveFocus: true, pinned: group.isPinned(input), index: group.indexOf(input), inactive: !group.isActive(input) } }, stacks.positionOfGroup(group)).done(null, errors.onUnexpectedError);
}
}
});
......
......@@ -189,7 +189,6 @@ class OpenInEditorAction extends baseeditor.EditorInputAction {
return this.fileService.resolveFile(resource).then(stat => {
return this.editorService.openEditor({
resource: stat.resource,
mime: stat.mime,
options: {
forceOpen: true
}
......
......@@ -173,7 +173,6 @@ export class OpenFileAction extends GitAction {
return this.fileService.resolveFile(resource)
.then(stat => this.editorService.openEditor({
resource: stat.resource,
mime: stat.mime,
options: { forceOpen: true }
}));
}
......@@ -395,7 +394,6 @@ export abstract class BaseUndoAction extends GitAction {
return this.fileService.resolveFile(this.contextService.toResource(path)).then((stat: IFileStat) => {
return this.editorService.openEditor({
resource: stat.resource,
mime: stat.mime,
options: {
forceOpen: true
}
......
......@@ -6,8 +6,8 @@
import {TPromise} from 'vs/base/common/winjs.base';
import URI from 'vs/base/common/uri';
import network = require('vs/base/common/network');
import {guessMimeTypes} from 'vs/base/common/mime';
import network = require('vs/base/common/network');
import {Registry} from 'vs/platform/platform';
import {basename, dirname} from 'vs/base/common/paths';
import types = require('vs/base/common/types');
......@@ -263,7 +263,7 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
// Base Text Editor Support for file resources
else if (this.fileInputDescriptor && resourceInput.resource instanceof URI && resourceInput.resource.scheme === network.Schemas.file) {
return this.createFileInput(resourceInput.resource, resourceInput.mime, resourceInput.encoding);
return this.createFileInput(resourceInput.resource, resourceInput.encoding);
}
// Treat an URI as ResourceEditorInput
......@@ -277,10 +277,10 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
return TPromise.as<EditorInput>(null);
}
private createFileInput(resource: URI, mime?: string, encoding?: string): TPromise<IFileEditorInput> {
private createFileInput(resource: URI, encoding?: string): TPromise<IFileEditorInput> {
return this.instantiationService.createInstance(this.fileInputDescriptor).then((typedFileInput) => {
typedFileInput.setResource(resource);
typedFileInput.setMime(mime || guessMimeTypes(resource.fsPath).join(', '));
typedFileInput.setMime(guessMimeTypes(resource.fsPath).join(', '));
typedFileInput.setPreferredEncoding(encoding);
return typedFileInput;
......
......@@ -299,13 +299,12 @@ suite('Workbench UI Services', () => {
});
// Open Untyped Input
service.openEditor({ resource: toResource('/index.html'), mime: 'text/html', options: { selection: { startLineNumber: 1, startColumn: 1 } } }).then((editor) => {
service.openEditor({ resource: toResource('/index.html'), options: { selection: { startLineNumber: 1, startColumn: 1 } } }).then((editor) => {
assert.strictEqual(editor, activeEditor);
assert(openedEditorInput instanceof FileEditorInput);
let contentInput = <FileEditorInput>openedEditorInput;
assert.strictEqual(contentInput.getResource().fsPath, toResource('/index.html').fsPath);
assert.strictEqual(contentInput.getMime(), 'text/html');
assert(openedEditorOptions instanceof TextEditorOptions);
let textEditorOptions = <TextEditorOptions>openedEditorOptions;
......@@ -327,7 +326,7 @@ suite('Workbench UI Services', () => {
});
// Resolve Editor Model (Untyped Input)
service.resolveEditorModel({ resource: toResource('/index.html'), mime: 'text/html' }, true).then((model) => {
service.resolveEditorModel({ resource: toResource('/index.html') }, true).then((model) => {
assert(model instanceof TextFileEditorModel);
});
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册