Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
21b55c6e
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,发现更多精彩内容 >>
提交
21b55c6e
编写于
6月 06, 2019
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
status -
💄
上级
a30ebb71
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
41 addition
and
50 deletion
+41
-50
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
+41
-50
未找到文件。
src/vs/workbench/browser/parts/statusbar/statusbarPart.ts
浏览文件 @
21b55c6e
...
...
@@ -34,7 +34,6 @@ import { StandardMouseEvent } from 'vs/base/browser/mouseEvent';
import
{
ToggleStatusbarVisibilityAction
}
from
'
vs/workbench/browser/actions/layoutActions
'
;
import
{
Separator
}
from
'
vs/base/browser/ui/actionbar/actionbar
'
;
import
{
values
}
from
'
vs/base/common/map
'
;
import
{
Event
,
Emitter
}
from
'
vs/base/common/event
'
;
interface
IPendingStatusbarEntry
{
id
:
string
;
...
...
@@ -60,12 +59,6 @@ class StatusbarViewModel extends Disposable {
private
readonly
_entries
:
IStatusbarViewModelEntry
[]
=
[];
get
entries
():
IStatusbarViewModelEntry
[]
{
return
this
.
_entries
;
}
private
readonly
_onDidEntryVisibilityChange
:
Emitter
<
string
>
=
this
.
_register
(
new
Emitter
());
get
onDidEntryVisibilityChange
():
Event
<
string
>
{
return
this
.
_onDidEntryVisibilityChange
.
event
;
}
private
readonly
_onDidEntriesChange
:
Emitter
<
void
>
=
this
.
_register
(
new
Emitter
());
get
onDidEntriesChange
():
Event
<
void
>
{
return
this
.
_onDidEntriesChange
.
event
;
}
private
hidden
:
Set
<
string
>
;
constructor
(
private
storageService
:
IStorageService
)
{
...
...
@@ -143,8 +136,8 @@ class StatusbarViewModel extends Disposable {
// Sort according to priority
this
.
sort
();
//
Events
this
.
_onDidEntriesChange
.
fire
();
//
Mark first/last visible entry
this
.
markFirstLastVisibleEntry
();
return
toDisposable
(()
=>
this
.
remove
(
entry
));
}
...
...
@@ -154,8 +147,8 @@ class StatusbarViewModel extends Disposable {
if
(
index
>=
0
)
{
this
.
_entries
.
splice
(
index
,
1
);
//
Events
this
.
_onDidEntriesChange
.
fire
();
//
Mark first/last visible entry
this
.
markFirstLastVisibleEntry
();
}
}
...
...
@@ -226,8 +219,8 @@ class StatusbarViewModel extends Disposable {
show
(
entry
.
container
);
}
//
Events
this
.
_onDidEntryVisibilityChange
.
fire
(
entry
.
id
);
//
Mark first/last visible entry
this
.
markFirstLastVisibleEntry
(
);
}
}
...
...
@@ -256,6 +249,41 @@ class StatusbarViewModel extends Disposable {
return
0
;
});
}
private
markFirstLastVisibleEntry
():
void
{
this
.
doMarkFirstLastVisibleStatusbarItem
(
this
.
getEntries
(
StatusbarAlignment
.
LEFT
));
this
.
doMarkFirstLastVisibleStatusbarItem
(
this
.
getEntries
(
StatusbarAlignment
.
RIGHT
));
}
private
doMarkFirstLastVisibleStatusbarItem
(
entries
:
IStatusbarViewModelEntry
[]):
void
{
let
firstVisibleItem
:
IStatusbarViewModelEntry
|
undefined
;
let
lastVisibleItem
:
IStatusbarViewModelEntry
|
undefined
;
for
(
const
entry
of
entries
)
{
// Clear previous first
removeClasses
(
entry
.
container
,
'
first-visible-item
'
,
'
last-visible-item
'
);
const
isVisible
=
!
this
.
isHidden
(
entry
.
id
);
if
(
isVisible
)
{
if
(
!
firstVisibleItem
)
{
firstVisibleItem
=
entry
;
}
lastVisibleItem
=
entry
;
}
}
// Mark: first visible item
if
(
firstVisibleItem
)
{
addClass
(
firstVisibleItem
.
container
,
'
first-visible-item
'
);
}
// Mark: last visible item
if
(
lastVisibleItem
)
{
addClass
(
lastVisibleItem
.
container
,
'
last-visible-item
'
);
}
}
}
class
ToggleStatusbarEntryVisibilityAction
extends
Action
{
...
...
@@ -326,8 +354,6 @@ export class StatusbarPart extends Part implements IStatusbarService {
private
registerListeners
():
void
{
this
.
_register
(
this
.
contextService
.
onDidChangeWorkbenchState
(()
=>
this
.
updateStyles
()));
this
.
_register
(
this
.
viewModel
.
onDidEntryVisibilityChange
(()
=>
this
.
markFirstLastVisibleStatusbarItem
()));
this
.
_register
(
this
.
viewModel
.
onDidEntriesChange
(()
=>
this
.
markFirstLastVisibleStatusbarItem
()));
}
addEntry
(
entry
:
IStatusbarEntry
,
id
:
string
,
name
:
string
,
alignment
:
StatusbarAlignment
,
priority
:
number
=
0
):
IStatusbarEntryAccessor
{
...
...
@@ -484,41 +510,6 @@ export class StatusbarPart extends Part implements IStatusbarService {
}
}
private
markFirstLastVisibleStatusbarItem
():
void
{
this
.
doMarkFirstLastVisibleStatusbarItem
(
this
.
viewModel
.
getEntries
(
StatusbarAlignment
.
LEFT
));
this
.
doMarkFirstLastVisibleStatusbarItem
(
this
.
viewModel
.
getEntries
(
StatusbarAlignment
.
RIGHT
));
}
private
doMarkFirstLastVisibleStatusbarItem
(
entries
:
IStatusbarViewModelEntry
[]):
void
{
let
firstVisibleItem
:
IStatusbarViewModelEntry
|
undefined
;
let
lastVisibleItem
:
IStatusbarViewModelEntry
|
undefined
;
for
(
const
entry
of
entries
)
{
// Clear previous first
removeClasses
(
entry
.
container
,
'
first-visible-item
'
,
'
last-visible-item
'
);
const
isVisible
=
!
this
.
viewModel
.
isHidden
(
entry
.
id
);
if
(
isVisible
)
{
if
(
!
firstVisibleItem
)
{
firstVisibleItem
=
entry
;
}
lastVisibleItem
=
entry
;
}
}
// Mark: first visible item
if
(
firstVisibleItem
)
{
addClass
(
firstVisibleItem
.
container
,
'
first-visible-item
'
);
}
// Mark: last visible item
if
(
lastVisibleItem
)
{
addClass
(
lastVisibleItem
.
container
,
'
last-visible-item
'
);
}
}
private
showContextMenu
(
e
:
MouseEvent
):
void
{
EventHelper
.
stop
(
e
,
true
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录