@@ -20,10 +20,10 @@ import { URI } from 'vs/base/common/uri';
2020import { Schemas } from 'vs/base/common/network' ;
2121import { Disposable } from 'vs/base/common/lifecycle' ;
2222import { originalFSPath , dirname as resourcesDirname , isEqualOrParent , joinPath } from 'vs/base/common/resources' ;
23- import { getRemoteAuthority } from 'vs/platform/remote/common/remoteHosts' ;
2423
2524export interface IStoredWorkspace {
2625 folders : IStoredWorkspaceFolder [ ] ;
26+ remoteAuthority ?: string ;
2727}
2828
2929export class WorkspacesMainService extends Disposable implements IWorkspacesMainService {
@@ -73,7 +73,8 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
7373 return {
7474 id : workspaceIdentifier . id ,
7575 configPath : workspaceIdentifier . configPath ,
76- folders : toWorkspaceFolders ( workspace . folders , resourcesDirname ( path ) )
76+ folders : toWorkspaceFolders ( workspace . folders , resourcesDirname ( path ) ) ,
77+ remoteAuthority : workspace . remoteAuthority
7778 } ;
7879 } catch ( error ) {
7980 this . logService . warn ( error . toString ( ) ) ;
@@ -104,17 +105,17 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
104105 return isEqualOrParent ( path , this . environmentService . untitledWorkspacesHome ) ;
105106 }
106107
107- createUntitledWorkspace ( folders ?: IWorkspaceFolderCreationData [ ] ) : Promise < IWorkspaceIdentifier > {
108- const { workspace, storedWorkspace } = this . newUntitledWorkspace ( folders ) ;
108+ createUntitledWorkspace ( folders ?: IWorkspaceFolderCreationData [ ] , remoteAuthority ?: string ) : Promise < IWorkspaceIdentifier > {
109+ const { workspace, storedWorkspace } = this . newUntitledWorkspace ( folders , remoteAuthority ) ;
109110 const configPath = workspace . configPath . fsPath ;
110111
111112 return mkdirp ( dirname ( configPath ) ) . then ( ( ) => {
112113 return writeFile ( configPath , JSON . stringify ( storedWorkspace , null , '\t' ) ) . then ( ( ) => workspace ) ;
113114 } ) ;
114115 }
115116
116- createUntitledWorkspaceSync ( folders ?: IWorkspaceFolderCreationData [ ] ) : IWorkspaceIdentifier {
117- const { workspace, storedWorkspace } = this . newUntitledWorkspace ( folders ) ;
117+ createUntitledWorkspaceSync ( folders ?: IWorkspaceFolderCreationData [ ] , remoteAuthority ?: string ) : IWorkspaceIdentifier {
118+ const { workspace, storedWorkspace } = this . newUntitledWorkspace ( folders , remoteAuthority ) ;
118119 const configPath = workspace . configPath . fsPath ;
119120
120121 const configPathDir = dirname ( configPath ) ;
@@ -131,7 +132,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
131132 return workspace ;
132133 }
133134
134- private newUntitledWorkspace ( folders : IWorkspaceFolderCreationData [ ] = [ ] ) : { workspace : IWorkspaceIdentifier , storedWorkspace : IStoredWorkspace } {
135+ private newUntitledWorkspace ( folders : IWorkspaceFolderCreationData [ ] = [ ] , remoteAuthority ?: string ) : { workspace : IWorkspaceIdentifier , storedWorkspace : IStoredWorkspace } {
135136 const randomId = ( Date . now ( ) + Math . round ( Math . random ( ) * 1000 ) ) . toString ( ) ;
136137 const untitledWorkspaceConfigFolder = joinPath ( this . untitledWorkspacesHome , randomId ) ;
137138 const untitledWorkspaceConfigPath = joinPath ( untitledWorkspaceConfigFolder , UNTITLED_WORKSPACE_NAME ) ;
@@ -144,7 +145,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
144145
145146 return {
146147 workspace : this . getWorkspaceIdentifier ( untitledWorkspaceConfigPath ) ,
147- storedWorkspace : { folders : storedWorkspaceFolder }
148+ storedWorkspace : { folders : storedWorkspaceFolder , remoteAuthority }
148149 } ;
149150 }
150151
@@ -230,8 +231,7 @@ export class WorkspacesMainService extends Disposable implements IWorkspacesMain
230231 if ( ! resolvedWorkspace ) {
231232 this . doDeleteUntitledWorkspaceSync ( workspace ) ;
232233 } else {
233- const remoteAuthority = resolvedWorkspace . folders . length ? getRemoteAuthority ( resolvedWorkspace . folders [ 0 ] . uri ) : undefined ;
234- untitledWorkspaces . push ( { workspace, remoteAuthority } ) ;
234+ untitledWorkspaces . push ( { workspace, remoteAuthority : resolvedWorkspace . remoteAuthority } ) ;
235235 }
236236 }
237237 } catch ( error ) {
0 commit comments