Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
a048bbcd
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,发现更多精彩内容 >>
提交
a048bbcd
编写于
6月 14, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Settings editor - make enum and string type controls full width. Also lots of pixel pushing
上级
5ea546e5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
53 addition
and
39 deletion
+53
-39
src/vs/workbench/parts/preferences/browser/media/settingsEditor2.css
...bench/parts/preferences/browser/media/settingsEditor2.css
+26
-17
src/vs/workbench/parts/preferences/browser/settingsTree.ts
src/vs/workbench/parts/preferences/browser/settingsTree.ts
+27
-22
未找到文件。
src/vs/workbench/parts/preferences/browser/media/settingsEditor2.css
浏览文件 @
a048bbcd
...
...
@@ -124,10 +124,10 @@
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
{
padding-top
:
5px
;
cursor
:
default
;
white-space
:
normal
;
height
:
100%
;
min-height
:
75px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item.odd
:not
(
.focused
)
:not
(
.selected
)
:not
(
:hover
),
...
...
@@ -148,7 +148,6 @@
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-title
{
margin-top
:
2px
;
line-height
:
initial
;
}
...
...
@@ -176,18 +175,19 @@
opacity
:
0.7
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-measure-container.monaco-tree-row
{
padding-left
:
15px
;
opacity
:
0
;
max-width
:
800px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-description
{
opacity
:
0.7
;
margin-top
:
3px
;
overflow
:
hidden
;
white-space
:
nowrap
;
white-space
:
pre
;
text-overflow
:
ellipsis
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-measure-container.monaco-tree-row
{
padding-left
:
15px
;
opacity
:
0
;
max-width
:
800px
;
height
:
18px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item.is-expanded
.setting-item-description
,
...
...
@@ -196,15 +196,24 @@
white-space
:
pre-wrap
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
*
:first-child
{
min-width
:
250px
;
display
:
inline-block
;
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
{
margin-top
:
5px
;
margin-bottom
:
9px
;
/* Needed when measuring an expanded row */
display
:
flex
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
{
margin-top
:
10px
;
margin-bottom
:
8px
;
display
:
inline-block
;
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
.setting-item-control.setting-type-number
{
min-width
:
200px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
.setting-item-control.setting-type-enum
,
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
.setting-item-control.setting-type-string
{
flex
:
1
;
min-width
:
initial
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
.setting-item-control.setting-type-enum
>
*
:first-child
{
width
:
100%
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item
.setting-item-value
>
.edit-in-settings-button
,
...
...
@@ -231,7 +240,7 @@
visibility
:
hidden
;
width
:
initial
;
padding-top
:
0px
;
/* So focus outline doesn't overlap the control above */
padding-top
:
2px
;
}
.settings-editor
>
.settings-body
>
.settings-tree-container
.setting-item.is-configured
.setting-item-value
>
.setting-reset-button.monaco-button
{
...
...
src/vs/workbench/parts/preferences/browser/settingsTree.ts
浏览文件 @
a048bbcd
...
...
@@ -298,7 +298,7 @@ export class SettingsRenderer implements IRenderer {
this
.
renderSettingElement
(
tree
,
element
,
template
);
const
height
=
measureHelper
.
offsetHeight
;
this
.
measureContainer
.
removeChild
(
measureHelper
);
this
.
measureContainer
.
removeChild
(
this
.
measureContainer
.
firstChild
);
return
Math
.
max
(
height
,
SettingsRenderer
.
SETTING_ROW_HEIGHT
);
}
...
...
@@ -448,56 +448,61 @@ export class SettingsRenderer implements IRenderer {
private
renderValue
(
element
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
):
void
{
const
onChange
=
value
=>
this
.
_onDidChangeSetting
.
fire
({
key
:
element
.
setting
.
key
,
value
});
template
.
valueElement
.
innerHTML
=
''
;
const
valueControlElement
=
DOM
.
append
(
template
.
valueElement
,
$
(
'
.setting-item-control
'
));
if
(
element
.
enum
&&
(
element
.
valueType
===
'
string
'
||
!
element
.
valueType
))
{
this
.
renderEnum
(
element
,
isSelected
,
template
,
onChange
);
valueControlElement
.
classList
.
add
(
'
setting-type-enum
'
);
this
.
renderEnum
(
element
,
isSelected
,
template
,
valueControlElement
,
onChange
);
}
else
if
(
element
.
valueType
===
'
boolean
'
)
{
this
.
renderBool
(
element
,
isSelected
,
template
,
onChange
);
valueControlElement
.
classList
.
add
(
'
setting-type-boolean
'
);
this
.
renderBool
(
element
,
isSelected
,
template
,
valueControlElement
,
onChange
);
}
else
if
(
element
.
valueType
===
'
string
'
)
{
this
.
renderText
(
element
,
isSelected
,
template
,
onChange
);
valueControlElement
.
classList
.
add
(
'
setting-type-string
'
);
this
.
renderText
(
element
,
isSelected
,
template
,
valueControlElement
,
onChange
);
}
else
if
(
element
.
valueType
===
'
number
'
||
element
.
valueType
===
'
integer
'
)
{
this
.
renderText
(
element
,
isSelected
,
template
,
value
=>
onChange
(
parseInt
(
value
)));
valueControlElement
.
classList
.
add
(
'
setting-type-number
'
);
this
.
renderText
(
element
,
isSelected
,
template
,
valueControlElement
,
value
=>
onChange
(
parseInt
(
value
)));
}
else
{
this
.
renderEditInSettingsJson
(
element
,
isSelected
,
template
);
valueControlElement
.
classList
.
add
(
'
setting-type-complex
'
);
this
.
renderEditInSettingsJson
(
element
,
isSelected
,
template
,
valueControlElement
);
}
}
private
renderBool
(
element
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
onChange
:
(
value
:
boolean
)
=>
void
):
void
{
const
checkboxElement
=
<
HTMLInputElement
>
DOM
.
append
(
template
.
valueE
lement
,
$
(
'
input.setting-value-checkbox.setting-value-input
'
));
private
renderBool
(
dataElement
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
element
:
HTMLElement
,
onChange
:
(
value
:
boolean
)
=>
void
):
void
{
const
checkboxElement
=
<
HTMLInputElement
>
DOM
.
append
(
e
lement
,
$
(
'
input.setting-value-checkbox.setting-value-input
'
));
checkboxElement
.
type
=
'
checkbox
'
;
checkboxElement
.
checked
=
e
lement
.
value
;
checkboxElement
.
checked
=
dataE
lement
.
value
;
checkboxElement
.
tabIndex
=
isSelected
?
0
:
-
1
;
template
.
toDispose
.
push
(
DOM
.
addDisposableListener
(
checkboxElement
,
'
change
'
,
e
=>
onChange
(
checkboxElement
.
checked
)));
}
private
renderEnum
(
element
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
onChange
:
(
value
:
string
)
=>
void
):
void
{
const
idx
=
element
.
enum
.
indexOf
(
e
lement
.
value
);
const
displayOptions
=
e
lement
.
enum
.
map
(
escapeInvisibleChars
);
private
renderEnum
(
dataElement
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
element
:
HTMLElement
,
onChange
:
(
value
:
string
)
=>
void
):
void
{
const
idx
=
dataElement
.
enum
.
indexOf
(
dataE
lement
.
value
);
const
displayOptions
=
dataE
lement
.
enum
.
map
(
escapeInvisibleChars
);
const
selectBox
=
new
SelectBox
(
displayOptions
,
idx
,
this
.
contextViewService
);
template
.
toDispose
.
push
(
selectBox
);
template
.
toDispose
.
push
(
attachSelectBoxStyler
(
selectBox
,
this
.
themeService
));
selectBox
.
render
(
template
.
valueE
lement
);
if
(
template
.
valueE
lement
.
firstElementChild
)
{
template
.
valueE
lement
.
firstElementChild
.
setAttribute
(
'
tabindex
'
,
isSelected
?
'
0
'
:
'
-1
'
);
selectBox
.
render
(
e
lement
);
if
(
e
lement
.
firstElementChild
)
{
e
lement
.
firstElementChild
.
setAttribute
(
'
tabindex
'
,
isSelected
?
'
0
'
:
'
-1
'
);
}
template
.
toDispose
.
push
(
selectBox
.
onDidSelect
(
e
=>
onChange
(
e
lement
.
enum
[
e
.
index
])));
selectBox
.
onDidSelect
(
e
=>
onChange
(
dataE
lement
.
enum
[
e
.
index
])));
}
private
renderText
(
element
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
onChange
:
(
value
:
string
)
=>
void
):
void
{
const
inputBox
=
new
InputBox
(
template
.
valueE
lement
,
this
.
contextViewService
);
private
renderText
(
dataElement
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
element
:
HTMLElement
,
onChange
:
(
value
:
string
)
=>
void
):
void
{
const
inputBox
=
new
InputBox
(
e
lement
,
this
.
contextViewService
);
template
.
toDispose
.
push
(
attachInputBoxStyler
(
inputBox
,
this
.
themeService
));
template
.
toDispose
.
push
(
inputBox
);
inputBox
.
value
=
e
lement
.
value
;
inputBox
.
value
=
dataE
lement
.
value
;
inputBox
.
inputElement
.
tabIndex
=
isSelected
?
0
:
-
1
;
template
.
toDispose
.
push
(
inputBox
.
onDidChange
(
e
=>
onChange
(
e
)));
}
private
renderEditInSettingsJson
(
element
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
):
void
{
const
openSettingsButton
=
new
Button
(
template
.
valueE
lement
,
{
title
:
true
,
buttonBackground
:
null
,
buttonHoverBackground
:
null
});
private
renderEditInSettingsJson
(
dataElement
:
ISettingElement
,
isSelected
:
boolean
,
template
:
ISettingItemTemplate
,
element
:
HTMLElement
):
void
{
const
openSettingsButton
=
new
Button
(
e
lement
,
{
title
:
true
,
buttonBackground
:
null
,
buttonHoverBackground
:
null
});
openSettingsButton
.
onDidClick
(()
=>
this
.
_onDidOpenSettings
.
fire
());
openSettingsButton
.
label
=
localize
(
'
editInSettingsJson
'
,
"
Edit in settings.json
"
);
openSettingsButton
.
element
.
classList
.
add
(
'
edit-in-settings-button
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录