Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
6ef2ee36
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,发现更多精彩内容 >>
提交
6ef2ee36
编写于
5月 09, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
groups - introduce identifier to support maps
上级
9f2101f7
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
51 addition
and
1 deletion
+51
-1
src/vs/workbench/common/editor/editorStacksModel.ts
src/vs/workbench/common/editor/editorStacksModel.ts
+26
-1
src/vs/workbench/test/common/editor/editorStacksModel.test.ts
...vs/workbench/test/common/editor/editorStacksModel.test.ts
+25
-0
未找到文件。
src/vs/workbench/common/editor/editorStacksModel.ts
浏览文件 @
6ef2ee36
...
...
@@ -16,6 +16,7 @@ import {Registry} from 'vs/platform/platform';
export
interface
IEditorGroup
{
id
:
GroupIdentifier
;
label
:
string
;
count
:
number
;
activeEditor
:
EditorInput
;
...
...
@@ -53,16 +54,20 @@ export interface IEditorStacksModel {
groups
:
IEditorGroup
[];
activeGroup
:
IEditorGroup
;
getGroup
(
id
:
GroupIdentifier
):
IEditorGroup
;
openGroup
(
label
:
string
):
IEditorGroup
;
closeGroup
(
group
:
IEditorGroup
):
void
;
closeAllGroups
():
void
;
moveGroup
(
group
:
IEditorGroup
,
toIndex
:
number
);
moveGroup
(
group
:
IEditorGroup
,
toIndex
:
number
)
:
void
;
setActive
(
group
:
IEditorGroup
):
void
;
}
export
type
GroupIdentifier
=
number
;
export
interface
IEditorOpenOptions
{
pinned
?:
boolean
;
active
?:
boolean
;
...
...
@@ -92,6 +97,10 @@ export interface ISerializedEditorGroup {
}
export
class
EditorGroup
implements
IEditorGroup
{
private
static
IDS
=
0
;
private
_id
:
GroupIdentifier
;
private
_label
:
string
;
private
editors
:
EditorInput
[];
...
...
@@ -113,6 +122,8 @@ export class EditorGroup implements IEditorGroup {
arg1
:
string
|
ISerializedEditorGroup
,
@
IInstantiationService
private
instantiationService
:
IInstantiationService
)
{
this
.
_id
=
EditorGroup
.
IDS
++
;
this
.
editors
=
[];
this
.
mru
=
[];
this
.
toDispose
=
[];
...
...
@@ -133,6 +144,10 @@ export class EditorGroup implements IEditorGroup {
this
.
toDispose
.
push
(
this
.
_onEditorActivated
,
this
.
_onEditorOpened
,
this
.
_onEditorClosed
,
this
.
_onEditorMoved
,
this
.
_onEditorPinned
,
this
.
_onEditorUnpinned
);
}
public
get
id
():
GroupIdentifier
{
return
this
.
_id
;
}
public
get
label
():
string
{
return
this
.
_label
;
}
...
...
@@ -520,6 +535,7 @@ export class EditorStacksModel implements IEditorStacksModel {
private
toDispose
:
IDisposable
[];
private
_groups
:
EditorGroup
[];
private
groupToIdentifier
:
{
[
id
:
number
]:
EditorGroup
};
private
active
:
EditorGroup
;
private
_onGroupOpened
:
Emitter
<
EditorGroup
>
;
...
...
@@ -535,6 +551,7 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
toDispose
=
[];
this
.
_groups
=
[];
this
.
groupToIdentifier
=
Object
.
create
(
null
);
this
.
_onGroupOpened
=
new
Emitter
<
EditorGroup
>
();
this
.
_onGroupClosed
=
new
Emitter
<
EditorGroup
>
();
...
...
@@ -575,6 +592,10 @@ export class EditorStacksModel implements IEditorStacksModel {
return
this
.
active
;
}
public
getGroup
(
id
:
GroupIdentifier
):
EditorGroup
{
return
this
.
groupToIdentifier
[
id
];
}
public
openGroup
(
label
:
string
):
EditorGroup
{
const
group
=
this
.
instantiationService
.
createInstance
(
EditorGroup
,
label
);
...
...
@@ -588,6 +609,8 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_groups
.
splice
(
this
.
indexOf
(
this
.
active
)
+
1
,
0
,
group
);
}
this
.
groupToIdentifier
[
group
.
id
]
=
group
;
// Event
this
.
_onGroupOpened
.
fire
(
group
);
...
...
@@ -630,6 +653,7 @@ export class EditorStacksModel implements IEditorStacksModel {
// Splice from groups
this
.
_groups
.
splice
(
index
,
1
);
this
.
groupToIdentifier
[
group
.
id
]
=
void
0
;
// Event
this
.
_onGroupClosed
.
fire
(
group
);
...
...
@@ -714,6 +738,7 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_groups
=
serialized
.
groups
.
map
(
s
=>
this
.
instantiationService
.
createInstance
(
EditorGroup
,
s
));
this
.
active
=
this
.
_groups
[
serialized
.
active
];
this
.
_groups
.
forEach
(
g
=>
this
.
groupToIdentifier
[
g
.
id
]
=
g
);
}
}
...
...
src/vs/workbench/test/common/editor/editorStacksModel.test.ts
浏览文件 @
6ef2ee36
...
...
@@ -224,6 +224,31 @@ suite('Editor Stacks Model', () => {
assert
.
equal
(
model
.
groups
[
2
],
group1
);
});
test
(
'
Groups - Group Identifiers
'
,
function
()
{
const
model
=
create
();
const
group1
=
model
.
openGroup
(
'
first
'
);
const
group2
=
model
.
openGroup
(
'
second
'
);
const
group3
=
model
.
openGroup
(
'
third
'
);
assert
.
equal
(
model
.
getGroup
(
group1
.
id
),
group1
);
assert
.
equal
(
model
.
getGroup
(
group2
.
id
),
group2
);
assert
.
equal
(
model
.
getGroup
(
group3
.
id
),
group3
);
model
.
closeGroup
(
group2
);
assert
.
equal
(
model
.
getGroup
(
group2
.
id
),
null
);
model
.
moveGroup
(
group1
,
1
);
assert
.
equal
(
model
.
getGroup
(
group1
.
id
),
group1
);
assert
.
equal
(
model
.
getGroup
(
group3
.
id
),
group3
);
model
.
closeAllGroups
();
assert
.
equal
(
model
.
getGroup
(
group1
.
id
),
null
);
assert
.
equal
(
model
.
getGroup
(
group3
.
id
),
null
);
});
test
(
'
Stack - One Editor
'
,
function
()
{
const
model
=
create
();
const
group
=
model
.
openGroup
(
'
group
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录