提交 7784f6f0 编写于 作者: I isidor

output: register output panel

上级 7074eb42
......@@ -4,38 +4,18 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import nls = require('vs/nls');
import {Registry} from 'vs/platform/platform';
import {registerMode} from 'vs/editor/common/modes/modesRegistry';
import platform = require('vs/platform/platform');
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/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';
import {OUTPUT_MIME, OUTPUT_MODE_ID, OUTPUT_PANEL_ID, IOutputService} from 'vs/workbench/parts/output/common/output';
import panel = require('vs/workbench/browser/panel');
import {registerSingleton} from 'vs/platform/instantiation/common/extensions';
// Register Editor Input Factory
class OutputInputFactory implements IEditorInputFactory {
constructor(@INullService ns) {}
public serialize(editorInput: EditorInput): string {
let outputEditoInput = <OutputEditorInput>editorInput;
return outputEditoInput.getChannel(); // use the channel to distinguish different output editor inputs
}
public deserialize(instantiationService: IInstantiationService, channel: string): EditorInput {
return OutputEditorInput.getInstance(instantiationService, channel);
}
}
// Register Service
registerSingleton(IOutputService, OutputService);
// Register Output Input Factory
(<IEditorRegistry>Registry.as(Extensions.Editors)).registerEditorInputFactory(OUTPUT_EDITOR_INPUT_ID, OutputInputFactory);
// Register Output Mode
registerMode({
id: OUTPUT_MODE_ID,
......@@ -45,3 +25,13 @@ registerMode({
moduleId: 'vs/workbench/parts/output/common/outputMode',
ctorName: 'OutputMode'
});
// Register Output Panel
(<panel.PanelRegistry>platform.Registry.as(panel.Extensions.Panels)).registerPanel(new panel.PanelDescriptor(
'vs/workbench/parts/output/browser/outputPanel',
'OutputPanel',
OUTPUT_PANEL_ID,
nls.localize('output', "Output"),
'output',
40
));
......@@ -25,6 +25,11 @@ export const OUTPUT_MODE_ID = 'Log';
*/
export const OUTPUT_EDITOR_INPUT_ID = 'vs.output';
/**
* Output panel id
*/
export const OUTPUT_PANEL_ID = 'workbench.panel.output';
/**
* Output from any not defined channel is here
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册