Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
4fd60ed5
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,发现更多精彩内容 >>
提交
4fd60ed5
编写于
11月 15, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #62861
上级
8383d424
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
43 addition
and
9 deletion
+43
-9
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
...vs/workbench/browser/parts/activitybar/activitybarPart.ts
+38
-9
src/vs/workbench/browser/parts/views/views.ts
src/vs/workbench/browser/parts/views/views.ts
+4
-0
src/vs/workbench/common/views.ts
src/vs/workbench/common/views.ts
+1
-0
未找到文件。
src/vs/workbench/browser/parts/activitybar/activitybarPart.ts
浏览文件 @
4fd60ed5
...
...
@@ -30,12 +30,18 @@ import { IExtensionService } from 'vs/workbench/services/extensions/common/exten
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
ToggleCompositePinnedAction
,
ICompositeBarColors
}
from
'
vs/workbench/browser/parts/compositeBarActions
'
;
import
{
ViewletDescriptor
}
from
'
vs/workbench/browser/viewlet
'
;
import
{
IViewsService
,
IViewContainersRegistry
,
Extensions
as
ViewContainerExtensions
}
from
'
vs/workbench/common/views
'
;
import
{
IContextKeyService
,
ContextKeyExpr
}
from
'
vs/platform/contextkey/common/contextkey
'
;
interface
IPlaceholderComposite
{
id
:
string
;
iconUrl
:
URI
;
}
interface
ISerializedPlaceholderComposite
extends
IPlaceholderComposite
{
whens
?:
string
[];
}
export
class
ActivitybarPart
extends
Part
{
private
static
readonly
ACTION_HEIGHT
=
50
;
...
...
@@ -59,7 +65,9 @@ export class ActivitybarPart extends Part {
@
IThemeService
themeService
:
IThemeService
,
@
ILifecycleService
private
lifecycleService
:
ILifecycleService
,
@
IStorageService
private
storageService
:
IStorageService
,
@
IExtensionService
private
extensionService
:
IExtensionService
@
IExtensionService
private
extensionService
:
IExtensionService
,
@
IViewsService
private
viewsService
:
IViewsService
,
@
IContextKeyService
contextKeyService
:
IContextKeyService
)
{
super
(
id
,
{
hasTitle
:
false
},
themeService
,
storageService
);
...
...
@@ -80,14 +88,20 @@ export class ActivitybarPart extends Part {
}));
const
previousState
=
this
.
storageService
.
get
(
ActivitybarPart
.
PLACEHOLDER_VIEWLETS
,
StorageScope
.
GLOBAL
,
'
[]
'
);
this
.
placeholderComposites
=
<
IPlaceholderComposite
[]
>
JSON
.
parse
(
previousState
);
this
.
placeholderComposites
.
forEach
((
s
)
=>
{
if
(
typeof
s
.
iconUrl
===
'
object
'
)
{
s
.
iconUrl
=
URI
.
revive
(
s
.
iconUrl
);
}
else
{
s
.
iconUrl
=
void
0
;
const
serializedPlaceholderComposites
=
<
ISerializedPlaceholderComposite
[]
>
JSON
.
parse
(
previousState
);
this
.
placeholderComposites
=
[];
for
(
const
{
id
,
iconUrl
,
whens
}
of
serializedPlaceholderComposites
)
{
if
(
whens
&&
whens
.
length
>
0
)
{
if
(
whens
.
every
(
when
=>
!
contextKeyService
.
contextMatchesRules
(
ContextKeyExpr
.
deserialize
(
when
))))
{
// Hidden by default
continue
;
}
}
});
this
.
placeholderComposites
.
push
({
id
,
iconUrl
:
typeof
iconUrl
===
'
object
'
?
URI
.
revive
(
iconUrl
)
:
void
0
});
}
this
.
registerListeners
();
this
.
updateCompositebar
();
...
...
@@ -332,7 +346,22 @@ export class ActivitybarPart extends Part {
}
protected
saveState
():
void
{
const
state
=
this
.
viewletService
.
getAllViewlets
().
map
(({
id
,
iconUrl
})
=>
({
id
,
iconUrl
}));
const
viewContainerRegistry
=
Registry
.
as
<
IViewContainersRegistry
>
(
ViewContainerExtensions
.
ViewContainersRegistry
);
const
state
:
ISerializedPlaceholderComposite
[]
=
[];
for
(
const
{
id
,
iconUrl
}
of
this
.
viewletService
.
getAllViewlets
())
{
if
(
iconUrl
)
{
const
viewContainer
=
viewContainerRegistry
.
get
(
id
);
const
whens
:
string
[]
=
[];
if
(
viewContainer
)
{
for
(
const
{
when
}
of
this
.
viewsService
.
getViewDescriptors
(
viewContainer
).
allViewDescriptors
)
{
if
(
when
)
{
whens
.
push
(
when
.
serialize
());
}
}
}
state
.
push
({
id
,
iconUrl
,
whens
});
}
}
this
.
storageService
.
store
(
ActivitybarPart
.
PLACEHOLDER_VIEWLETS
,
JSON
.
stringify
(
state
),
StorageScope
.
GLOBAL
);
super
.
saveState
();
...
...
src/vs/workbench/browser/parts/views/views.ts
浏览文件 @
4fd60ed5
...
...
@@ -80,6 +80,10 @@ class ViewDescriptorCollection extends Disposable implements IViewDescriptorColl
.
map
(
i
=>
i
.
viewDescriptor
);
}
get
allViewDescriptors
():
IViewDescriptor
[]
{
return
this
.
items
.
map
(
i
=>
i
.
viewDescriptor
);
}
constructor
(
container
:
ViewContainer
,
@
IContextKeyService
private
contextKeyService
:
IContextKeyService
...
...
src/vs/workbench/common/views.ts
浏览文件 @
4fd60ed5
...
...
@@ -119,6 +119,7 @@ export interface IViewDescriptor {
export
interface
IViewDescriptorCollection
{
readonly
onDidChangeActiveViews
:
Event
<
{
added
:
IViewDescriptor
[],
removed
:
IViewDescriptor
[]
}
>
;
readonly
activeViewDescriptors
:
IViewDescriptor
[];
readonly
allViewDescriptors
:
IViewDescriptor
[];
}
export
interface
IViewsRegistry
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录