Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
f41a6943
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f41a6943
编写于
10月 17, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
storage - extract loading of workspace payload
上级
7aef0f87
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
55 addition
and
44 deletion
+55
-44
src/vs/workbench/electron-browser/main.ts
src/vs/workbench/electron-browser/main.ts
+53
-42
src/vs/workbench/services/configuration/node/configurationService.ts
...bench/services/configuration/node/configurationService.ts
+2
-2
未找到文件。
src/vs/workbench/electron-browser/main.ts
浏览文件 @
f41a6943
...
...
@@ -99,8 +99,14 @@ function openWorkbench(configuration: IWindowConfiguration): Promise<void> {
const
logService
=
createLogService
(
mainProcessClient
,
configuration
,
environmentService
);
logService
.
trace
(
'
openWorkbench configuration
'
,
JSON
.
stringify
(
configuration
));
// Resolve a workspace payload that we can get the workspace ID from
return
createWorkspaceInitializationPayload
(
configuration
,
environmentService
).
then
(
payload
=>
{
return
Promise
.
all
([
createAndInitializeWorkspaceService
(
configuration
,
environmentService
),
// Create and load workspace/configuration service
createWorkspaceService
(
payload
,
environmentService
),
// Create and load storage service
createStorageService
(
environmentService
,
logService
)
]).
then
(
services
=>
{
const
workspaceService
=
services
[
0
];
...
...
@@ -138,18 +144,19 @@ function openWorkbench(configuration: IWindowConfiguration): Promise<void> {
});
});
});
});
}
function
createAndInitializeWorkspaceService
(
configuration
:
IWindowConfiguration
,
environmentService
:
EnvironmentService
):
Promise
<
WorkspaceService
>
{
let
workspaceInitializationPayload
:
Promise
<
IWorkspaceInitializationPayload
>
=
Promise
.
resolve
(
void
0
);
function
createWorkspaceInitializationPayload
(
configuration
:
IWindowConfiguration
,
environmentService
:
EnvironmentService
):
Promise
<
IWorkspaceInitializationPayload
>
{
// Multi-root workspace
if
(
configuration
.
workspace
)
{
workspaceInitializationPayload
=
Promise
.
resolve
(
configuration
.
workspace
as
IMultiFolderWorkspaceInitializationPayload
);
return
Promise
.
resolve
(
configuration
.
workspace
as
IMultiFolderWorkspaceInitializationPayload
);
}
// Single-folder workspace
else
if
(
configuration
.
folderUri
)
{
let
workspaceInitializationPayload
:
Promise
<
IWorkspaceInitializationPayload
>
=
Promise
.
resolve
(
void
0
);
if
(
configuration
.
folderUri
)
{
workspaceInitializationPayload
=
resolveSingleFolderWorkspaceInitializationPayload
(
configuration
.
folderUri
,
configuration
.
verbose
);
}
...
...
@@ -160,9 +167,7 @@ function createAndInitializeWorkspaceService(configuration: IWindowConfiguration
payload
=
{
id
:
configuration
.
backupPath
?
uri
.
from
({
path
:
basename
(
configuration
.
backupPath
),
scheme
:
'
empty
'
}).
toString
()
:
''
}
as
IEmptyWorkspaceInitializationPayload
;
}
const
workspaceService
=
new
WorkspaceService
(
environmentService
);
return
workspaceService
.
initialize
(
payload
).
then
(()
=>
workspaceService
,
error
=>
workspaceService
);
return
payload
;
});
}
...
...
@@ -212,6 +217,12 @@ function resolveSingleFolderWorkspaceInitializationPayload(folderUri: ISingleFol
});
}
function
createWorkspaceService
(
payload
:
IWorkspaceInitializationPayload
,
environmentService
:
IEnvironmentService
):
Promise
<
WorkspaceService
>
{
const
workspaceService
=
new
WorkspaceService
(
environmentService
);
return
workspaceService
.
initialize
(
payload
).
then
(()
=>
workspaceService
,
error
=>
workspaceService
);
}
function
createStorageService
(
environmentService
:
IEnvironmentService
,
logService
:
ILogService
):
Promise
<
StorageService
>
{
const
storageService
=
new
StorageService
(
'
:memory:
'
,
logService
,
environmentService
);
...
...
src/vs/workbench/services/configuration/node/configurationService.ts
浏览文件 @
f41a6943
...
...
@@ -300,7 +300,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat
return
this
.
_configuration
.
keys
();
}
initialize
(
arg
:
I
MultiFolderWorkspaceInitializationPayload
|
ISingleFolderWorkspaceInitializationPayload
|
IEmpty
WorkspaceInitializationPayload
,
postInitialisationTask
:
()
=>
void
=
()
=>
null
):
Promise
<
any
>
{
initialize
(
arg
:
IWorkspaceInitializationPayload
,
postInitialisationTask
:
()
=>
void
=
()
=>
null
):
Promise
<
any
>
{
return
this
.
createWorkspace
(
arg
)
.
then
(
workspace
=>
this
.
updateWorkspaceAndInitializeConfiguration
(
workspace
,
postInitialisationTask
));
}
...
...
@@ -327,7 +327,7 @@ export class WorkspaceService extends Disposable implements IWorkspaceConfigurat
this
.
jsonEditingService
=
instantiationService
.
createInstance
(
JSONEditingService
);
}
private
createWorkspace
(
arg
:
I
MultiFolderWorkspaceInitializationPayload
|
ISingleFolderWorkspaceInitializationPayload
|
IEmpty
WorkspaceInitializationPayload
):
Promise
<
Workspace
>
{
private
createWorkspace
(
arg
:
IWorkspaceInitializationPayload
):
Promise
<
Workspace
>
{
if
(
isWorkspaceIdentifier
(
arg
))
{
return
this
.
createMultiFolderWorkspace
(
arg
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录