Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b577cceb
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,发现更多精彩内容 >>
提交
b577cceb
编写于
6月 25, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #52817 - also consider settings tree selection when syncing with the TOC
上级
26af5f53
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
24 deletion
+40
-24
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
...vs/workbench/parts/preferences/browser/settingsEditor2.ts
+40
-24
未找到文件。
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
浏览文件 @
b577cceb
...
...
@@ -328,31 +328,12 @@ export class SettingsEditor2 extends BaseEditor {
this
.
selectedElement
=
e
.
focus
;
}));
this
.
_register
(
this
.
settingsTree
.
onDidScroll
(()
=>
{
if
(
this
.
searchResultModel
)
{
return
;
}
if
(
!
this
.
tocTree
.
getInput
())
{
return
;
}
const
topElement
=
this
.
settingsTree
.
getFirstVisibleElement
();
const
element
=
topElement
instanceof
SettingsTreeSettingElement
?
topElement
.
parent
:
topElement
instanceof
SettingsTreeGroupElement
?
topElement
:
null
;
if
(
element
&&
this
.
tocTree
.
getSelection
()[
0
]
!==
element
)
{
const
elementTop
=
this
.
tocTree
.
getRelativeTop
(
element
);
if
(
elementTop
<
0
)
{
this
.
tocTree
.
reveal
(
element
,
0
);
}
else
if
(
elementTop
>
1
)
{
this
.
tocTree
.
reveal
(
element
,
1
);
}
this
.
_register
(
this
.
settingsTree
.
onDidChangeSelection
(()
=>
{
this
.
updateTreeScrollSync
();
}));
this
.
tocTree
.
setSelection
([
element
],
{
fromScroll
:
true
});
this
.
tocTree
.
setFocus
(
element
);
}
this
.
_register
(
this
.
settingsTree
.
onDidScroll
(()
=>
{
this
.
updateTreeScrollSync
();
}));
}
...
...
@@ -385,6 +366,41 @@ export class SettingsEditor2 extends BaseEditor {
this
.
settingUpdateDelayer
.
trigger
(()
=>
this
.
updateChangedSetting
(
key
,
value
));
}
private
updateTreeScrollSync
():
void
{
if
(
this
.
searchResultModel
)
{
return
;
}
if
(
!
this
.
tocTree
.
getInput
())
{
return
;
}
let
elementToSync
=
this
.
settingsTree
.
getFirstVisibleElement
();
const
selection
=
this
.
settingsTree
.
getSelection
()[
0
];
if
(
selection
)
{
const
selectionPos
=
this
.
settingsTree
.
getRelativeTop
(
selection
);
if
(
selectionPos
>=
0
&&
selectionPos
<=
1
)
{
elementToSync
=
selection
;
}
}
const
element
=
elementToSync
instanceof
SettingsTreeSettingElement
?
elementToSync
.
parent
:
elementToSync
instanceof
SettingsTreeGroupElement
?
elementToSync
:
null
;
if
(
element
&&
this
.
tocTree
.
getSelection
()[
0
]
!==
element
)
{
const
elementTop
=
this
.
tocTree
.
getRelativeTop
(
element
);
if
(
elementTop
<
0
)
{
this
.
tocTree
.
reveal
(
element
,
0
);
}
else
if
(
elementTop
>
1
)
{
this
.
tocTree
.
reveal
(
element
,
1
);
}
this
.
tocTree
.
setSelection
([
element
],
{
fromScroll
:
true
});
this
.
tocTree
.
setFocus
(
element
);
}
}
private
updateChangedSetting
(
key
:
string
,
value
:
any
):
TPromise
<
void
>
{
// ConfigurationService displays the error if this fails.
// Force a render afterwards because onDidConfigurationUpdate doesn't fire if the update doesn't result in an effective setting value change
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录