Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
8539f481
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,发现更多精彩内容 >>
提交
8539f481
编写于
9月 04, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #57506 - when setting link is clicked, reveal setting at same position as the clicked setting
上级
07280158
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
11 deletion
+21
-11
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
...vs/workbench/parts/preferences/browser/settingsEditor2.ts
+7
-6
src/vs/workbench/parts/preferences/browser/settingsTree.ts
src/vs/workbench/parts/preferences/browser/settingsTree.ts
+14
-5
未找到文件。
src/vs/workbench/parts/preferences/browser/settingsEditor2.ts
浏览文件 @
8539f481
...
...
@@ -38,7 +38,7 @@ import { attachSuggestEnabledInputBoxStyler, SuggestEnabledInput } from 'vs/work
import
{
PreferencesEditor
}
from
'
vs/workbench/parts/preferences/browser/preferencesEditor
'
;
import
{
SettingsTarget
,
SettingsTargetsWidget
}
from
'
vs/workbench/parts/preferences/browser/preferencesWidgets
'
;
import
{
commonlyUsedData
,
tocData
}
from
'
vs/workbench/parts/preferences/browser/settingsLayout
'
;
import
{
resolveExtensionsSettings
,
resolveSettingsTree
,
SettingsDataSource
,
SettingsRenderer
,
SettingsTree
,
SimplePagedDataSource
}
from
'
vs/workbench/parts/preferences/browser/settingsTree
'
;
import
{
resolveExtensionsSettings
,
resolveSettingsTree
,
SettingsDataSource
,
SettingsRenderer
,
SettingsTree
,
SimplePagedDataSource
,
ISettingLinkClickEvent
}
from
'
vs/workbench/parts/preferences/browser/settingsTree
'
;
import
{
countSettingGroupChildrenWithPredicate
,
ISettingsEditorViewState
,
MODIFIED_SETTING_TAG
,
ONLINE_SERVICES_SETTING_TAG
,
parseQuery
,
SearchResultIdx
,
SearchResultModel
,
SettingsTreeGroupElement
,
SettingsTreeModel
,
SettingsTreeSettingElement
}
from
'
vs/workbench/parts/preferences/browser/settingsTreeModels
'
;
import
{
settingsTextInputBorder
}
from
'
vs/workbench/parts/preferences/browser/settingsWidgets
'
;
import
{
TOCRenderer
,
TOCTree
,
TOCTreeModel
}
from
'
vs/workbench/parts/preferences/browser/tocTree
'
;
...
...
@@ -330,12 +330,13 @@ export class SettingsEditor2 extends BaseEditor {
this
.
toolbar
.
context
=
<
ISettingsToolbarContext
>
{
target
:
this
.
settingsTargetsWidget
.
settingsTarget
};
}
private
revealSettingByKey
(
settingKey
:
string
):
void
{
const
elements
=
this
.
currentSettingsModel
.
getElementsByName
(
setting
Key
);
private
onDidClickSetting
(
evt
:
ISettingLinkClickEvent
):
void
{
const
elements
=
this
.
currentSettingsModel
.
getElementsByName
(
evt
.
target
Key
);
if
(
elements
&&
elements
[
0
])
{
this
.
settingsTree
.
reveal
(
elements
[
0
]);
const
sourceTop
=
this
.
settingsTree
.
getRelativeTop
(
evt
.
source
);
this
.
settingsTree
.
reveal
(
elements
[
0
],
sourceTop
);
const
domElements
=
this
.
settingsTreeRenderer
.
getDOMElementsForSettingKey
(
this
.
settingsTree
.
getHTMLElement
(),
setting
Key
);
const
domElements
=
this
.
settingsTreeRenderer
.
getDOMElementsForSettingKey
(
this
.
settingsTree
.
getHTMLElement
(),
evt
.
target
Key
);
if
(
domElements
&&
domElements
[
0
])
{
const
control
=
domElements
[
0
].
querySelector
(
SettingsRenderer
.
CONTROL_SELECTOR
);
if
(
control
)
{
...
...
@@ -470,7 +471,7 @@ export class SettingsEditor2 extends BaseEditor {
}
});
}));
this
.
_register
(
this
.
settingsTreeRenderer
.
onDidClickSettingLink
(
settingName
=>
this
.
revealSettingByKey
(
settingName
)));
this
.
_register
(
this
.
settingsTreeRenderer
.
onDidClickSettingLink
(
settingName
=>
this
.
onDidClickSetting
(
settingName
)));
this
.
_register
(
this
.
settingsTreeRenderer
.
onDidFocusSetting
(
element
=>
{
this
.
settingsTree
.
reveal
(
element
);
}));
...
...
src/vs/workbench/parts/preferences/browser/settingsTree.ts
浏览文件 @
8539f481
...
...
@@ -331,6 +331,11 @@ export interface ISettingChangeEvent {
value
:
any
;
// undefined => reset/unconfigure
}
export
interface
ISettingLinkClickEvent
{
source
:
SettingsTreeSettingElement
;
targetKey
:
string
;
}
export
class
SettingsRenderer
implements
ITreeRenderer
{
public
static
readonly
CONTROL_CLASS
=
'
setting-control-focus-target
'
;
...
...
@@ -344,8 +349,8 @@ export class SettingsRenderer implements ITreeRenderer {
private
readonly
_onDidOpenSettings
:
Emitter
<
string
>
=
new
Emitter
<
string
>
();
public
readonly
onDidOpenSettings
:
Event
<
string
>
=
this
.
_onDidOpenSettings
.
event
;
private
readonly
_onDidClickSettingLink
:
Emitter
<
string
>
=
new
Emitter
<
string
>
();
public
readonly
onDidClickSettingLink
:
Event
<
string
>
=
this
.
_onDidClickSettingLink
.
event
;
private
readonly
_onDidClickSettingLink
:
Emitter
<
ISettingLinkClickEvent
>
=
new
Emitter
<
ISettingLinkClickEvent
>
();
public
readonly
onDidClickSettingLink
:
Event
<
ISettingLinkClickEvent
>
=
this
.
_onDidClickSettingLink
.
event
;
private
readonly
_onDidFocusSetting
:
Emitter
<
SettingsTreeSettingElement
>
=
new
Emitter
<
SettingsTreeSettingElement
>
();
public
readonly
onDidFocusSetting
:
Event
<
SettingsTreeSettingElement
>
=
this
.
_onDidFocusSetting
.
event
;
...
...
@@ -1019,7 +1024,7 @@ export class SettingsRenderer implements ITreeRenderer {
this
.
renderValue
(
element
,
templateId
,
<
ISettingItemTemplate
>
template
);
template
.
descriptionElement
.
innerHTML
=
''
;
if
(
element
.
setting
.
descriptionIsMarkdown
)
{
const
renderedDescription
=
this
.
renderDescriptionMarkdown
(
element
.
description
,
template
.
toDispose
);
const
renderedDescription
=
this
.
renderDescriptionMarkdown
(
element
,
element
.
description
,
template
.
toDispose
);
template
.
descriptionElement
.
appendChild
(
renderedDescription
);
}
else
{
template
.
descriptionElement
.
innerText
=
element
.
description
;
...
...
@@ -1050,7 +1055,7 @@ export class SettingsRenderer implements ITreeRenderer {
template
.
containerElement
.
parentElement
.
removeAttribute
(
'
aria-setsize
'
);
}
private
renderDescriptionMarkdown
(
text
:
string
,
disposeables
:
IDisposable
[]):
HTMLElement
{
private
renderDescriptionMarkdown
(
element
:
SettingsTreeSettingElement
,
text
:
string
,
disposeables
:
IDisposable
[]):
HTMLElement
{
// Rewrite `#editor.fontSize#` to link format
text
=
fixSettingLinks
(
text
);
...
...
@@ -1058,7 +1063,11 @@ export class SettingsRenderer implements ITreeRenderer {
actionHandler
:
{
callback
:
(
content
:
string
)
=>
{
if
(
startsWith
(
content
,
'
#
'
))
{
this
.
_onDidClickSettingLink
.
fire
(
content
.
substr
(
1
));
const
e
:
ISettingLinkClickEvent
=
{
source
:
element
,
targetKey
:
content
.
substr
(
1
)
};
this
.
_onDidClickSettingLink
.
fire
(
e
);
}
else
{
this
.
openerService
.
open
(
URI
.
parse
(
content
)).
then
(
void
0
,
onUnexpectedError
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录