Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
1127800a
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,发现更多精彩内容 >>
未验证
提交
1127800a
编写于
11月 10, 2018
作者:
A
Alexandru Dima
提交者:
GitHub
11月 10, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #62667 from YisraelV/deleteCommand
fix #62112 - merge overlapping delete operations
上级
98b8fdfb
f6aef925
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
4 deletion
+27
-4
src/vs/editor/contrib/linesOperations/linesOperations.ts
src/vs/editor/contrib/linesOperations/linesOperations.ts
+6
-3
src/vs/editor/contrib/linesOperations/test/linesOperations.test.ts
...itor/contrib/linesOperations/test/linesOperations.test.ts
+21
-1
未找到文件。
src/vs/editor/contrib/linesOperations/linesOperations.ts
浏览文件 @
1127800a
...
...
@@ -270,7 +270,7 @@ interface IDeleteLinesOperation {
positionColumn
:
number
;
}
class
DeleteLinesAction
extends
EditorAction
{
export
class
DeleteLinesAction
extends
EditorAction
{
constructor
()
{
super
({
...
...
@@ -322,14 +322,17 @@ class DeleteLinesAction extends EditorAction {
// Sort delete operations
operations
.
sort
((
a
,
b
)
=>
{
if
(
a
.
startLineNumber
===
b
.
startLineNumber
)
{
return
a
.
endLineNumber
-
b
.
endLineNumber
;
}
return
a
.
startLineNumber
-
b
.
startLineNumber
;
});
// Merge delete operations
on consecutive lines
// Merge delete operations
which are adjacent or overlapping
let
mergedOperations
:
IDeleteLinesOperation
[]
=
[];
let
previousOperation
=
operations
[
0
];
for
(
let
i
=
1
;
i
<
operations
.
length
;
i
++
)
{
if
(
previousOperation
.
endLineNumber
+
1
==
=
operations
[
i
].
startLineNumber
)
{
if
(
previousOperation
.
endLineNumber
+
1
>
=
operations
[
i
].
startLineNumber
)
{
// Merge current operations into the previous one
previousOperation
.
endLineNumber
=
operations
[
i
].
endLineNumber
;
}
else
{
...
...
src/vs/editor/contrib/linesOperations/test/linesOperations.test.ts
浏览文件 @
1127800a
...
...
@@ -9,7 +9,7 @@ import { Position } from 'vs/editor/common/core/position';
import
{
Selection
}
from
'
vs/editor/common/core/selection
'
;
import
{
Handler
}
from
'
vs/editor/common/editorCommon
'
;
import
{
ITextModel
}
from
'
vs/editor/common/model
'
;
import
{
DeleteAllLeftAction
,
DeleteAllRightAction
,
IndentLinesAction
,
InsertLineAfterAction
,
InsertLineBeforeAction
,
JoinLinesAction
,
LowerCaseAction
,
SortLinesAscendingAction
,
SortLinesDescendingAction
,
TransposeAction
,
UpperCaseAction
}
from
'
vs/editor/contrib/linesOperations/linesOperations
'
;
import
{
DeleteAllLeftAction
,
DeleteAllRightAction
,
IndentLinesAction
,
InsertLineAfterAction
,
InsertLineBeforeAction
,
JoinLinesAction
,
LowerCaseAction
,
SortLinesAscendingAction
,
SortLinesDescendingAction
,
TransposeAction
,
UpperCaseAction
,
DeleteLinesAction
}
from
'
vs/editor/contrib/linesOperations/linesOperations
'
;
import
{
withTestCodeEditor
}
from
'
vs/editor/test/browser/testCodeEditor
'
;
import
{
createTextModel
}
from
'
vs/editor/test/common/editorTestUtils
'
;
...
...
@@ -879,4 +879,24 @@ suite('Editor Contrib - Line Operations', () => {
model
.
dispose
();
});
test
(
'
issue #62112: Delete line does not work properly when multiple cursors are on line
'
,
()
=>
{
const
TEXT
=
[
'
a
'
,
'
foo boo
'
,
'
too
'
,
'
c
'
,
];
withTestCodeEditor
(
TEXT
,
{},
(
editor
,
cursor
)
=>
{
editor
.
setSelections
([
new
Selection
(
2
,
4
,
2
,
4
),
new
Selection
(
2
,
8
,
2
,
8
),
new
Selection
(
3
,
4
,
3
,
4
),
]);
const
deleteLinesAction
=
new
DeleteLinesAction
();
deleteLinesAction
.
run
(
null
,
editor
);
assert
.
equal
(
editor
.
getValue
(),
'
a
\n
c
'
);
});
});
});
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录