Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
3619a007
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3619a007
编写于
2月 02, 2017
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Preferences editor - pass associated preferences model down to renderers always
上级
115cff4c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
39 addition
and
24 deletion
+39
-24
src/vs/workbench/parts/preferences/browser/preferencesEditor.ts
.../workbench/parts/preferences/browser/preferencesEditor.ts
+10
-10
src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts
...rkbench/parts/preferences/browser/preferencesRenderers.ts
+29
-14
未找到文件。
src/vs/workbench/parts/preferences/browser/preferencesEditor.ts
浏览文件 @
3619a007
...
...
@@ -23,8 +23,8 @@ import { BaseTextEditor } from 'vs/workbench/browser/parts/editor/textEditor';
import
{
CodeEditor
}
from
'
vs/editor/browser/codeEditor
'
;
import
{
IInstantiationService
,
ServicesAccessor
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IPreferencesService
,
ISettingsGroup
,
ISetting
,
IFilterResult
,
CONTEXT_DEFAULT_SETTINGS_EDITOR
,
DEFAULT_EDITOR_COMMAND_COLLAPSE_ALL
,
DEFAULT_EDITOR_COMMAND_FOCUS_SEARCH
,
ISettingsEditorModel
IPreferencesService
,
ISettingsGroup
,
ISetting
,
IFilterResult
,
IPreferencesEditorModel
,
CONTEXT_DEFAULT_SETTINGS_EDITOR
,
DEFAULT_EDITOR_COMMAND_COLLAPSE_ALL
,
DEFAULT_EDITOR_COMMAND_FOCUS_SEARCH
,
ISettingsEditorModel
}
from
'
vs/workbench/parts/preferences/common/preferences
'
;
import
{
SettingsEditorModel
,
DefaultSettingsEditorModel
}
from
'
vs/workbench/parts/preferences/common/preferencesModels
'
;
import
{
editorContribution
}
from
'
vs/editor/browser/editorBrowserExtensions
'
;
...
...
@@ -474,7 +474,7 @@ export class DefaultPreferencesEditor extends BaseTextEditor {
class
DefaultPreferencesCodeEditor
extends
CodeEditor
{
p
rivate
_settingsModel
:
SettingsEditorModel
;
p
ublic
settingsModel
:
IPreferencesEditorModel
<
ISetting
>
;
protected
_getContributions
():
IEditorContributionCtor
[]
{
let
contributions
=
super
.
_getContributions
();
...
...
@@ -485,12 +485,12 @@ class DefaultPreferencesCodeEditor extends CodeEditor {
}
setModels
(
model
:
editorCommon
.
IModel
,
settingsModel
:
SettingsEditorModel
):
void
{
this
.
_
settingsModel
=
settingsModel
;
return
super
.
setModel
(
model
);
}
get
settingsModel
():
SettingsEditorModel
{
return
this
.
_settingsModel
;
this
.
settingsModel
=
settingsModel
;
super
.
setModel
(
model
);
const
renderer
=
this
.
getContribution
<
DefaultSettingsEditorContribution
>
(
DefaultSettingsEditorContribution
.
ID
).
getPreferencesRenderer
();
if
(
renderer
)
{
renderer
.
associatedPreferencesModel
=
this
.
settingsModel
;
}
}
}
...
...
@@ -548,7 +548,7 @@ export class DefaultSettingsEditorContribution extends PreferencesEditorContribu
return
this
.
preferencesService
.
resolvePreferencesEditorModel
(
this
.
editor
.
getModel
().
uri
)
.
then
(
editorModel
=>
{
if
(
editorModel
instanceof
DefaultSettingsEditorModel
)
{
return
this
.
instantiationService
.
createInstance
(
DefaultSettingsRenderer
,
this
.
editor
,
editorModel
,
(
)
=>
(
<
DefaultPreferencesCodeEditor
>
this
.
editor
).
settingsModel
);
return
this
.
instantiationService
.
createInstance
(
DefaultSettingsRenderer
,
this
.
editor
,
editorModel
,
(
<
DefaultPreferencesCodeEditor
>
this
.
editor
).
settingsModel
);
}
return
null
;
});
...
...
src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts
浏览文件 @
3619a007
...
...
@@ -34,11 +34,14 @@ import { IMessageService, Severity } from 'vs/platform/message/common/message';
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
export
interface
IPreferencesRenderer
<
T
>
extends
IDisposable
{
preferencesModel
:
IPreferencesEditorModel
<
T
>
;
associatedPreferencesModel
:
IPreferencesEditorModel
<
T
>
;
iterator
:
IIterator
<
T
>
;
onFocusPreference
:
Event
<
T
>
;
onClearFocusPreference
:
Event
<
T
>
;
onUpdatePreference
:
Event
<
{
key
:
string
,
value
:
any
,
source
:
T
}
>
;
preferencesModel
:
IPreferencesEditorModel
<
T
>
;
render
():
void
;
updatePreference
(
key
:
string
,
value
:
any
,
source
:
T
):
void
;
filterPreferences
(
filterResult
:
IFilterResult
):
void
;
...
...
@@ -65,7 +68,7 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
private
filterResult
:
IFilterResult
;
constructor
(
protected
editor
:
ICodeEditor
,
public
readonly
preferencesModel
:
SettingsEditorModel
,
p
rivate
default
PreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
,
constructor
(
protected
editor
:
ICodeEditor
,
public
readonly
preferencesModel
:
SettingsEditorModel
,
p
ublic
readonly
associated
PreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
,
@
IPreferencesService
protected
preferencesService
:
IPreferencesService
,
@
ITelemetryService
private
telemetryService
:
ITelemetryService
,
@
IConfigurationEditingService
private
configurationEditingService
:
IConfigurationEditingService
,
...
...
@@ -75,7 +78,7 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
super
();
this
.
settingHighlighter
=
this
.
_register
(
instantiationService
.
createInstance
(
SettingHighlighter
,
editor
,
this
.
_onFocusPreference
,
this
.
_onClearFocusPreference
));
this
.
highlightPreferencesRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
HighlightPreferencesRenderer
,
editor
));
this
.
editSettingActionRenderer
=
this
.
_register
(
this
.
instantiationService
.
createInstance
(
EditSettingRenderer
,
this
.
editor
,
this
.
preferencesModel
,
()
=>
this
.
defaultPreferencesModel
,
this
.
settingHighlighter
));
this
.
editSettingActionRenderer
=
this
.
_register
(
this
.
instantiationService
.
createInstance
(
EditSettingRenderer
,
this
.
editor
,
this
.
preferencesModel
,
this
.
settingHighlighter
));
this
.
_register
(
this
.
editSettingActionRenderer
.
onUpdateSetting
(({
key
,
value
,
source
})
=>
this
.
updatePreference
(
key
,
value
,
source
)));
this
.
_register
(
this
.
editor
.
getModel
().
onDidChangeContent
(()
=>
this
.
modelChangeDelayer
.
trigger
(()
=>
this
.
onModelChanged
())));
}
...
...
@@ -85,7 +88,7 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
}
public
render
():
void
{
this
.
editSettingActionRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
);
this
.
editSettingActionRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
,
this
.
associatedPreferencesModel
);
if
(
this
.
filterResult
)
{
this
.
filterPreferences
(
this
.
filterResult
);
}
...
...
@@ -134,7 +137,7 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend
this
.
filterResult
=
filterResult
;
this
.
highlightPreferencesRenderer
.
render
([]);
this
.
settingHighlighter
.
clear
(
true
);
if
(
this
.
default
PreferencesModel
&&
filterResult
)
{
if
(
this
.
associated
PreferencesModel
&&
filterResult
)
{
const
settings
=
distinct
(
filterResult
.
filteredGroups
.
reduce
((
settings
:
ISetting
[],
settingsGroup
:
ISettingsGroup
)
=>
{
for
(
const
section
of
settingsGroup
.
sections
)
{
for
(
const
setting
of
section
.
settings
)
{
...
...
@@ -168,14 +171,14 @@ export class WorkspaceSettingsRenderer extends UserSettingsRenderer implements I
private
untrustedSettingRenderer
:
UnTrustedWorkspaceSettingsRenderer
;
constructor
(
editor
:
ICodeEditor
,
preferencesModel
:
SettingsEditorModel
,
default
PreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
,
constructor
(
editor
:
ICodeEditor
,
preferencesModel
:
SettingsEditorModel
,
associated
PreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
,
@
IPreferencesService
preferencesService
:
IPreferencesService
,
@
ITelemetryService
telemetryService
:
ITelemetryService
,
@
IConfigurationEditingService
configurationEditingService
:
IConfigurationEditingService
,
@
IMessageService
messageService
:
IMessageService
,
@
IInstantiationService
instantiationService
:
IInstantiationService
)
{
super
(
editor
,
preferencesModel
,
default
PreferencesModel
,
preferencesService
,
telemetryService
,
configurationEditingService
,
messageService
,
instantiationService
);
super
(
editor
,
preferencesModel
,
associated
PreferencesModel
,
preferencesService
,
telemetryService
,
configurationEditingService
,
messageService
,
instantiationService
);
this
.
untrustedSettingRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
UnTrustedWorkspaceSettingsRenderer
,
editor
,
preferencesModel
));
}
...
...
@@ -205,7 +208,7 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
private
_onClearFocusPreference
:
Emitter
<
ISetting
>
=
new
Emitter
<
ISetting
>
();
public
readonly
onClearFocusPreference
:
Event
<
ISetting
>
=
this
.
_onClearFocusPreference
.
event
;
constructor
(
protected
editor
:
ICodeEditor
,
public
readonly
preferencesModel
:
DefaultSettingsEditorModel
,
otherSettingsModel
:
()
=>
IPreferencesEditorModel
<
ISetting
>
,
constructor
(
protected
editor
:
ICodeEditor
,
public
readonly
preferencesModel
:
DefaultSettingsEditorModel
,
private
_associatedPreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
,
@
IPreferencesService
protected
preferencesService
:
IPreferencesService
,
@
IContextKeyService
contextKeyService
:
IContextKeyService
,
@
IWorkbenchEditorService
private
editorService
:
IWorkbenchEditorService
,
...
...
@@ -217,7 +220,7 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
this
.
settingsGroupTitleRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
SettingsGroupTitleRenderer
,
editor
));
this
.
filteredMatchesRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
FilteredMatchesRenderer
,
editor
));
this
.
filteredSettingsNavigationRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
FilteredSettingsNavigationRenderer
,
editor
,
this
.
settingHighlighter
));
this
.
editSettingActionRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
EditSettingRenderer
,
editor
,
preferencesModel
,
otherSettingsModel
,
this
.
settingHighlighter
));
this
.
editSettingActionRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
EditSettingRenderer
,
editor
,
preferencesModel
,
this
.
settingHighlighter
));
this
.
_register
(
this
.
editSettingActionRenderer
.
onUpdateSetting
(
e
=>
this
.
_onUpdatePreference
.
fire
(
e
)));
const
paranthesisHidingRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
StaticContentHidingRenderer
,
editor
,
preferencesModel
.
settingsGroups
));
this
.
hiddenAreasRenderer
=
this
.
_register
(
instantiationService
.
createInstance
(
HiddenAreasRenderer
,
editor
,
[
this
.
settingsGroupTitleRenderer
,
this
.
filteredMatchesRenderer
,
paranthesisHidingRenderer
]));
...
...
@@ -229,10 +232,19 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
return
this
.
filteredSettingsNavigationRenderer
;
}
public
get
associatedPreferencesModel
():
IPreferencesEditorModel
<
ISetting
>
{
return
this
.
_associatedPreferencesModel
;
}
public
set
associatedPreferencesModel
(
associatedPreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
)
{
this
.
_associatedPreferencesModel
=
associatedPreferencesModel
;
this
.
editSettingActionRenderer
.
associatedPreferencesModel
=
associatedPreferencesModel
;
}
public
render
()
{
this
.
defaultSettingsEditorContextKey
.
set
(
true
);
this
.
settingsGroupTitleRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
);
this
.
editSettingActionRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
);
this
.
editSettingActionRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
,
this
.
_associatedPreferencesModel
);
this
.
hiddenAreasRenderer
.
render
();
this
.
filteredSettingsNavigationRenderer
.
render
([]);
this
.
settingsGroupTitleRenderer
.
showGroup
(
1
);
...
...
@@ -245,10 +257,12 @@ export class DefaultSettingsRenderer extends Disposable implements IPreferencesR
this
.
filteredMatchesRenderer
.
render
(
null
);
this
.
settingsGroupTitleRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
);
this
.
settingsGroupTitleRenderer
.
showGroup
(
1
);
this
.
editSettingActionRenderer
.
render
(
this
.
preferencesModel
.
settingsGroups
,
this
.
_associatedPreferencesModel
);
}
else
{
this
.
filteredMatchesRenderer
.
render
(
filterResult
);
this
.
settingsGroupTitleRenderer
.
render
(
filterResult
.
filteredGroups
);
this
.
filteredSettingsNavigationRenderer
.
render
(
filterResult
.
filteredGroups
);
this
.
editSettingActionRenderer
.
render
(
filterResult
.
filteredGroups
,
this
.
_associatedPreferencesModel
);
}
this
.
hiddenAreasRenderer
.
render
();
}
...
...
@@ -597,13 +611,13 @@ class EditSettingRenderer extends Disposable {
private
editPreferenceWidgetForMouseMove
:
EditPreferenceWidget
<
ISetting
>
;
private
settingsGroups
:
ISettingsGroup
[];
public
associatedPreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
;
private
toggleEditPreferencesForMouseMoveDelayer
:
Delayer
<
void
>
;
private
_onUpdateSetting
:
Emitter
<
{
key
:
string
,
value
:
any
,
source
:
ISetting
}
>
=
new
Emitter
<
{
key
:
string
,
value
:
any
,
source
:
ISetting
}
>
();
public
readonly
onUpdateSetting
:
Event
<
{
key
:
string
,
value
:
any
,
source
:
ISetting
}
>
=
this
.
_onUpdateSetting
.
event
;
constructor
(
private
editor
:
ICodeEditor
,
private
masterSettingsModel
:
ISettingsEditorModel
,
private
otherSettingsModel
:
()
=>
ISettingsEditorModel
,
private
settingHighlighter
:
SettingHighlighter
,
@
IPreferencesService
private
preferencesService
:
IPreferencesService
,
@
IInstantiationService
private
instantiationService
:
IInstantiationService
,
...
...
@@ -626,10 +640,11 @@ class EditSettingRenderer extends Disposable {
this
.
_register
(
this
.
editor
.
onDidChangeConfiguration
(()
=>
this
.
onConfigurationChanged
()));
}
public
render
(
settingsGroups
:
ISettingsGroup
[]):
void
{
public
render
(
settingsGroups
:
ISettingsGroup
[]
,
associatedPreferencesModel
:
IPreferencesEditorModel
<
ISetting
>
):
void
{
this
.
editPreferenceWidgetForCusorPosition
.
hide
();
this
.
editPreferenceWidgetForMouseMove
.
hide
();
this
.
settingsGroups
=
settingsGroups
;
this
.
associatedPreferencesModel
=
associatedPreferencesModel
;
const
settings
=
this
.
getSettings
(
this
.
editor
.
getPosition
().
lineNumber
);
if
(
settings
.
length
)
{
...
...
@@ -742,7 +757,7 @@ class EditSettingRenderer extends Disposable {
private
onEditSettingClicked
(
editPreferenceWidget
:
EditPreferenceWidget
<
ISetting
>
):
void
{
const
elementPosition
=
DOM
.
getDomNodePagePosition
(
editPreferenceWidget
.
getDomNode
());
const
anchor
=
{
x
:
elementPosition
.
left
+
elementPosition
.
width
,
y
:
elementPosition
.
top
+
elementPosition
.
height
+
10
};
const
actions
=
this
.
getSettings
AtLineNumber
(
editPreferenceWidget
.
getLine
()).
length
===
1
?
this
.
getActions
(
editPreferenceWidget
.
preferences
[
0
],
this
.
getConfigurationsMap
()[
editPreferenceWidget
.
preferences
[
0
].
key
])
const
actions
=
this
.
getSettings
(
editPreferenceWidget
.
getLine
()).
length
===
1
?
this
.
getActions
(
editPreferenceWidget
.
preferences
[
0
],
this
.
getConfigurationsMap
()[
editPreferenceWidget
.
preferences
[
0
].
key
])
:
editPreferenceWidget
.
preferences
.
map
(
setting
=>
new
ContextSubMenu
(
setting
.
key
,
this
.
getActions
(
setting
,
this
.
getConfigurationsMap
()[
setting
.
key
])));
this
.
contextMenuService
.
showContextMenu
({
getAnchor
:
()
=>
anchor
,
...
...
@@ -782,7 +797,7 @@ class EditSettingRenderer extends Disposable {
}
private
getDefaultActions
(
setting
:
ISetting
):
IAction
[]
{
const
settingInOtherModel
=
this
.
otherSettingsModel
()
.
getPreference
(
setting
.
key
);
const
settingInOtherModel
=
this
.
associatedPreferencesModel
.
getPreference
(
setting
.
key
);
if
(
this
.
isDefaultSettings
())
{
return
[
<
IAction
>
{
id
:
'
setDefaultValue
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录