Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
34735bc7
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,发现更多精彩内容 >>
提交
34735bc7
编写于
6月 18, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Settings Editor - tweak setting update/refresh behavior
上级
9931730a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
39 addition
and
21 deletion
+39
-21
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
...vs/workbench/parts/preferences/browser/settingsEditor2.ts
+23
-17
src/vs/workbench/parts/preferences/browser/settingsTree.ts
src/vs/workbench/parts/preferences/browser/settingsTree.ts
+16
-4
未找到文件。
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
浏览文件 @
34735bc7
...
...
@@ -45,6 +45,7 @@ export class SettingsEditor2 extends BaseEditor {
private
defaultSettingsEditorModel
:
DefaultSettingsEditorModel
;
private
rootElement
:
HTMLElement
;
private
headerContainer
:
HTMLElement
;
private
searchWidget
:
SearchWidget
;
private
settingsTargetsWidget
:
SettingsTargetsWidget
;
...
...
@@ -100,10 +101,10 @@ export class SettingsEditor2 extends BaseEditor {
}
createEditor
(
parent
:
HTMLElement
):
void
{
const
settingsEditor
Element
=
DOM
.
append
(
parent
,
$
(
'
.settings-editor
'
));
this
.
createTOC
(
settingsEditor
Element
);
this
.
root
Element
=
DOM
.
append
(
parent
,
$
(
'
.settings-editor
'
));
this
.
createTOC
(
this
.
root
Element
);
const
settingsEditorRightElement
=
DOM
.
append
(
settingsEditor
Element
,
$
(
'
.settings-editor-right
'
));
const
settingsEditorRightElement
=
DOM
.
append
(
this
.
root
Element
,
$
(
'
.settings-editor-right
'
));
this
.
createHeader
(
settingsEditorRightElement
);
this
.
createBody
(
settingsEditorRightElement
);
}
...
...
@@ -465,7 +466,7 @@ export class SettingsEditor2 extends BaseEditor {
}
private
toggleSearchMode
():
void
{
DOM
.
toggleClass
(
this
.
getContainer
()
,
'
search-mode
'
,
!!
this
.
searchResultModel
);
DOM
.
toggleClass
(
this
.
rootElement
,
'
search-mode
'
,
!!
this
.
searchResultModel
);
}
private
onConfigUpdate
():
TPromise
<
void
>
{
...
...
@@ -474,9 +475,10 @@ export class SettingsEditor2 extends BaseEditor {
const
commonlyUsed
=
resolveSettingsTree
(
commonlyUsedData
,
groups
);
resolvedSettingsRoot
.
children
.
unshift
(
commonlyUsed
);
this
.
settingsTreeModel
=
this
.
instantiationService
.
createInstance
(
SettingsTreeModel
,
this
.
viewState
,
resolvedSettingsRoot
);
if
(
!
this
.
searchResultModel
)
{
if
(
this
.
settingsTreeModel
)
{
this
.
settingsTreeModel
.
update
(
resolvedSettingsRoot
);
}
else
{
this
.
settingsTreeModel
=
this
.
instantiationService
.
createInstance
(
SettingsTreeModel
,
this
.
viewState
,
resolvedSettingsRoot
);
this
.
settingsTree
.
setInput
(
this
.
settingsTreeModel
.
root
);
this
.
tocTree
.
setInput
(
this
.
settingsTreeModel
.
root
);
}
...
...
@@ -492,18 +494,22 @@ export class SettingsEditor2 extends BaseEditor {
(
<
HTMLInputElement
>
document
.
activeElement
).
selectionStart
:
null
;
return
this
.
settingsTree
.
refresh
().
then
(()
=>
{
if
(
focusedRowId
)
{
const
rowSelector
=
`.setting-item#
${
focusedRowId
}
`
;
const
inputElementToFocus
:
HTMLElement
=
this
.
settingsTreeContainer
.
querySelector
(
`
${
rowSelector
}
input,
${
rowSelector
}
select,
${
rowSelector
}
a`
);
if
(
inputElementToFocus
)
{
inputElementToFocus
.
focus
();
if
(
typeof
selection
===
'
number
'
)
{
(
<
HTMLInputElement
>
inputElementToFocus
).
setSelectionRange
(
selection
,
selection
);
return
this
.
settingsTree
.
refresh
()
.
then
(()
=>
{
if
(
focusedRowId
)
{
const
rowSelector
=
`.setting-item#
${
focusedRowId
}
`
;
const
inputElementToFocus
:
HTMLElement
=
this
.
settingsTreeContainer
.
querySelector
(
`
${
rowSelector
}
input,
${
rowSelector
}
select,
${
rowSelector
}
a`
);
if
(
inputElementToFocus
)
{
inputElementToFocus
.
focus
();
if
(
typeof
selection
===
'
number
'
)
{
(
<
HTMLInputElement
>
inputElementToFocus
).
setSelectionRange
(
selection
,
selection
);
}
}
}
}
});
})
.
then
(()
=>
{
return
this
.
tocTree
.
refresh
();
});
}
private
onSearchInputChanged
():
void
{
...
...
src/vs/workbench/parts/preferences/browser/settingsTree.ts
浏览文件 @
34735bc7
...
...
@@ -77,7 +77,7 @@ export interface ITOCEntry {
}
export
class
SettingsTreeModel
{
private
_root
:
SettingsTreeElement
;
private
_root
:
SettingsTree
Group
Element
;
private
_treeElementsById
=
new
Map
<
string
,
SettingsTreeElement
>
();
constructor
(
...
...
@@ -85,13 +85,22 @@ export class SettingsTreeModel {
tocRoot
:
ITOCEntry
,
@
IConfigurationService
private
configurationService
:
IConfigurationService
)
{
this
.
_root
=
this
.
createSettingsTreeGroupElement
(
tocRoot
);
this
.
update
(
tocRoot
);
}
get
root
():
SettingsTreeElement
{
return
this
.
_root
;
}
update
(
newTocRoot
:
ITOCEntry
):
void
{
const
newRoot
=
this
.
createSettingsTreeGroupElement
(
newTocRoot
);
if
(
this
.
_root
)
{
this
.
_root
.
children
=
newRoot
.
children
;
}
else
{
this
.
_root
=
newRoot
;
}
}
getElementById
(
id
:
string
):
SettingsTreeElement
{
return
this
.
_treeElementsById
.
get
(
id
);
}
...
...
@@ -119,9 +128,13 @@ export class SettingsTreeModel {
}
}
function
sanitizeId
(
id
:
string
):
string
{
return
id
.
replace
(
/
[\.\/]
/
,
'
_
'
);
}
function
createSettingsTreeSettingElement
(
setting
:
ISetting
,
parent
:
any
,
settingsTarget
:
SettingsTarget
,
configurationService
:
IConfigurationService
):
SettingsTreeSettingElement
{
const
element
=
new
SettingsTreeSettingElement
();
element
.
id
=
parent
.
id
+
'
_
'
+
setting
.
key
;
element
.
id
=
sanitizeId
(
parent
.
id
+
'
_
'
+
setting
.
key
)
;
element
.
parent
=
parent
;
const
{
isConfigured
,
inspected
,
targetSelector
}
=
inspectSetting
(
setting
.
key
,
settingsTarget
,
configurationService
);
...
...
@@ -522,7 +535,6 @@ export class SettingsRenderer implements IRenderer {
template
.
descriptionElement
.
textContent
=
element
.
description
;
this
.
renderValue
(
element
,
isSelected
,
template
);
const
resetButton
=
new
Button
(
template
.
valueElement
);
const
resetText
=
localize
(
'
resetButtonTitle
'
,
"
reset
"
);
resetButton
.
label
=
resetText
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录