html.contribution.ts 2.1 KB
Newer Older
J
Johannes Rieken 已提交
1 2 3 4 5 6 7 8 9 10 11
/*---------------------------------------------------------------------------------------------
 *  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 {localize} from 'vs/nls';
import {KeybindingsRegistry} from 'vs/platform/keybinding/common/keybindingsRegistry';
import {IInstantiationService, ServicesAccessor} from 'vs/platform/instantiation/common/instantiation';
import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService';
import URI from 'vs/base/common/uri';
12
import {Position as EditorPosition} from 'vs/platform/editor/common/editor';
J
Johannes Rieken 已提交
13
import {HtmlInput} from '../common/htmlInput';
14
import {HtmlPreviewPart} from 'vs/workbench/parts/html/browser/htmlPreviewPart';
J
Johannes Rieken 已提交
15
import {Registry} from 'vs/platform/platform';
B
Benjamin Pasero 已提交
16 17
import {EditorDescriptor} from 'vs/workbench/browser/parts/editor/baseEditor';
import {IEditorRegistry, Extensions as EditorExtensions} from 'vs/workbench/common/editor';
J
Johannes Rieken 已提交
18 19 20
import {SyncDescriptor} from 'vs/platform/instantiation/common/descriptors';

// --- Register Editor
21 22 23 24
(<IEditorRegistry>Registry.as(EditorExtensions.Editors)).registerEditor(new EditorDescriptor(HtmlPreviewPart.ID,
	localize('html.editor.label', "Html Preview"),
	'vs/workbench/parts/html/browser/htmlPreviewPart',
	'HtmlPreviewPart'),
J
Johannes Rieken 已提交
25 26 27 28 29
	[new SyncDescriptor(HtmlInput)]);

// --- Register Commands

KeybindingsRegistry.registerCommandDesc({
30
	id: '_workbench.previewHtml',
J
Johannes Rieken 已提交
31
	weight: KeybindingsRegistry.WEIGHT.workbenchContrib(0),
32
	handler(accessor: ServicesAccessor, resource: URI | string, position?: EditorPosition, label?: string) {
33

34
		let uri = resource instanceof URI ? resource : URI.parse(resource);
35 36
		label = label || uri.fsPath;
		let input = accessor.get(IInstantiationService).createInstance(HtmlInput, label, '', uri);
J
Johannes Rieken 已提交
37

38 39
		return accessor.get(IWorkbenchEditorService)
			.openEditor(input, { pinned: true }, position)
J
Johannes Rieken 已提交
40 41
			.then(editor => true);
	},
42
	when: undefined,
J
Johannes Rieken 已提交
43 44
	primary: undefined
});