mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-27 12:04:04 +01:00
Show detected ports and add input box
This commit is contained in:
@@ -52,6 +52,13 @@ export interface ITunnelItem {
|
||||
readonly label: string;
|
||||
}
|
||||
|
||||
export enum TunnelEditId {
|
||||
None = 0,
|
||||
New = 1,
|
||||
Label = 2,
|
||||
LocalPort = 3
|
||||
}
|
||||
|
||||
export interface Tunnel {
|
||||
remoteHost: string;
|
||||
remotePort: number;
|
||||
@@ -545,9 +552,9 @@ export interface IRemoteExplorerService {
|
||||
onDidChangeTargetType: Event<string[]>;
|
||||
targetType: string[];
|
||||
readonly tunnelModel: TunnelModel;
|
||||
onDidChangeEditable: Event<ITunnelItem | undefined>;
|
||||
setEditable(tunnelItem: ITunnelItem | undefined, data: IEditableData | null): void;
|
||||
getEditableData(tunnelItem: ITunnelItem | undefined): IEditableData | undefined;
|
||||
onDidChangeEditable: Event<{ tunnel: ITunnelItem, editId: TunnelEditId } | undefined>;
|
||||
setEditable(tunnelItem: ITunnelItem | undefined, editId: TunnelEditId, data: IEditableData | null): void;
|
||||
getEditableData(tunnelItem: ITunnelItem | undefined, editId?: TunnelEditId): IEditableData | undefined;
|
||||
forward(remote: { host: string, port: number }, localPort?: number, name?: string, source?: string, elevateIfNeeded?: boolean, isPublic?: boolean, restore?: boolean): Promise<RemoteTunnel | void>;
|
||||
close(remote: { host: string, port: number }): Promise<void>;
|
||||
setTunnelInformation(tunnelInformation: TunnelInformation | undefined): void;
|
||||
@@ -566,9 +573,9 @@ class RemoteExplorerService implements IRemoteExplorerService {
|
||||
private readonly _onDidChangeTargetType: Emitter<string[]> = new Emitter<string[]>();
|
||||
public readonly onDidChangeTargetType: Event<string[]> = this._onDidChangeTargetType.event;
|
||||
private _tunnelModel: TunnelModel;
|
||||
private _editable: { tunnelItem: ITunnelItem | undefined, data: IEditableData } | undefined;
|
||||
private readonly _onDidChangeEditable: Emitter<ITunnelItem | undefined> = new Emitter();
|
||||
public readonly onDidChangeEditable: Event<ITunnelItem | undefined> = this._onDidChangeEditable.event;
|
||||
private _editable: { tunnelItem: ITunnelItem | undefined, editId: TunnelEditId, data: IEditableData } | undefined;
|
||||
private readonly _onDidChangeEditable: Emitter<{ tunnel: ITunnelItem, editId: TunnelEditId } | undefined> = new Emitter();
|
||||
public readonly onDidChangeEditable: Event<{ tunnel: ITunnelItem, editId: TunnelEditId } | undefined> = this._onDidChangeEditable.event;
|
||||
private readonly _onEnabledPortsFeatures: Emitter<void> = new Emitter();
|
||||
public readonly onEnabledPortsFeatures: Event<void> = this._onEnabledPortsFeatures.event;
|
||||
private _portsFeaturesEnabled: boolean = false;
|
||||
@@ -616,19 +623,20 @@ class RemoteExplorerService implements IRemoteExplorerService {
|
||||
this.tunnelModel.addEnvironmentTunnels(tunnelInformation?.environmentTunnels);
|
||||
}
|
||||
|
||||
setEditable(tunnelItem: ITunnelItem | undefined, data: IEditableData | null): void {
|
||||
setEditable(tunnelItem: ITunnelItem | undefined, editId: TunnelEditId, data: IEditableData | null): void {
|
||||
if (!data) {
|
||||
this._editable = undefined;
|
||||
} else {
|
||||
this._editable = { tunnelItem, data };
|
||||
this._editable = { tunnelItem, data, editId };
|
||||
}
|
||||
this._onDidChangeEditable.fire(tunnelItem);
|
||||
this._onDidChangeEditable.fire(tunnelItem ? { tunnel: tunnelItem, editId } : undefined);
|
||||
}
|
||||
|
||||
getEditableData(tunnelItem: ITunnelItem | undefined): IEditableData | undefined {
|
||||
getEditableData(tunnelItem: ITunnelItem | undefined, editId: TunnelEditId): IEditableData | undefined {
|
||||
return (this._editable &&
|
||||
((!tunnelItem && (tunnelItem === this._editable.tunnelItem)) ||
|
||||
(tunnelItem && (this._editable.tunnelItem?.remotePort === tunnelItem.remotePort) && (this._editable.tunnelItem.remoteHost === tunnelItem.remoteHost)))) ?
|
||||
(tunnelItem && (this._editable.tunnelItem?.remotePort === tunnelItem.remotePort) && (this._editable.tunnelItem.remoteHost === tunnelItem.remoteHost)
|
||||
&& (this._editable.editId === editId)))) ?
|
||||
this._editable.data : undefined;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user