Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3b108af8
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,发现更多精彩内容 >>
提交
3b108af8
编写于
2月 25, 2016
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixes #3261: [folding] Please do not call setHiddenAreas on each model change!
上级
00035055
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
27 addition
and
4 deletion
+27
-4
src/vs/editor/contrib/folding/browser/folding.ts
src/vs/editor/contrib/folding/browser/folding.ts
+27
-4
未找到文件。
src/vs/editor/contrib/folding/browser/folding.ts
浏览文件 @
3b108af8
...
...
@@ -41,6 +41,14 @@ class CollapsibleRegion {
return
this
.
_indent
;
}
public
get
startLineNumber
():
number
{
return
this
.
_lastRange
?
this
.
_lastRange
.
startLineNumber
:
void
0
;
}
public
get
endLineNumber
():
number
{
return
this
.
_lastRange
?
this
.
_lastRange
.
endLineNumber
:
void
0
;
}
public
setCollapsed
(
isCollaped
:
boolean
,
changeAccessor
:
editorCommon
.
IModelDecorationsChangeAccessor
):
void
{
this
.
_isCollapsed
=
isCollaped
;
if
(
this
.
decorationIds
.
length
>
0
)
{
...
...
@@ -204,6 +212,7 @@ export class FoldingController implements editorCommon.IEditorContribution {
if
(
!
model
)
{
return
;
}
let
updateHiddenRegions
=
false
;
regions
=
limitByIndent
(
regions
,
10000
).
sort
((
r1
,
r2
)
=>
r1
.
startLineNumber
-
r2
.
startLineNumber
);
this
.
editor
.
changeDecorations
(
changeAccessor
=>
{
...
...
@@ -215,19 +224,26 @@ export class FoldingController implements editorCommon.IEditorContribution {
let
dec
=
this
.
decorations
[
i
];
let
decRange
=
dec
.
getDecorationRange
(
model
);
if
(
!
decRange
)
{
updateHiddenRegions
=
updateHiddenRegions
||
dec
.
isCollapsed
;
dec
.
dispose
(
changeAccessor
);
i
++
;
}
else
{
while
(
k
<
regions
.
length
&&
decRange
.
startLineNumber
>
regions
[
k
].
startLineNumber
)
{
newDecorations
.
push
(
new
CollapsibleRegion
(
regions
[
k
],
model
,
changeAccessor
));
let
region
=
regions
[
k
];
updateHiddenRegions
=
updateHiddenRegions
||
region
.
isCollapsed
;
newDecorations
.
push
(
new
CollapsibleRegion
(
region
,
model
,
changeAccessor
));
k
++
;
}
if
(
k
<
regions
.
length
)
{
let
currRange
=
regions
[
k
];
if
(
decRange
.
startLineNumber
<
currRange
.
startLineNumber
)
{
updateHiddenRegions
=
updateHiddenRegions
||
dec
.
isCollapsed
;
dec
.
dispose
(
changeAccessor
);
i
++
;
}
else
if
(
decRange
.
startLineNumber
===
currRange
.
startLineNumber
)
{
if
(
dec
.
isCollapsed
&&
(
dec
.
startLineNumber
!==
currRange
.
startLineNumber
||
dec
.
endLineNumber
!==
currRange
.
endLineNumber
))
{
updateHiddenRegions
=
true
;
}
currRange
.
isCollapsed
=
dec
.
isCollapsed
;
// preserve collapse state
dec
.
update
(
currRange
,
model
,
changeAccessor
);
newDecorations
.
push
(
dec
);
...
...
@@ -238,18 +254,25 @@ export class FoldingController implements editorCommon.IEditorContribution {
}
}
while
(
i
<
this
.
decorations
.
length
)
{
this
.
decorations
[
i
].
dispose
(
changeAccessor
);
let
dec
=
this
.
decorations
[
i
];
updateHiddenRegions
=
updateHiddenRegions
||
dec
.
isCollapsed
;
dec
.
dispose
(
changeAccessor
);
i
++
;
}
while
(
k
<
regions
.
length
)
{
newDecorations
.
push
(
new
CollapsibleRegion
(
regions
[
k
],
model
,
changeAccessor
));
let
region
=
regions
[
k
];
updateHiddenRegions
=
updateHiddenRegions
||
region
.
isCollapsed
;
newDecorations
.
push
(
new
CollapsibleRegion
(
region
,
model
,
changeAccessor
));
k
++
;
}
this
.
decorations
=
newDecorations
;
});
if
(
updateHiddenRegions
)
{
this
.
updateHiddenAreas
();
}
}
private
onModelChanged
():
void
{
this
.
cleanState
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录