Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
440c1c41
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,发现更多精彩内容 >>
提交
440c1c41
编写于
7月 06, 2020
作者:
A
Aditya Thakral
提交者:
Aditya Thakral
7月 06, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Correctly handle null default values for objects (#101807)
Fixes #101637
上级
895f03e8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
8 deletion
+22
-8
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
+22
-8
未找到文件。
src/vs/workbench/contrib/preferences/browser/settingsTree.ts
浏览文件 @
440c1c41
...
...
@@ -105,9 +105,17 @@ function getObjectValueType(schema: IJSONSchema): ObjectValue['type'] {
}
function
getObjectDisplayValue
(
element
:
SettingsTreeSettingElement
):
IObjectDataItem
[]
{
const
elementDefaultValue
:
Record
<
string
,
unknown
>
=
typeof
element
.
defaultValue
===
'
object
'
?
element
.
defaultValue
??
{}
:
{};
const
elementScopeValue
:
Record
<
string
,
unknown
>
=
typeof
element
.
scopeValue
===
'
object
'
?
element
.
scopeValue
??
{}
:
{};
const
data
=
element
.
isConfigured
?
{
...
element
.
defaultValue
,
...
element
.
s
copeValue
}
:
element
.
d
efaultValue
;
{
...
element
DefaultValue
,
...
elementS
copeValue
}
:
element
D
efaultValue
;
const
{
objectProperties
,
objectPatternProperties
,
objectAdditionalProperties
}
=
element
.
setting
;
const
patternsAndSchemas
=
Object
...
...
@@ -129,7 +137,7 @@ function getObjectDisplayValue(element: SettingsTreeSettingElement): IObjectData
return
Object
.
keys
(
data
).
map
(
key
=>
{
if
(
isDefined
(
objectProperties
)
&&
key
in
objectProperties
)
{
const
defaultValue
=
element
.
d
efaultValue
[
key
];
const
defaultValue
=
element
D
efaultValue
[
key
];
const
valueEnumOptions
=
getEnumOptionsFromSchema
(
objectProperties
[
key
]);
return
{
...
...
@@ -144,7 +152,7 @@ function getObjectDisplayValue(element: SettingsTreeSettingElement): IObjectData
options
:
valueEnumOptions
,
},
removable
:
isUndefinedOrNull
(
defaultValue
),
};
}
as
IObjectDataItem
;
}
const
schema
=
patternsAndSchemas
.
find
(({
pattern
})
=>
pattern
.
test
(
key
))?.
schema
;
...
...
@@ -159,7 +167,7 @@ function getObjectDisplayValue(element: SettingsTreeSettingElement): IObjectData
options
:
valueEnumOptions
,
},
removable
:
true
,
};
}
as
IObjectDataItem
;
}
return
{
...
...
@@ -170,7 +178,7 @@ function getObjectDisplayValue(element: SettingsTreeSettingElement): IObjectData
options
:
additionalValueEnums
,
},
removable
:
true
,
};
}
as
IObjectDataItem
;
});
}
...
...
@@ -1055,8 +1063,14 @@ export class SettingObjectRenderer extends AbstractSettingRenderer implements IT
private
onDidChangeObject
(
template
:
ISettingObjectItemTemplate
,
e
:
ISettingListChangeEvent
<
IObjectDataItem
>
):
void
{
if
(
template
.
context
)
{
const
defaultValue
:
Record
<
string
,
unknown
>
=
template
.
context
.
defaultValue
;
const
scopeValue
:
Record
<
string
,
unknown
>
=
template
.
context
.
scopeValue
;
const
defaultValue
:
Record
<
string
,
unknown
>
=
typeof
template
.
context
.
defaultValue
===
'
object
'
?
template
.
context
.
defaultValue
??
{}
:
{};
const
scopeValue
:
Record
<
string
,
unknown
>
=
typeof
template
.
context
.
scopeValue
===
'
object
'
?
template
.
context
.
scopeValue
??
{}
:
{};
const
newValue
:
Record
<
string
,
unknown
>
=
{};
let
newItems
:
IObjectDataItem
[]
=
[];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录