Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b8131113
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,发现更多精彩内容 >>
未验证
提交
b8131113
编写于
7月 07, 2020
作者:
B
Benjamin Pasero
提交者:
GitHub
7月 07, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
views - buffer context key changes (#101798)
上级
2697636d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
16 deletion
+28
-16
src/vs/workbench/services/views/browser/viewDescriptorService.ts
...workbench/services/views/browser/viewDescriptorService.ts
+28
-16
未找到文件。
src/vs/workbench/services/views/browser/viewDescriptorService.ts
浏览文件 @
b8131113
...
...
@@ -206,16 +206,18 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
}
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
);
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
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
));
});
});
}
...
...
@@ -227,7 +229,9 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
// When views are registered, we need to regroup them based on the cache
const
regroupedViews
=
this
.
regroupViews
(
viewContainer
.
id
,
views
);
this
.
deregisterGroupedViews
(
regroupedViews
);
views
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
false
));
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
views
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
false
));
});
}
private
regroupViews
(
containerId
:
string
,
views
:
IViewDescriptor
[]):
Map
<
string
,
{
cachedContainerInfo
?:
ICachedViewContainerInfo
,
views
:
IViewDescriptor
[]
}
>
{
...
...
@@ -628,7 +632,9 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
const
viewsToRegister
=
this
.
getViewsByContainer
(
viewContainer
).
filter
(
view
=>
this
.
getDefaultContainerById
(
view
.
id
)
!==
viewContainer
);
if
(
viewsToRegister
.
length
)
{
this
.
addViews
(
viewContainer
,
viewsToRegister
);
viewsToRegister
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
!!
viewDescriptor
.
canMoveView
));
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
viewsToRegister
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateMovableViewContextKey
(
viewDescriptor
).
set
(
!!
viewDescriptor
.
canMoveView
));
});
}
}
...
...
@@ -644,8 +650,10 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
}
private
onDidChangeActiveViews
({
added
,
removed
}:
{
added
:
ReadonlyArray
<
IViewDescriptor
>
,
removed
:
ReadonlyArray
<
IViewDescriptor
>
;
}):
void
{
added
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateActiveViewContextKey
(
viewDescriptor
).
set
(
true
));
removed
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateActiveViewContextKey
(
viewDescriptor
).
set
(
false
));
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
added
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateActiveViewContextKey
(
viewDescriptor
).
set
(
true
));
removed
.
forEach
(
viewDescriptor
=>
this
.
getOrCreateActiveViewContextKey
(
viewDescriptor
).
set
(
false
));
});
}
private
registerResetViewContainerAction
(
viewContainer
:
ViewContainer
):
IDisposable
{
...
...
@@ -677,9 +685,11 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
private
addViews
(
container
:
ViewContainer
,
views
:
IViewDescriptor
[],
expandViews
?:
boolean
):
void
{
// Update in memory cache
views
.
forEach
(
view
=>
{
this
.
cachedViewInfo
.
set
(
view
.
id
,
{
containerId
:
container
.
id
});
this
.
getOrCreateDefaultViewLocationContextKey
(
view
).
set
(
this
.
getDefaultContainerById
(
view
.
id
)
===
container
);
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
views
.
forEach
(
view
=>
{
this
.
cachedViewInfo
.
set
(
view
.
id
,
{
containerId
:
container
.
id
});
this
.
getOrCreateDefaultViewLocationContextKey
(
view
).
set
(
this
.
getDefaultContainerById
(
view
.
id
)
===
container
);
});
});
this
.
getViewContainerModel
(
container
).
add
(
views
.
map
(
view
=>
{
return
{
viewDescriptor
:
view
,
collapsed
:
expandViews
?
false
:
undefined
};
}));
...
...
@@ -687,7 +697,9 @@ export class ViewDescriptorService extends Disposable implements IViewDescriptor
private
removeViews
(
container
:
ViewContainer
,
views
:
IViewDescriptor
[]):
void
{
// Set view default location keys to false
views
.
forEach
(
view
=>
this
.
getOrCreateDefaultViewLocationContextKey
(
view
).
set
(
false
));
this
.
contextKeyService
.
bufferChangeEvents
(()
=>
{
views
.
forEach
(
view
=>
this
.
getOrCreateDefaultViewLocationContextKey
(
view
).
set
(
false
));
});
// Remove the views
this
.
getViewContainerModel
(
container
).
remove
(
views
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录