mirror of
https://github.com/Microsoft/vscode
synced 2024-10-01 08:50:48 +00:00
.....
This commit is contained in:
parent
36d4b03b9f
commit
58c2ebe5f8
|
@ -19,6 +19,9 @@ import { IViewDescriptorService } from 'vs/workbench/common/views';
|
|||
|
||||
export class VariablesPanel extends ViewPane {
|
||||
|
||||
static readonly ID = TUNNEL_VIEW_ID;
|
||||
static readonly TITLE: ILocalizedString = nls.localize2('remote.tunnel', "Ports");
|
||||
|
||||
constructor(
|
||||
options: IViewPaneOptions,
|
||||
@IKeybindingService keybindingService: IKeybindingService,
|
||||
|
@ -38,3 +41,23 @@ export class VariablesPanel extends ViewPane {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
export class TunnelPanelDescriptor implements IViewDescriptor {
|
||||
readonly id = TunnelPanel.ID;
|
||||
readonly name: ILocalizedString = TunnelPanel.TITLE;
|
||||
readonly ctorDescriptor: SyncDescriptor<TunnelPanel>;
|
||||
readonly canToggleVisibility = true;
|
||||
readonly hideByDefault = false;
|
||||
// group is not actually used for views that are not extension contributed. Use order instead.
|
||||
readonly group = 'details@0';
|
||||
// -500 comes from the remote explorer viewOrderDelegate
|
||||
readonly order = -500;
|
||||
readonly remoteAuthority?: string | string[];
|
||||
readonly canMoveView = true;
|
||||
readonly containerIcon = portsViewIcon;
|
||||
|
||||
constructor(viewModel: ITunnelViewModel, environmentService: IWorkbenchEnvironmentService) {
|
||||
this.ctorDescriptor = new SyncDescriptor(TunnelPanel, [viewModel]);
|
||||
this.remoteAuthority = environmentService.remoteAuthority ? environmentService.remoteAuthority.split('+')[0] : undefined;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,8 +3,12 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as nls from 'vs/nls';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { IWorkbenchContribution } from 'vs/workbench/common/contributions';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { Extensions, IViewContainersRegistry, IViewsRegistry } from 'vs/workbench/common/views';
|
||||
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
|
||||
|
||||
const VARIABLES_VIEW_CONTAINER_ID = 'variablesViewContainer';
|
||||
|
||||
|
@ -12,6 +16,37 @@ export class VariablesView extends Disposable implements IWorkbenchContribution
|
|||
|
||||
constructor() {
|
||||
super();
|
||||
this.enableVariablesView();
|
||||
}
|
||||
|
||||
private async enableVariablesView() {
|
||||
const viewEnabled = true;
|
||||
|
||||
if (viewEnabled) {
|
||||
const viewContainer = await this.getViewContainer();
|
||||
const variablesPanelDescriptor = new VariablesPanelDescriptor();
|
||||
const viewsRegistry = Registry.as<IViewsRegistry>(Extensions.ViewsRegistry);
|
||||
if (viewContainer) {
|
||||
viewsRegistry.registerViews([variablesPanelDescriptor!], viewContainer);
|
||||
}
|
||||
} else {
|
||||
this.contextKeyListener = this.contextKeyService.onDidChangeContext(e => {
|
||||
if (e.affectsSome(new Set(forwardedPortsViewEnabled.keys()))) {
|
||||
this.enableForwardedPortsView();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
getViewContainer() {
|
||||
return Registry.as<IViewContainersRegistry>(Extensions.ViewContainersRegistry).registerViewContainer({
|
||||
id: VARIABLES_VIEW_CONTAINER_ID,
|
||||
title: { value: nls.localize('variables', "Kernel Variables"), original: 'Kernel Variables' },
|
||||
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [VARIABLES_VIEW_CONTAINER_ID, { mergeViewWithContainerWhenSingleView: true }]),
|
||||
storageId: VARIABLES_VIEW_CONTAINER_ID,
|
||||
hideIfEmpty: true,
|
||||
order: 5
|
||||
}, ViewContainerLocation.Panel);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue