url.contribution.ts 3.0 KB
Newer Older
J
Joao Moreno 已提交
1 2 3 4 5
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

P
Pine Wu 已提交
6 7
import { URI } from 'vs/base/common/uri';
import { localize } from 'vs/nls';
B
Benjamin Pasero 已提交
8
import { MenuId, MenuRegistry, Action2, registerAction2 } from 'vs/platform/actions/common/actions';
P
Pine Wu 已提交
9
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
10
import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle';
P
Pine Wu 已提交
11 12 13 14
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
import { Registry } from 'vs/platform/registry/common/platform';
import { IURLService } from 'vs/platform/url/common/url';
import { Extensions as WorkbenchExtensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions';
15 16 17 18
import { ExternalUriResolverContribution } from 'vs/workbench/contrib/url/browser/externalUriResolver';
import { manageTrustedDomainSettingsCommand } from 'vs/workbench/contrib/url/browser/trustedDomains';
import { TrustedDomainsFileSystemProvider } from 'vs/workbench/contrib/url/browser/trustedDomainsFileSystemProvider';
import { OpenerValidatorContributions } from 'vs/workbench/contrib/url/browser/trustedDomainsValidator';
B
Benjamin Pasero 已提交
19
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
20
import { CATEGORIES } from 'vs/workbench/common/actions';
J
Joao Moreno 已提交
21

B
Benjamin Pasero 已提交
22
class OpenUrlAction extends Action2 {
J
Joao Moreno 已提交
23

B
Benjamin Pasero 已提交
24 25 26 27
	constructor() {
		super({
			id: 'workbench.action.url.openUrl',
			title: { value: localize('openUrl', "Open URL"), original: 'Open URL' },
28
			category: CATEGORIES.Developer,
B
Benjamin Pasero 已提交
29 30
			f1: true
		});
J
Joao Moreno 已提交
31 32
	}

B
Benjamin Pasero 已提交
33 34 35 36 37
	async run(accessor: ServicesAccessor): Promise<void> {
		const quickInputService = accessor.get(IQuickInputService);
		const urlService = accessor.get(IURLService);

		return quickInputService.input({ prompt: localize('urlToOpen', "URL to open") }).then(input => {
38 39
			if (input) {
				const uri = URI.parse(input);
40
				urlService.open(uri, { originalUrl: input });
41
			}
J
Joao Moreno 已提交
42
		});
J
Joao Moreno 已提交
43 44 45
	}
}

B
Benjamin Pasero 已提交
46
registerAction2(OpenUrlAction);
P
Pine Wu 已提交
47

P
Pine Wu 已提交
48 49 50
/**
 * Trusted Domains Contribution
 */
P
Pine Wu 已提交
51

P
Pine Wu 已提交
52
CommandsRegistry.registerCommand(manageTrustedDomainSettingsCommand);
P
Pine Wu 已提交
53 54
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
	command: {
P
Pine Wu 已提交
55
		id: manageTrustedDomainSettingsCommand.id,
P
Pine Wu 已提交
56 57 58 59
		title: {
			value: manageTrustedDomainSettingsCommand.description.description,
			original: 'Manage Trusted Domains'
		}
P
Pine Wu 已提交
60
	}
P
Pine Wu 已提交
61
});
P
Pine Wu 已提交
62 63 64 65 66

Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(
	OpenerValidatorContributions,
	LifecyclePhase.Restored
);
P
Pine Wu 已提交
67 68 69 70
Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(
	TrustedDomainsFileSystemProvider,
	LifecyclePhase.Ready
);
71 72 73 74
Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(
	ExternalUriResolverContribution,
	LifecyclePhase.Ready
);