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

move more inputs from browser => common

上级 cf459844
......@@ -13,7 +13,7 @@ import {DefaultConfig} from 'vs/editor/common/config/defaultConfig';
import {EditorConfiguration} from 'vs/editor/common/config/commonEditorConfig';
import {TextEditorOptions, EditorModel, EditorInput, EditorOptions} from 'vs/workbench/common/editor';
import {BaseTextEditorModel} from 'vs/workbench/common/editor/textEditorModel';
import {LogEditorInput} from 'vs/workbench/browser/parts/editor/logEditorInput';
import {LogEditorInput} from 'vs/workbench/common/editor/logEditorInput';
import {UntitledEditorInput} from 'vs/workbench/common/editor/untitledEditorInput';
import {BaseTextEditor} from 'vs/workbench/browser/parts/editor/textEditor';
import {UntitledEditorEvent, EventType} from 'vs/workbench/common/events';
......
......@@ -4,9 +4,8 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import {ICodeEditor} from 'vs/editor/browser/editorBrowser';
import {IEditor, ITextModel} from 'vs/editor/common/editorCommon';
import {StringEditorInput} from 'vs/workbench/common/editor/stringEditorInput';
import {BaseTextEditor} from 'vs/workbench/browser/parts/editor/textEditor';
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
......@@ -58,15 +57,17 @@ export class LogEditorInput extends StringEditorInput {
return newValue;
}
private revealLastLine(): void {
/**
* Reveals the last line on any editor that has this output set.
*/
public revealLastLine(): void {
let editors = this.editorService.getVisibleEditors();
for (let i = 0; i < editors.length; i++) {
let editor = editors[i];
if (editor.input === this && editor instanceof BaseTextEditor) {
let textEditor = <BaseTextEditor>editor;
let editorControl = <ICodeEditor>textEditor.getControl();
if (editor.input === this) {
let editorControl = <IEditor>editor.getControl();
if (editorControl) {
let model = editorControl.getModel();
let model = <ITextModel>editorControl.getModel();
if (model) {
let lastLine = model.getLineCount();
editorControl.revealLine(lastLine);
......
......@@ -6,9 +6,9 @@
import {Registry} from 'vs/platform/platform';
import {registerMode} from 'vs/editor/common/modes/modesRegistry';
import {OutputService} from 'vs/workbench/parts/output/browser/outputServices';
import {OutputService} from 'vs/workbench/parts/output/common/outputServices';
import {OUTPUT_MIME, OUTPUT_MODE_ID, OUTPUT_EDITOR_INPUT_ID, IOutputService} from 'vs/workbench/parts/output/common/output';
import {OutputEditorInput} from 'vs/workbench/parts/output/browser/outputEditorInput';
import {OutputEditorInput} from 'vs/workbench/parts/output/common/outputEditorInput';
import {IEditorRegistry, Extensions, IEditorInputFactory} from 'vs/workbench/browser/parts/editor/baseEditor';
import {EditorInput} from 'vs/workbench/common/editor';
import {IInstantiationService, INullService} from 'vs/platform/instantiation/common/instantiation';
......
......@@ -15,7 +15,7 @@ import {CommonEditorRegistry, EditorActionDescriptor} from 'vs/editor/common/edi
import {Scope, IActionBarRegistry, Extensions as ActionBarExtensions} from 'vs/workbench/browser/actionBarRegistry';
import {Action} from 'vs/base/common/actions';
import {IEditorInputAction, IEditorInputActionContext, EditorInputActionContributor} from 'vs/workbench/browser/parts/editor/baseEditor';
import {OutputEditorInput} from 'vs/workbench/parts/output/browser/outputEditorInput';
import {OutputEditorInput} from 'vs/workbench/parts/output/common/outputEditorInput';
import {ClearOutputEditorAction, ToggleOutputAction, GlobalShowOutputAction, SwitchOutputActionItem, SwitchOutputAction, ClearOutputAction} from 'vs/workbench/parts/output/browser/outputActions';
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
import {KeyMod, KeyCode} from 'vs/base/common/keyCodes';
......
......@@ -15,7 +15,7 @@ import {EditorAction, Behaviour} from 'vs/editor/common/editorAction';
import {ICommonCodeEditor, IEditorActionDescriptorData} from 'vs/editor/common/editorCommon';
import {EditorInputAction} from 'vs/workbench/browser/parts/editor/baseEditor';
import {IOutputChannelRegistry, Extensions, IOutputService, OUTPUT_EDITOR_INPUT_ID, OUTPUT_MODE_ID} from 'vs/workbench/parts/output/common/output';
import {OutputEditorInput} from 'vs/workbench/parts/output/browser/outputEditorInput';
import {OutputEditorInput} from 'vs/workbench/parts/output/common/outputEditorInput';
import {SelectActionItem} from 'vs/base/browser/ui/actionbar/actionbar';
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
import {IQuickOpenService} from 'vs/workbench/services/quickopen/common/quickOpenService';
......
......@@ -7,7 +7,7 @@
import {TPromise} from 'vs/base/common/winjs.base';
import nls = require('vs/nls');
import {EditorModel} from 'vs/workbench/common/editor';
import {LogEditorInput} from 'vs/workbench/browser/parts/editor/logEditorInput';
import {LogEditorInput} from 'vs/workbench/common/editor/logEditorInput';
import {OUTPUT_EDITOR_INPUT_ID, IOutputEvent, OUTPUT_MIME, IOutputService} from 'vs/workbench/parts/output/common/output';
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
......
......@@ -8,9 +8,8 @@ import {Promise, TPromise} from 'vs/base/common/winjs.base';
import strings = require('vs/base/common/strings');
import Event, {Emitter} from 'vs/base/common/event';
import {EditorOptions} from 'vs/workbench/common/editor';
import {StringEditor} from 'vs/workbench/browser/parts/editor/stringEditor';
import {OUTPUT_MIME, DEFAULT_OUTPUT_CHANNEL, IOutputEvent, IOutputService} from 'vs/workbench/parts/output/common/output';
import {OutputEditorInput} from 'vs/workbench/parts/output/browser/outputEditorInput';
import {OutputEditorInput} from 'vs/workbench/parts/output/common/outputEditorInput';
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
import {IEditor, Position} from 'vs/platform/editor/common/editor';
import {IEventService} from 'vs/platform/event/common/event';
......@@ -172,21 +171,21 @@ export class OutputService implements IOutputService {
}
// Still reveal last line
existingOutputEditor.revealLastLine();
(<OutputEditorInput>existingOutputEditor.input).revealLastLine();
return Promise.as(existingOutputEditor);
}
// Otherwise open new
return this.editorService.openEditor(OutputEditorInput.getInstance(this.instantiationService, channel), preserveFocus ? EditorOptions.create({ preserveFocus: true }) : null, <any> sideBySide);
return this.editorService.openEditor(OutputEditorInput.getInstance(this.instantiationService, channel), preserveFocus ? EditorOptions.create({ preserveFocus: true }) : null, <any>sideBySide);
}
private findOutputEditor(channel: string): StringEditor {
private findOutputEditor(channel: string): IEditor {
let editors = this.editorService.getVisibleEditors();
for (let i = 0; i < editors.length; i++) {
let editor = editors[i];
if (editor.input instanceof OutputEditorInput && (<OutputEditorInput>editor.input).getChannel() === channel && (<OutputEditorInput>editor.input).getMime() === OUTPUT_MIME) {
return <StringEditor>editor;
return editor;
}
}
......
......@@ -10,7 +10,7 @@ import {Promise } from 'vs/base/common/winjs.base';
import * as Strings from 'vs/base/common/strings';
import URI from 'vs/base/common/uri';
import {StringEditorInput} from 'vs/workbench/common/editor/stringEditorInput';
import {LogEditorInput} from 'vs/workbench/browser/parts/editor/logEditorInput';
import {LogEditorInput} from 'vs/workbench/common/editor/logEditorInput';
import {ResourceEditorInput} from 'vs/workbench/common/editor/resourceEditorInput';
import {ResourceEditorModel} from 'vs/workbench/common/editor/resourceEditorModel';
import {TestWorkspace, TestEditorService, MockRequestService} from 'vs/workbench/test/browser/servicesTestUtils';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册