Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
40635574
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
40635574
编写于
2月 11, 2016
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[folding] code beautification
上级
bcd46bbf
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
56 addition
and
56 deletion
+56
-56
src/vs/editor/contrib/folding/browser/folding.ts
src/vs/editor/contrib/folding/browser/folding.ts
+47
-47
src/vs/editor/contrib/folding/common/foldingRange.ts
src/vs/editor/contrib/folding/common/foldingRange.ts
+1
-1
src/vs/editor/contrib/folding/common/indentFoldStrategy.ts
src/vs/editor/contrib/folding/common/indentFoldStrategy.ts
+8
-8
未找到文件。
src/vs/editor/contrib/folding/browser/folding.ts
浏览文件 @
40635574
...
...
@@ -23,13 +23,13 @@ import {EditorAction, Behaviour} from 'vs/editor/common/editorAction';
import
nls
=
require
(
'
vs/nls
'
);
let
log
=
function
(
msg
:
string
)
{
console
.
log
(
msg
);
//
console.log(msg);
};
class
Collaps
a
bleRegion
{
class
Collaps
i
bleRegion
{
private
decorationIds
:
string
[];
private
_isCollapsed
:
boolean
;
private
_isCollapsed
:
boolean
;
private
_lastRange
:
IFoldingRange
;
...
...
@@ -39,25 +39,25 @@ class CollapsableRegion {
this
.
update
(
range
,
model
,
changeAccessor
);
}
public
get
isCollapsed
()
:
boolean
{
public
get
isCollapsed
():
boolean
{
return
this
.
_isCollapsed
;
}
public
setCollapsed
(
isCollaped
:
boolean
,
changeAccessor
:
EditorCommon
.
IModelDecorationsChangeAccessor
)
:
void
{
public
setCollapsed
(
isCollaped
:
boolean
,
changeAccessor
:
EditorCommon
.
IModelDecorationsChangeAccessor
):
void
{
this
.
_isCollapsed
=
isCollaped
;
if
(
this
.
decorationIds
.
length
>
0
)
{
changeAccessor
.
changeDecorationOptions
(
this
.
decorationIds
[
0
],
this
.
getVisualDecorationOptions
());
}
}
public
getDecorationRange
(
model
:
EditorCommon
.
IModel
)
:
EditorCommon
.
IEditorRange
{
public
getDecorationRange
(
model
:
EditorCommon
.
IModel
):
EditorCommon
.
IEditorRange
{
if
(
this
.
decorationIds
.
length
>
0
)
{
return
model
.
getDecorationRange
(
this
.
decorationIds
[
1
]);
}
return
null
;
}
private
getVisualDecorationOptions
():
EditorCommon
.
IModelDecorationOptions
{
private
getVisualDecorationOptions
():
EditorCommon
.
IModelDecorationOptions
{
if
(
this
.
_isCollapsed
)
{
return
{
stickiness
:
EditorCommon
.
TrackedRangeStickiness
.
GrowsOnlyWhenTypingBefore
,
...
...
@@ -72,7 +72,7 @@ class CollapsableRegion {
}
}
private
getRangeDecorationOptions
():
EditorCommon
.
IModelDecorationOptions
{
private
getRangeDecorationOptions
():
EditorCommon
.
IModelDecorationOptions
{
return
{
stickiness
:
EditorCommon
.
TrackedRangeStickiness
.
GrowsOnlyWhenTypingBefore
}
...
...
@@ -83,8 +83,8 @@ class CollapsableRegion {
let
newDecorations
:
EditorCommon
.
IModelDeltaDecoration
[]
=
[];
var
maxColumn
=
model
.
getLineMaxColumn
(
newRange
.
startLineNumber
);
var
visualRng
=
{
let
maxColumn
=
model
.
getLineMaxColumn
(
newRange
.
startLineNumber
);
let
visualRng
=
{
startLineNumber
:
newRange
.
startLineNumber
,
startColumn
:
maxColumn
-
1
,
endLineNumber
:
newRange
.
startLineNumber
,
...
...
@@ -92,7 +92,7 @@ class CollapsableRegion {
};
newDecorations
.
push
({
range
:
visualRng
,
options
:
this
.
getVisualDecorationOptions
()
});
var
colRng
=
{
let
colRng
=
{
startLineNumber
:
newRange
.
startLineNumber
,
startColumn
:
1
,
endLineNumber
:
newRange
.
endLineNumber
,
...
...
@@ -110,7 +110,7 @@ class CollapsableRegion {
}
public
toString
():
string
{
var
str
=
this
.
isCollapsed
?
'
collapsed
'
:
'
expanded
'
;
let
str
=
this
.
isCollapsed
?
'
collapsed
'
:
'
expanded
'
;
if
(
this
.
_lastRange
)
{
str
+=
(
this
.
_lastRange
.
startLineNumber
+
'
/
'
+
this
.
_lastRange
.
endLineNumber
);
}
else
{
...
...
@@ -129,14 +129,14 @@ export class FoldingController implements EditorCommon.IEditorContribution {
return
<
FoldingController
>
editor
.
getContribution
(
FoldingController
.
ID
);
}
private
editor
:
ICodeEditor
;
private
globalToDispose
:
IDisposable
[];
private
editor
:
ICodeEditor
;
private
globalToDispose
:
IDisposable
[];
private
computeToken
:
number
;
private
updateScheduler
:
RunOnceScheduler
;
private
localToDispose
:
IDisposable
[];
private
computeToken
:
number
;
private
updateScheduler
:
RunOnceScheduler
;
private
localToDispose
:
IDisposable
[];
private
decorations
:
Collapsa
bleRegion
[];
private
decorations
:
Collapsi
bleRegion
[];
constructor
(
editor
:
ICodeEditor
,
@
INullService
nullService
)
{
this
.
editor
=
editor
;
...
...
@@ -177,15 +177,15 @@ export class FoldingController implements EditorCommon.IEditorContribution {
return
;
}
var
model
=
this
.
editor
.
getModel
();
let
model
=
this
.
editor
.
getModel
();
if
(
!
model
)
{
return
;
}
this
.
updateScheduler
=
new
RunOnceScheduler
(()
=>
{
var
myToken
=
(
++
this
.
computeToken
);
let
myToken
=
(
++
this
.
computeToken
);
this
.
computeCollaps
a
bleRegions
().
then
(
regions
=>
{
this
.
computeCollaps
i
bleRegions
().
then
(
regions
=>
{
if
(
myToken
!==
this
.
computeToken
)
{
// A new request was made in the meantime or the model was changed
return
;
...
...
@@ -195,12 +195,12 @@ export class FoldingController implements EditorCommon.IEditorContribution {
this
.
editor
.
changeDecorations
(
changeAccessor
=>
{
let
newDecorations
:
Collaps
a
bleRegion
[]
=
[];
let
newDecorations
:
Collaps
i
bleRegion
[]
=
[];
let
k
=
0
,
i
=
0
;
while
(
i
<
this
.
decorations
.
length
&&
k
<
regions
.
length
)
{
let
dec
=
this
.
decorations
[
i
];
var
decRange
=
dec
.
getDecorationRange
(
model
);
let
decRange
=
dec
.
getDecorationRange
(
model
);
if
(
!
decRange
)
{
log
(
'
range no longer valid, was
'
+
dec
.
toString
());
dec
.
dispose
(
changeAccessor
);
...
...
@@ -208,7 +208,7 @@ export class FoldingController implements EditorCommon.IEditorContribution {
}
else
{
while
(
k
<
regions
.
length
&&
decRange
.
startLineNumber
>
regions
[
k
].
startLineNumber
)
{
log
(
'
new range
'
+
rangeToString
(
regions
[
k
]));
newDecorations
.
push
(
new
Collaps
a
bleRegion
(
regions
[
k
],
model
,
changeAccessor
,
false
));
newDecorations
.
push
(
new
Collaps
i
bleRegion
(
regions
[
k
],
model
,
changeAccessor
,
false
));
k
++
;
}
if
(
k
<
regions
.
length
)
{
...
...
@@ -233,7 +233,7 @@ export class FoldingController implements EditorCommon.IEditorContribution {
}
while
(
k
<
regions
.
length
)
{
log
(
'
new range
'
+
rangeToString
(
regions
[
k
]));
newDecorations
.
push
(
new
Collaps
a
bleRegion
(
regions
[
k
],
model
,
changeAccessor
,
false
));
newDecorations
.
push
(
new
Collaps
i
bleRegion
(
regions
[
k
],
model
,
changeAccessor
,
false
));
k
++
;
}
this
.
decorations
=
newDecorations
;
...
...
@@ -256,9 +256,9 @@ export class FoldingController implements EditorCommon.IEditorContribution {
this
.
updateScheduler
.
schedule
();
}
private
computeCollaps
ableRegions
()
:
TPromise
<
IFoldingRange
[]
>
{
private
computeCollaps
ibleRegions
()
:
TPromise
<
IFoldingRange
[]
>
{
let
tabSize
=
this
.
editor
.
getIndentationOptions
().
tabSize
;
var
model
=
this
.
editor
.
getModel
();
let
model
=
this
.
editor
.
getModel
();
if
(
!
model
)
{
return
TPromise
.
as
([]);
}
...
...
@@ -272,7 +272,7 @@ export class FoldingController implements EditorCommon.IEditorContribution {
if
(
this
.
decorations
.
length
===
0
)
{
return
;
}
var
range
=
e
.
target
.
range
;
let
range
=
e
.
target
.
range
;
if
(
!
range
||
!
range
.
isEmpty
)
{
return
;
}
...
...
@@ -280,9 +280,9 @@ export class FoldingController implements EditorCommon.IEditorContribution {
return
;
}
var
model
=
this
.
editor
.
getModel
();
let
model
=
this
.
editor
.
getModel
();
var
toggleClicked
=
false
;
let
toggleClicked
=
false
;
switch
(
e
.
target
.
type
)
{
case
EditorCommon
.
MouseTargetType
.
GUTTER_LINE_DECORATIONS
:
toggleClicked
=
true
;
...
...
@@ -296,12 +296,12 @@ export class FoldingController implements EditorCommon.IEditorContribution {
return
;
}
var
hasChanges
=
false
;
let
hasChanges
=
false
;
this
.
editor
.
changeDecorations
(
changeAccessor
=>
{
for
(
var
i
=
0
;
i
<
this
.
decorations
.
length
;
i
++
)
{
var
dec
=
this
.
decorations
[
i
];
var
decRange
=
dec
.
getDecorationRange
(
model
);
for
(
let
i
=
0
;
i
<
this
.
decorations
.
length
;
i
++
)
{
let
dec
=
this
.
decorations
[
i
];
let
decRange
=
dec
.
getDecorationRange
(
model
);
if
(
decRange
.
startLineNumber
===
range
.
startLineNumber
)
{
if
(
toggleClicked
||
dec
.
isCollapsed
)
{
dec
.
setCollapsed
(
!
dec
.
isCollapsed
,
changeAccessor
);
...
...
@@ -319,10 +319,10 @@ export class FoldingController implements EditorCommon.IEditorContribution {
}
private
updateHiddenAreas
():
void
{
var
model
=
this
.
editor
.
getModel
();
var
hiddenAreas
:
EditorCommon
.
IRange
[]
=
[];
let
model
=
this
.
editor
.
getModel
();
let
hiddenAreas
:
EditorCommon
.
IRange
[]
=
[];
this
.
decorations
.
filter
(
dec
=>
dec
.
isCollapsed
).
forEach
(
dec
=>
{
var
decRange
=
dec
.
getDecorationRange
(
model
);
let
decRange
=
dec
.
getDecorationRange
(
model
);
hiddenAreas
.
push
({
startLineNumber
:
decRange
.
startLineNumber
+
1
,
startColumn
:
1
,
...
...
@@ -333,13 +333,13 @@ export class FoldingController implements EditorCommon.IEditorContribution {
this
.
editor
.
setHiddenAreas
(
hiddenAreas
);
}
private
findRegions
(
lineNumber
:
number
,
collapsed
:
boolean
)
:
Collapsa
bleRegion
[]
{
var
model
=
this
.
editor
.
getModel
();
private
findRegions
(
lineNumber
:
number
,
collapsed
:
boolean
)
:
Collapsi
bleRegion
[]
{
let
model
=
this
.
editor
.
getModel
();
return
this
.
decorations
.
filter
(
dec
=>
{
if
(
dec
.
isCollapsed
!==
collapsed
)
{
return
false
;
}
var
decRange
=
dec
.
getDecorationRange
(
model
);
let
decRange
=
dec
.
getDecorationRange
(
model
);
return
decRange
&&
decRange
.
startLineNumber
<=
lineNumber
&&
lineNumber
<
decRange
.
endLineNumber
;
});
}
...
...
@@ -381,11 +381,11 @@ abstract class FoldingAction extends EditorAction {
super
(
descriptor
,
editor
);
}
abstract
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
;
abstract
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
):
void
;
public
run
():
TPromise
<
boolean
>
{
var
foldingController
=
FoldingController
.
getFoldingController
(
this
.
editor
);
var
selection
=
this
.
editor
.
getSelection
();
let
foldingController
=
FoldingController
.
getFoldingController
(
this
.
editor
);
let
selection
=
this
.
editor
.
getSelection
();
if
(
selection
&&
selection
.
isEmpty
)
{
this
.
invoke
(
foldingController
,
selection
.
startLineNumber
);
}
...
...
@@ -397,7 +397,7 @@ abstract class FoldingAction extends EditorAction {
class
UnfoldAction
extends
FoldingAction
{
public
static
ID
=
'
editor.fold
'
;
public
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
foldingController
.
unfold
(
lineNumber
,
false
);
}
}
...
...
@@ -405,7 +405,7 @@ class UnfoldAction extends FoldingAction {
class
FoldAction
extends
FoldingAction
{
public
static
ID
=
'
editor.unfold
'
;
public
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
foldingController
.
fold
(
lineNumber
,
false
);
}
}
...
...
@@ -413,7 +413,7 @@ class FoldAction extends FoldingAction {
class
FoldAllAction
extends
FoldingAction
{
public
static
ID
=
'
editor.foldAll
'
;
public
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
foldingController
.
unfold
(
lineNumber
,
true
);
}
}
...
...
@@ -421,7 +421,7 @@ class FoldAllAction extends FoldingAction {
class
UnfoldAllAction
extends
FoldingAction
{
public
static
ID
=
'
editor.unfoldAll
'
;
public
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
invoke
(
foldingController
:
FoldingController
,
lineNumber
:
number
)
:
void
{
foldingController
.
fold
(
lineNumber
,
true
);
}
}
...
...
src/vs/editor/contrib/folding/common/foldingRange.ts
浏览文件 @
40635574
...
...
@@ -10,6 +10,6 @@ export interface IFoldingRange {
endLineNumber
:
number
;
}
export
function
toString
(
range
:
IFoldingRange
)
{
export
function
toString
(
range
:
IFoldingRange
)
:
string
{
return
range
?
range
.
startLineNumber
+
'
/
'
+
range
.
endLineNumber
:
'
null
'
;
}
\ No newline at end of file
src/vs/editor/contrib/folding/common/indentFoldStrategy.ts
浏览文件 @
40635574
...
...
@@ -9,15 +9,15 @@ import {TPromise} from 'vs/base/common/winjs.base';
import
EditorCommon
=
require
(
'
vs/editor/common/editorCommon
'
);
import
{
IFoldingRange
}
from
'
vs/editor/contrib/folding/common/foldingRange
'
;
export
function
computeRanges
(
model
:
EditorCommon
.
IModel
,
tabSize
:
number
,
minimumRangeSize
:
number
=
1
)
:
IFoldingRange
[]
{
export
function
computeRanges
(
model
:
EditorCommon
.
IModel
,
tabSize
:
number
,
minimumRangeSize
:
number
=
1
)
:
IFoldingRange
[]
{
let
result
:
IFoldingRange
[]
=
[];
let
result
:
IFoldingRange
[]
=
[];
var
previousRegions
:
{
indent
:
number
,
line
:
number
}[]
=
[];
previousRegions
.
push
({
indent
:
-
1
,
line
:
model
.
getLineCount
()
+
1
});
// sentinel, to make sure there's at least one entry
let
previousRegions
:
{
indent
:
number
,
line
:
number
}[]
=
[];
previousRegions
.
push
({
indent
:
-
1
,
line
:
model
.
getLineCount
()
+
1
});
// sentinel, to make sure there's at least one entry
for
(
var
line
=
model
.
getLineCount
();
line
>
0
;
line
--
)
{
var
indent
=
computeIndentLevel
(
model
.
getLineContent
(
line
),
tabSize
);
for
(
let
line
=
model
.
getLineCount
();
line
>
0
;
line
--
)
{
let
indent
=
computeIndentLevel
(
model
.
getLineContent
(
line
),
tabSize
);
if
(
indent
===
-
1
)
{
continue
;
// only whitespace
}
...
...
@@ -34,14 +34,14 @@ export function computeRanges(model:EditorCommon.IModel, tabSize: number, minimu
// new folding range
let
endLineNumber
=
previous
.
line
-
1
;
if
(
endLineNumber
-
line
>=
minimumRangeSize
)
{
result
.
push
({
startLineNumber
:
line
,
endLineNumber
});
result
.
push
({
startLineNumber
:
line
,
endLineNumber
});
}
}
if
(
previous
.
indent
===
indent
)
{
previous
.
line
=
line
;
}
else
{
// previous.indent < indent
// new region with a bigger indent
previousRegions
.
push
({
indent
,
line
});
previousRegions
.
push
({
indent
,
line
});
}
}
return
result
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录