Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3a2b7089
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,发现更多精彩内容 >>
提交
3a2b7089
编写于
5月 25, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #50369 - improve "show modified only". Also fix showing values for workspace folder settings
上级
8c84a3a0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
53 addition
and
6 deletion
+53
-6
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
...vs/workbench/parts/preferences/browser/settingsEditor2.ts
+20
-0
src/vs/workbench/parts/preferences/browser/settingsTree.ts
src/vs/workbench/parts/preferences/browser/settingsTree.ts
+33
-6
未找到文件。
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
浏览文件 @
3a2b7089
...
...
@@ -46,6 +46,7 @@ export class SettingsEditor2 extends BaseEditor {
private
settingsTargetsWidget
:
SettingsTargetsWidget
;
private
showConfiguredSettingsOnlyCheckbox
:
HTMLInputElement
;
private
savedExpandedGroups
:
any
[];
private
settingsTreeContainer
:
HTMLElement
;
private
settingsTree
:
WorkbenchTree
;
...
...
@@ -267,6 +268,25 @@ export class SettingsEditor2 extends BaseEditor {
private
onShowConfiguredOnlyClicked
():
void
{
this
.
viewState
.
showConfiguredOnly
=
this
.
showConfiguredSettingsOnlyCheckbox
.
checked
;
this
.
refreshTree
();
// TODO@roblou - This is slow
if
(
this
.
viewState
.
showConfiguredOnly
)
{
this
.
savedExpandedGroups
=
this
.
settingsTree
.
getExpandedElements
();
const
nav
=
this
.
settingsTree
.
getNavigator
();
let
element
;
while
(
element
=
nav
.
next
())
{
this
.
settingsTree
.
expand
(
element
);
}
}
else
if
(
this
.
savedExpandedGroups
)
{
const
nav
=
this
.
settingsTree
.
getNavigator
();
let
element
;
while
(
element
=
nav
.
next
())
{
this
.
settingsTree
.
collapse
(
element
);
}
this
.
settingsTree
.
expandAll
(
this
.
savedExpandedGroups
);
this
.
savedExpandedGroups
=
null
;
}
}
private
onDidChangeSetting
(
key
:
string
,
value
:
any
):
void
{
...
...
src/vs/workbench/parts/preferences/browser/settingsTree.ts
浏览文件 @
3a2b7089
...
...
@@ -25,6 +25,7 @@ import { SettingsTarget } from 'vs/workbench/parts/preferences/browser/preferenc
import
{
ISearchResult
,
ISetting
,
ISettingsGroup
}
from
'
vs/workbench/services/preferences/common/preferences
'
;
import
{
DefaultSettingsEditorModel
}
from
'
vs/workbench/services/preferences/common/preferencesModels
'
;
import
{
IMouseEvent
}
from
'
vs/base/browser/mouseEvent
'
;
import
URI
from
'
vs/base/common/uri
'
;
const
$
=
DOM
.
$
;
...
...
@@ -75,6 +76,17 @@ export interface IGroupElement extends ITreeItem {
export
type
TreeElement
=
ISettingElement
|
IGroupElement
;
export
type
TreeElementOrRoot
=
TreeElement
|
DefaultSettingsEditorModel
|
SearchResultModel
;
function
inspectSetting
(
key
:
string
,
target
:
SettingsTarget
,
configurationService
:
IConfigurationService
):
{
isConfigured
:
boolean
,
inspected
:
any
,
targetSelector
:
string
}
{
const
inspectOverrides
=
URI
.
isUri
(
target
)
?
{
resource
:
target
}
:
undefined
;
const
inspected
=
configurationService
.
inspect
(
key
,
inspectOverrides
);
const
targetSelector
=
target
===
ConfigurationTarget
.
USER
?
'
user
'
:
target
===
ConfigurationTarget
.
WORKSPACE
?
'
workspace
'
:
'
workspaceFolder
'
;
const
isConfigured
=
typeof
inspected
[
targetSelector
]
!==
'
undefined
'
;
return
{
isConfigured
,
inspected
,
targetSelector
};
}
export
class
SettingsDataSource
implements
IDataSource
{
constructor
(
private
viewState
:
ISettingsEditorViewState
,
...
...
@@ -91,9 +103,8 @@ export class SettingsDataSource implements IDataSource {
}
getSettingElement
(
setting
:
ISetting
,
group
:
ISettingsGroup
):
ISettingElement
{
const
targetSelector
=
this
.
viewState
.
settingsTarget
===
ConfigurationTarget
.
USER
?
'
user
'
:
'
workspace
'
;
const
inspected
=
this
.
configurationService
.
inspect
(
setting
.
key
);
const
isConfigured
=
typeof
inspected
[
targetSelector
]
!==
'
undefined
'
;
const
{
isConfigured
,
inspected
,
targetSelector
}
=
inspectSetting
(
setting
.
key
,
this
.
viewState
.
settingsTarget
,
this
.
configurationService
);
const
displayValue
=
isConfigured
?
inspected
[
targetSelector
]
:
inspected
.
default
;
const
overriddenScopeList
=
[];
if
(
targetSelector
===
'
user
'
&&
typeof
inspected
.
workspace
!==
'
undefined
'
)
{
...
...
@@ -514,19 +525,35 @@ export class SettingsRenderer implements IRenderer {
}
export
class
SettingsTreeFilter
implements
IFilter
{
constructor
(
private
viewState
:
ISettingsEditorViewState
)
{
}
constructor
(
private
viewState
:
ISettingsEditorViewState
,
@
IConfigurationService
private
configurationService
:
IConfigurationService
)
{
}
isVisible
(
tree
:
ITree
,
element
:
TreeElement
):
boolean
{
if
(
this
.
viewState
.
showConfiguredOnly
&&
element
.
type
===
TreeItemType
.
setting
)
{
return
element
.
isConfigured
;
}
if
(
element
.
type
===
TreeItemType
.
groupTitle
)
{
// TODO - hide if no visible children
if
(
element
.
type
===
TreeItemType
.
groupTitle
&&
this
.
viewState
.
showConfiguredOnly
)
{
return
this
.
groupHasConfiguredSetting
(
element
.
group
);
}
return
true
;
}
private
groupHasConfiguredSetting
(
group
:
ISettingsGroup
):
boolean
{
for
(
let
section
of
group
.
sections
)
{
for
(
let
setting
of
section
.
settings
)
{
const
{
isConfigured
}
=
inspectSetting
(
setting
.
key
,
this
.
viewState
.
settingsTarget
,
this
.
configurationService
);
if
(
isConfigured
)
{
return
true
;
}
}
}
return
false
;
}
}
export
class
SettingsTreeController
extends
WorkbenchTreeController
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录