Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
a54912ca
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 搜索 >>
提交
a54912ca
编写于
5月 06, 2020
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #96695
上级
656920b1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
32 addition
and
18 deletion
+32
-18
src/vs/workbench/api/browser/viewsExtensionPoint.ts
src/vs/workbench/api/browser/viewsExtensionPoint.ts
+10
-4
src/vs/workbench/common/views.ts
src/vs/workbench/common/views.ts
+11
-5
src/vs/workbench/services/views/browser/viewDescriptorService.ts
...workbench/services/views/browser/viewDescriptorService.ts
+11
-9
未找到文件。
src/vs/workbench/api/browser/viewsExtensionPoint.ts
浏览文件 @
a54912ca
...
...
@@ -368,6 +368,9 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
}
private
addViews
(
extensions
:
readonly
IExtensionPointUser
<
ViewExtensionPointType
>
[]):
void
{
const
viewIds
:
Set
<
string
>
=
new
Set
<
string
>
();
const
allViewDescriptors
:
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}[]
=
[];
for
(
const
extension
of
extensions
)
{
const
{
value
,
collector
}
=
extension
;
...
...
@@ -386,10 +389,9 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
collector
.
warn
(
localize
(
'
ViewContainerDoesnotExist
'
,
"
View container '{0}' does not exist and all views registered to it will be added to 'Explorer'.
"
,
entry
.
key
));
}
const
container
=
viewContainer
||
this
.
getDefaultViewContainer
();
const
viewIds
:
string
[]
=
[];
const
viewDescriptors
=
coalesce
(
entry
.
value
.
map
((
item
,
index
)
=>
{
// validate
if
(
viewIds
.
indexOf
(
item
.
id
)
!==
-
1
)
{
if
(
viewIds
.
has
(
item
.
id
)
)
{
collector
.
error
(
localize
(
'
duplicateView1
'
,
"
Cannot register multiple views with same id `{0}`
"
,
item
.
id
));
return
null
;
}
...
...
@@ -421,12 +423,16 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
remoteAuthority
:
item
.
remoteName
||
(
<
any
>
item
).
remoteAuthority
// TODO@roblou - delete after remote extensions are updated
};
viewIds
.
push
(
viewDescriptor
.
id
);
viewIds
.
add
(
viewDescriptor
.
id
);
return
viewDescriptor
;
}));
this
.
viewsRegistry
.
registerViews
(
viewDescriptors
,
container
);
allViewDescriptors
.
push
({
viewContainer
:
container
,
views
:
viewDescriptors
});
});
}
this
.
viewsRegistry
.
registerViews2
(
allViewDescriptors
);
}
private
getDefaultViewContainer
():
ViewContainer
{
...
...
src/vs/workbench/common/views.ts
浏览文件 @
a54912ca
...
...
@@ -282,7 +282,7 @@ export interface IViewContentDescriptor {
export
interface
IViewsRegistry
{
readonly
onViewsRegistered
:
Event
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
;
readonly
onViewsRegistered
:
Event
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
[]
>
;
readonly
onViewsDeregistered
:
Event
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
;
...
...
@@ -290,6 +290,8 @@ export interface IViewsRegistry {
registerViews
(
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
;
registerViews2
(
views
:
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}[]):
void
;
deregisterViews
(
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
;
moveViews
(
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
;
...
...
@@ -319,8 +321,8 @@ function compareViewContentDescriptors(a: IViewContentDescriptor, b: IViewConten
class
ViewsRegistry
extends
Disposable
implements
IViewsRegistry
{
private
readonly
_onViewsRegistered
:
Emitter
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
=
this
.
_register
(
new
Emitter
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
());
readonly
onViewsRegistered
:
Event
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
=
this
.
_onViewsRegistered
.
event
;
private
readonly
_onViewsRegistered
=
this
.
_register
(
new
Emitter
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}[]
>
());
readonly
onViewsRegistered
=
this
.
_onViewsRegistered
.
event
;
private
readonly
_onViewsDeregistered
:
Emitter
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
=
this
.
_register
(
new
Emitter
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
());
readonly
onViewsDeregistered
:
Event
<
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}
>
=
this
.
_onViewsDeregistered
.
event
;
...
...
@@ -336,8 +338,12 @@ class ViewsRegistry extends Disposable implements IViewsRegistry {
private
_viewWelcomeContents
=
new
SetMap
<
string
,
IViewContentDescriptor
>
();
registerViews
(
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
{
this
.
addViews
(
views
,
viewContainer
);
this
.
_onViewsRegistered
.
fire
({
views
:
views
,
viewContainer
});
this
.
registerViews2
([{
views
,
viewContainer
}]);
}
registerViews2
(
views
:
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}[]):
void
{
views
.
forEach
(({
views
,
viewContainer
})
=>
this
.
addViews
(
views
,
viewContainer
));
this
.
_onViewsRegistered
.
fire
(
views
);
}
deregisterViews
(
viewDescriptors
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
{
...
...
src/vs/workbench/services/views/browser/viewDescriptorService.ts
浏览文件 @
a54912ca
...
...
@@ -119,7 +119,7 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
// Try generating all generated containers that don't need extensions
this
.
tryGenerateContainers
();
this
.
_register
(
this
.
viewsRegistry
.
onViewsRegistered
(
({
views
,
viewContainer
})
=>
this
.
onDidRegisterViews
(
views
,
viewContainer
)));
this
.
_register
(
this
.
viewsRegistry
.
onViewsRegistered
(
views
=>
this
.
onDidRegisterViews
(
views
)));
this
.
_register
(
this
.
viewsRegistry
.
onViewsDeregistered
(({
views
,
viewContainer
})
=>
this
.
onDidDeregisterViews
(
views
,
viewContainer
)));
this
.
_register
(
this
.
viewsRegistry
.
onDidChangeContainer
(({
views
,
from
,
to
})
=>
this
.
moveViews
(
views
,
from
,
to
)));
...
...
@@ -212,16 +212,18 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
this
.
tryGenerateContainers
(
true
);
}
private
onDidRegisterViews
(
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
):
void
{
// When views are registered, we need to regroup them based on the cache
const
regroupedViews
=
this
.
regroupViews
(
viewContainer
.
id
,
views
);
private
onDidRegisterViews
(
views
:
{
views
:
IViewDescriptor
[],
viewContainer
:
ViewContainer
}[]):
void
{
views
.
forEach
(({
views
,
viewContainer
})
=>
{
// When views are registered, we need to regroup them based on the cache
const
regroupedViews
=
this
.
regroupViews
(
viewContainer
.
id
,
views
);
// Once they are grouped, try registering them which occurs
// if the container has already been registered within this service
// or we can generate the container from the source view id
this
.
registerGroupedViews
(
regroupedViews
);
// Once they are grouped, try registering them which occurs
// if the container has already been registered within this service
// or we can generate the container from the source view id
this
.
registerGroupedViews
(
regroupedViews
);
views
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
!!
viewDescriptor
.
canMoveView
));
views
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
!!
viewDescriptor
.
canMoveView
));
});
}
private
shouldGenerateContainer
(
containerInfo
:
ICachedViewContainerInfo
):
boolean
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录