Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
fb1c9a6c
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,发现更多精彩内容 >>
提交
fb1c9a6c
编写于
5月 06, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add method to move a group
上级
53792db2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
3 deletion
+54
-3
src/vs/workbench/common/editor/editorStacksModel.ts
src/vs/workbench/common/editor/editorStacksModel.ts
+24
-1
src/vs/workbench/test/common/editor/editorStacksModel.test.ts
...vs/workbench/test/common/editor/editorStacksModel.test.ts
+30
-2
未找到文件。
src/vs/workbench/common/editor/editorStacksModel.ts
浏览文件 @
fb1c9a6c
...
...
@@ -48,6 +48,7 @@ export interface IEditorStacksModel {
onGroupOpened
:
Event
<
IEditorGroup
>
;
onGroupClosed
:
Event
<
IEditorGroup
>
;
onGroupActivated
:
Event
<
IEditorGroup
>
;
onGroupMoved
:
Event
<
IEditorGroup
>
;
groups
:
IEditorGroup
[];
activeGroup
:
IEditorGroup
;
...
...
@@ -57,6 +58,8 @@ export interface IEditorStacksModel {
closeGroup
(
group
:
IEditorGroup
):
void
;
closeAllGroups
():
void
;
moveGroup
(
group
:
IEditorGroup
,
toIndex
:
number
);
setActive
(
group
:
IEditorGroup
):
void
;
}
...
...
@@ -68,7 +71,6 @@ export interface IEditorOpenOptions {
/// --- API-End ----
// Move Editor
// Move Group
export
enum
Direction
{
LEFT
,
...
...
@@ -494,6 +496,7 @@ export class EditorStacksModel implements IEditorStacksModel {
private
_onGroupOpened
:
Emitter
<
EditorGroup
>
;
private
_onGroupClosed
:
Emitter
<
EditorGroup
>
;
private
_onGroupMoved
:
Emitter
<
EditorGroup
>
;
private
_onGroupActivated
:
Emitter
<
EditorGroup
>
;
constructor
(
...
...
@@ -508,10 +511,12 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_onGroupOpened
=
new
Emitter
<
EditorGroup
>
();
this
.
_onGroupClosed
=
new
Emitter
<
EditorGroup
>
();
this
.
_onGroupActivated
=
new
Emitter
<
EditorGroup
>
();
this
.
_onGroupMoved
=
new
Emitter
<
EditorGroup
>
();
this
.
toDispose
.
push
(
this
.
_onGroupOpened
);
this
.
toDispose
.
push
(
this
.
_onGroupClosed
);
this
.
toDispose
.
push
(
this
.
_onGroupActivated
);
this
.
toDispose
.
push
(
this
.
_onGroupMoved
);
this
.
load
();
this
.
registerListeners
();
...
...
@@ -533,6 +538,10 @@ export class EditorStacksModel implements IEditorStacksModel {
return
this
.
_onGroupActivated
.
event
;
}
public
get
onGroupMoved
():
Event
<
EditorGroup
>
{
return
this
.
_onGroupMoved
.
event
;
}
public
get
groups
():
EditorGroup
[]
{
return
this
.
_groups
.
slice
(
0
);
}
...
...
@@ -614,6 +623,20 @@ export class EditorStacksModel implements IEditorStacksModel {
this
.
_onGroupActivated
.
fire
(
this
.
active
);
}
public
moveGroup
(
group
:
EditorGroup
,
toIndex
:
number
):
void
{
const
index
=
this
.
indexOf
(
group
);
if
(
index
<
0
)
{
return
;
}
// Move
this
.
_groups
.
splice
(
index
,
1
);
this
.
_groups
.
splice
(
toIndex
,
0
,
group
);
// Event
this
.
_onGroupMoved
.
fire
(
group
);
}
private
indexOf
(
group
:
EditorGroup
):
number
{
return
this
.
_groups
.
indexOf
(
group
);
}
...
...
src/vs/workbench/test/common/editor/editorStacksModel.test.ts
浏览文件 @
fb1c9a6c
...
...
@@ -31,6 +31,7 @@ interface ModelEvents {
opened
:
IEditorGroup
[];
activated
:
IEditorGroup
[];
closed
:
IEditorGroup
[];
moved
:
IEditorGroup
[];
}
interface
GroupEvents
{
...
...
@@ -45,12 +46,14 @@ function modelListener(model: IEditorStacksModel): ModelEvents {
const
modelEvents
=
{
opened
:
[],
activated
:
[],
closed
:
[]
closed
:
[],
moved
:
[]
};
model
.
onGroupOpened
(
g
=>
modelEvents
.
opened
.
push
(
g
));
model
.
onGroupActivated
(
g
=>
modelEvents
.
activated
.
push
(
g
));
model
.
onGroupClosed
(
g
=>
modelEvents
.
closed
.
push
(
g
));
model
.
onGroupMoved
(
g
=>
modelEvents
.
moved
.
push
(
g
));
return
modelEvents
;
}
...
...
@@ -131,7 +134,7 @@ suite('Editor Stacks Model', () => {
setOpenEditorDirection
(
Direction
.
RIGHT
);
});
test
(
'
Groups
'
,
function
()
{
test
(
'
Groups
- Basic
'
,
function
()
{
const
model
=
create
();
const
events
=
modelListener
(
model
);
...
...
@@ -193,6 +196,31 @@ suite('Editor Stacks Model', () => {
assert
.
equal
(
model
.
groups
.
length
,
0
);
});
test
(
'
Groups - Move Groups
'
,
function
()
{
const
model
=
create
();
const
events
=
modelListener
(
model
);
const
group1
=
model
.
openGroup
(
'
first
'
);
const
group2
=
model
.
openGroup
(
'
second
'
);
model
.
moveGroup
(
group1
,
1
);
assert
.
equal
(
events
.
moved
[
0
],
group1
);
assert
.
equal
(
model
.
groups
[
0
],
group2
);
assert
.
equal
(
model
.
groups
[
1
],
group1
);
model
.
moveGroup
(
group1
,
0
);
assert
.
equal
(
model
.
groups
[
0
],
group1
);
assert
.
equal
(
model
.
groups
[
1
],
group2
);
const
group3
=
model
.
openGroup
(
'
third
'
);
model
.
moveGroup
(
group1
,
2
);
assert
.
equal
(
model
.
groups
[
0
],
group2
);
assert
.
equal
(
model
.
groups
[
1
],
group3
);
assert
.
equal
(
model
.
groups
[
2
],
group1
);
});
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录