Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
c2da4060
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,发现更多精彩内容 >>
提交
c2da4060
编写于
10月 16, 2017
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Document current decoration behaviour
上级
76c68ae5
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
693 addition
and
4 deletion
+693
-4
src/vs/editor/test/common/model/modelDecorations.test.ts
src/vs/editor/test/common/model/modelDecorations.test.ts
+693
-4
未找到文件。
src/vs/editor/test/common/model/modelDecorations.test.ts
浏览文件 @
c2da4060
...
...
@@ -27,6 +27,7 @@ function modelHasDecorations(model: Model, decorations: ILightWeightDecoration2[
className
:
actualDecorations
[
i
].
options
.
className
});
}
modelDecorations
.
sort
((
a
,
b
)
=>
Range
.
compareRangesUsingStarts
(
a
.
range
,
b
.
range
));
assert
.
deepEqual
(
modelDecorations
,
decorations
,
'
Model decorations
'
);
}
...
...
@@ -168,13 +169,13 @@ suite('Editor Model - Model Decorations', () => {
var
decId1
=
addDecoration
(
thisModel
,
1
,
2
,
3
,
2
,
'
myType1
'
);
var
decId2
=
addDecoration
(
thisModel
,
1
,
2
,
3
,
1
,
'
myType2
'
);
modelHasDecorations
(
thisModel
,
[
{
range
:
new
Range
(
1
,
2
,
3
,
2
),
className
:
'
myType1
'
},
{
range
:
new
Range
(
1
,
2
,
3
,
1
),
className
:
'
myType2
'
},
{
range
:
new
Range
(
1
,
2
,
3
,
2
),
className
:
'
myType1
'
}
]);
thisModel
.
changeDecorations
((
changeAccessor
)
=>
{
...
...
@@ -352,6 +353,694 @@ suite('Editor Model - Model Decorations', () => {
});
});
suite
(
'
Decorations and editing
'
,
()
=>
{
function
_runTest
(
decRange
:
Range
,
stickiness
:
TrackedRangeStickiness
,
editRange
:
Range
,
editText
:
string
,
editForceMoveMarkers
:
boolean
,
expectedDecRange
:
Range
,
msg
:
string
):
void
{
let
model
=
Model
.
createFromString
([
'
My First Line
'
,
'
My Second Line
'
,
'
Third Line
'
].
join
(
'
\n
'
));
const
id
=
model
.
deltaDecorations
([],
[{
range
:
decRange
,
options
:
{
stickiness
:
stickiness
}
}])[
0
];
model
.
applyEdits
([{
range
:
editRange
,
text
:
editText
,
forceMoveMarkers
:
editForceMoveMarkers
,
identifier
:
null
}]);
const
actual
=
model
.
getDecorationRange
(
id
);
assert
.
deepEqual
(
actual
,
expectedDecRange
,
msg
);
model
.
dispose
();
}
function
runTest
(
decRange
:
Range
,
editRange
:
Range
,
editText
:
string
,
expectedDecRange
:
Range
[][]):
void
{
_runTest
(
decRange
,
0
,
editRange
,
editText
,
false
,
expectedDecRange
[
0
][
0
],
'
no-0-AlwaysGrowsWhenTypingAtEdges
'
);
_runTest
(
decRange
,
1
,
editRange
,
editText
,
false
,
expectedDecRange
[
0
][
1
],
'
no-1-NeverGrowsWhenTypingAtEdges
'
);
_runTest
(
decRange
,
2
,
editRange
,
editText
,
false
,
expectedDecRange
[
0
][
2
],
'
no-2-GrowsOnlyWhenTypingBefore
'
);
_runTest
(
decRange
,
3
,
editRange
,
editText
,
false
,
expectedDecRange
[
0
][
3
],
'
no-3-GrowsOnlyWhenTypingAfter
'
);
_runTest
(
decRange
,
0
,
editRange
,
editText
,
true
,
expectedDecRange
[
1
][
0
],
'
force-0-AlwaysGrowsWhenTypingAtEdges
'
);
_runTest
(
decRange
,
1
,
editRange
,
editText
,
true
,
expectedDecRange
[
1
][
1
],
'
force-1-NeverGrowsWhenTypingAtEdges
'
);
_runTest
(
decRange
,
2
,
editRange
,
editText
,
true
,
expectedDecRange
[
1
][
2
],
'
force-2-GrowsOnlyWhenTypingBefore
'
);
_runTest
(
decRange
,
3
,
editRange
,
editText
,
true
,
expectedDecRange
[
1
][
3
],
'
force-3-GrowsOnlyWhenTypingAfter
'
);
}
suite
(
'
insert
'
,
()
=>
{
suite
(
'
collapsed dec
'
,
()
=>
{
test
(
'
before
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
3
,
1
,
3
),
'
xx
'
,
[
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
]
);
});
test
(
'
equal
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
6
,
1
,
6
)],
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
]
);
});
test
(
'
after
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
5
,
1
,
5
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
});
suite
(
'
non-collapsed dec
'
,
()
=>
{
test
(
'
before
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
3
),
'
xx
'
,
[
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
]
);
});
test
(
'
start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
4
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
]
);
});
test
(
'
inside
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
5
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
]
);
});
test
(
'
end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
9
,
1
,
9
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
11
)],
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
]
);
});
test
(
'
after
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
10
,
1
,
10
),
'
xx
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
});
});
suite
(
'
delete
'
,
()
=>
{
suite
(
'
collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
1
,
1
,
3
),
''
,
[
[
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
)],
[
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
2
,
1
,
4
),
''
,
[
[
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
)],
[
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
),
new
Range
(
1
,
2
,
1
,
2
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
3
,
1
,
5
),
''
,
[
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
]
);
});
test
(
'
edit.start >= range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
6
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
5
,
1
,
7
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
});
suite
(
'
non-collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
1
,
1
,
3
),
''
,
[
[
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
)],
[
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
2
,
1
,
4
),
''
,
[
[
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
)],
[
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
),
new
Range
(
1
,
2
,
1
,
7
)],
]
);
});
test
(
'
edit.start < range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
5
),
''
,
[
[
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
)],
[
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
),
new
Range
(
1
,
3
,
1
,
7
)],
]
);
});
test
(
'
edit.start < range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
9
),
''
,
[
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
10
),
''
,
[
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
]
);
});
test
(
'
edit.start == range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
6
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
]
);
});
test
(
'
edit.start == range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start == range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
10
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
7
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
9
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
10
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
]
);
});
test
(
'
edit.start == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
9
,
1
,
11
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
10
,
1
,
11
),
''
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
});
});
suite
(
'
replace short
'
,
()
=>
{
suite
(
'
collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
1
,
1
,
3
),
'
c
'
,
[
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
2
,
1
,
4
),
'
c
'
,
[
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
[
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
),
new
Range
(
1
,
3
,
1
,
3
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
3
,
1
,
5
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start >= range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
6
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
5
,
1
,
7
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
});
suite
(
'
non-collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
1
,
1
,
3
),
'
c
'
,
[
[
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
)],
[
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
2
,
1
,
4
),
'
c
'
,
[
[
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
)],
[
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
),
new
Range
(
1
,
3
,
1
,
8
)],
]
);
});
test
(
'
edit.start < range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
5
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
]
);
});
test
(
'
edit.start < range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
9
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
10
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
test
(
'
edit.start == range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
6
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
[
new
Range
(
1
,
5
,
1
,
8
),
new
Range
(
1
,
5
,
1
,
8
),
new
Range
(
1
,
5
,
1
,
8
),
new
Range
(
1
,
5
,
1
,
8
)],
]
);
});
test
(
'
edit.start == range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
[
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
)],
]
);
});
test
(
'
edit.start == range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
10
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
),
new
Range
(
1
,
4
,
1
,
5
)],
[
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
),
new
Range
(
1
,
5
,
1
,
5
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
7
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
9
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
)],
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
10
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
)],
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
6
)],
]
);
});
test
(
'
edit.start == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
9
,
1
,
11
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
10
),
new
Range
(
1
,
4
,
1
,
10
),
new
Range
(
1
,
4
,
1
,
10
),
new
Range
(
1
,
4
,
1
,
10
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
10
,
1
,
11
),
'
c
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
});
});
suite
(
'
replace long
'
,
()
=>
{
suite
(
'
collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
1
,
1
,
3
),
'
cccc
'
,
[
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
2
,
1
,
4
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
6
,
1
,
6
)],
[
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
),
new
Range
(
1
,
6
,
1
,
6
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
3
,
1
,
5
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
)],
]
);
});
test
(
'
edit.start >= range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
6
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
5
,
1
,
7
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
[
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
),
new
Range
(
1
,
4
,
1
,
4
)],
]
);
});
});
suite
(
'
non-collapsed dec
'
,
()
=>
{
test
(
'
edit.end < range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
1
,
1
,
3
),
'
cccc
'
,
[
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
]
);
});
test
(
'
edit.end <= range.start
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
2
,
1
,
4
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
[
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
),
new
Range
(
1
,
6
,
1
,
11
)],
]
);
});
test
(
'
edit.start < range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
5
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
[
new
Range
(
1
,
7
,
1
,
11
),
new
Range
(
1
,
7
,
1
,
11
),
new
Range
(
1
,
7
,
1
,
11
),
new
Range
(
1
,
7
,
1
,
11
)],
]
);
});
test
(
'
edit.start < range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
9
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
[
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
)],
]
);
});
test
(
'
edit.start < range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
3
,
1
,
10
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
),
new
Range
(
1
,
4
,
1
,
7
)],
[
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
),
new
Range
(
1
,
7
,
1
,
7
)],
]
);
});
test
(
'
edit.start == range.start && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
6
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
[
new
Range
(
1
,
8
,
1
,
11
),
new
Range
(
1
,
8
,
1
,
11
),
new
Range
(
1
,
8
,
1
,
11
),
new
Range
(
1
,
8
,
1
,
11
)],
]
);
});
test
(
'
edit.start == range.start && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
[
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
)],
]
);
});
test
(
'
edit.start == range.start && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
10
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
),
new
Range
(
1
,
4
,
1
,
8
)],
[
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
),
new
Range
(
1
,
8
,
1
,
8
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end < range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
7
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
[
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
),
new
Range
(
1
,
4
,
1
,
11
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
9
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
test
(
'
edit.start > range.start && edit.start < range.end && edit.end > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
5
,
1
,
10
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
test
(
'
edit.start == range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
9
,
1
,
11
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
13
),
new
Range
(
1
,
4
,
1
,
13
),
new
Range
(
1
,
4
,
1
,
13
),
new
Range
(
1
,
4
,
1
,
13
)],
]
);
});
test
(
'
edit.start > range.end
'
,
()
=>
{
runTest
(
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
10
,
1
,
11
),
'
cccc
'
,
[
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
[
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
),
new
Range
(
1
,
4
,
1
,
9
)],
]
);
});
});
});
});
interface
ILightWeightDecoration
{
id
:
string
;
range
:
Range
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录