Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
ae31e8c1
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,发现更多精彩内容 >>
提交
ae31e8c1
编写于
6月 08, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add setting to toggle between filter or find, #49922
上级
2e2220c9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
37 addition
and
22 deletion
+37
-22
src/vs/workbench/parts/outline/electron-browser/outline.contribution.ts
...ch/parts/outline/electron-browser/outline.contribution.ts
+12
-18
src/vs/workbench/parts/outline/electron-browser/outline.ts
src/vs/workbench/parts/outline/electron-browser/outline.ts
+1
-0
src/vs/workbench/parts/outline/electron-browser/outlinePanel.ts
.../workbench/parts/outline/electron-browser/outlinePanel.ts
+13
-2
src/vs/workbench/parts/outline/electron-browser/outlineTree.ts
...s/workbench/parts/outline/electron-browser/outlineTree.ts
+11
-2
未找到文件。
src/vs/workbench/parts/outline/electron-browser/outline.contribution.ts
浏览文件 @
ae31e8c1
...
...
@@ -44,32 +44,26 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).regis
'
order
'
:
117
,
'
type
'
:
'
object
'
,
'
properties
'
:
{
[
OutlineConfigKeys
.
filterOnType
]:
{
'
description
'
:
localize
(
'
outline.typeToFilter
'
,
"
Defines if typing in the input-box filters or finds elements.
"
),
'
type
'
:
'
boolean
'
,
'
default
'
:
true
},
[
OutlineConfigKeys
.
problemsEnabled
]:
{
'
description
'
:
localize
(
'
outline.showProblem
'
,
"
Show Errors & Warnings on Outline Elements.
"
),
'
type
'
:
'
boolean
'
,
'
default
'
:
true
}
}
});
Registry
.
as
<
IConfigurationRegistry
>
(
ConfigurationExtensions
.
Configuration
).
registerConfiguration
({
'
id
'
:
'
outline
'
,
'
order
'
:
117
,
'
type
'
:
'
object
'
,
'
properties
'
:
{
},
[
OutlineConfigKeys
.
problemsEnabled
]:
{
'
description
'
:
localize
(
'
outline.showProblem
'
,
"
Show Errors & Warnings on Outline Elements.
"
),
'
type
'
:
'
boolean
'
,
'
default
'
:
true
},
[
OutlineConfigKeys
.
problemsColors
]:
{
'
description
'
:
localize
(
'
outline.problem.colors
'
,
"
Use colors for Errors & Warnings.
"
),
'
type
'
:
'
boolean
'
,
'
default
'
:
true
}
}
});
Registry
.
as
<
IConfigurationRegistry
>
(
ConfigurationExtensions
.
Configuration
).
registerConfiguration
({
'
id
'
:
'
outline
'
,
'
order
'
:
117
,
'
type
'
:
'
object
'
,
'
properties
'
:
{
},
[
OutlineConfigKeys
.
problemsBadges
]:
{
'
description
'
:
localize
(
'
outline.problems.badges
'
,
"
Use badges for Errors & Warnings.
"
),
'
type
'
:
'
boolean
'
,
...
...
src/vs/workbench/parts/outline/electron-browser/outline.ts
浏览文件 @
ae31e8c1
...
...
@@ -7,6 +7,7 @@
export
enum
OutlineConfigKeys
{
'
filterOnType
'
=
'
outline.filterOnType
'
,
'
problemsEnabled
'
=
'
outline.problems.enabled
'
,
'
problemsColors
'
=
'
outline.problems.colors
'
,
'
problemsBadges
'
=
'
outline.problems.badges
'
...
...
src/vs/workbench/parts/outline/electron-browser/outlinePanel.ts
浏览文件 @
ae31e8c1
...
...
@@ -217,6 +217,7 @@ export class OutlinePanel extends ViewletPanel {
private
_input
:
InputBox
;
private
_progressBar
:
ProgressBar
;
private
_tree
:
WorkbenchTree
;
private
_treeDataSource
:
OutlineDataSource
;
private
_treeFilter
:
OutlineItemFilter
;
private
_treeComparator
:
OutlineItemComparator
;
private
_treeStates
=
new
LRUCache
<
string
,
OutlineTreeState
>
(
10
);
...
...
@@ -319,11 +320,11 @@ export class OutlinePanel extends ViewletPanel {
return
false
;
}
};
const
dataSource
=
new
OutlineDataSource
();
const
renderer
=
this
.
_instantiationService
.
createInstance
(
OutlineRenderer
);
this
.
_treeDataSource
=
new
OutlineDataSource
();
this
.
_treeComparator
=
new
OutlineItemComparator
(
this
.
_outlineViewState
.
sortBy
);
this
.
_treeFilter
=
new
OutlineItemFilter
();
this
.
_tree
=
this
.
_instantiationService
.
createInstance
(
WorkbenchTree
,
treeContainer
,
{
controller
,
dataSource
,
renderer
,
sorter
:
this
.
_treeComparator
,
filter
:
this
.
_treeFilter
},
{});
this
.
_tree
=
this
.
_instantiationService
.
createInstance
(
WorkbenchTree
,
treeContainer
,
{
controller
,
renderer
,
dataSource
:
this
.
_treeDataSource
,
sorter
:
this
.
_treeComparator
,
filter
:
this
.
_treeFilter
},
{});
this
.
_disposables
.
push
(
this
.
_tree
,
this
.
_input
);
this
.
_disposables
.
push
(
this
.
_outlineViewState
.
onDidChange
(
this
.
_onDidChangeUserState
,
this
));
...
...
@@ -461,6 +462,16 @@ export class OutlinePanel extends ViewletPanel {
OutlineTreeState
.
restore
(
this
.
_tree
,
state
);
}
// depending on the user setting we filter or find elements
if
(
this
.
_configurationService
.
getValue
(
OutlineConfigKeys
.
filterOnType
))
{
this
.
_treeFilter
.
enabled
=
true
;
this
.
_treeDataSource
.
filterOnScore
=
true
;
this
.
_input
.
setPlaceHolder
(
localize
(
'
filter
'
,
"
Filter
"
));
}
else
{
this
.
_treeFilter
.
enabled
=
false
;
this
.
_treeDataSource
.
filterOnScore
=
false
;
this
.
_input
.
setPlaceHolder
(
localize
(
'
find
'
,
"
Find
"
));
}
this
.
_input
.
enable
();
this
.
layoutBody
();
...
...
src/vs/workbench/parts/outline/electron-browser/outlineTree.ts
浏览文件 @
ae31e8c1
...
...
@@ -64,13 +64,22 @@ export class OutlineItemComparator implements ISorter {
export
class
OutlineItemFilter
implements
IFilter
{
enabled
:
boolean
=
true
;
isVisible
(
tree
:
ITree
,
element
:
OutlineElement
|
any
):
boolean
{
if
(
!
this
.
enabled
)
{
return
true
;
}
return
!
(
element
instanceof
OutlineElement
)
||
Boolean
(
element
.
score
);
}
}
export
class
OutlineDataSource
implements
IDataSource
{
// this is a workaround for the tree showing twisties for items
// with only filtered children
filterOnScore
:
boolean
=
true
;
getId
(
tree
:
ITree
,
element
:
TreeElement
):
string
{
return
element
?
element
.
id
:
'
empty
'
;
}
...
...
@@ -82,11 +91,11 @@ export class OutlineDataSource implements IDataSource {
if
(
element
instanceof
OutlineModel
)
{
return
true
;
}
if
(
element
instanceof
OutlineElement
&&
!
element
.
score
)
{
if
(
element
instanceof
OutlineElement
&&
(
this
.
filterOnScore
&&
!
element
.
score
)
)
{
return
false
;
}
for
(
const
id
in
element
.
children
)
{
if
(
element
.
children
[
id
].
score
)
{
if
(
!
this
.
filterOnScore
||
element
.
children
[
id
].
score
)
{
return
true
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录