Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
987073d1
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,发现更多精彩内容 >>
提交
987073d1
编写于
1月 25, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Settings search - show tab result counts for folder settings
上级
7941b1b0
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
56 addition
and
23 deletion
+56
-23
src/vs/workbench/parts/preferences/browser/preferencesEditor.ts
.../workbench/parts/preferences/browser/preferencesEditor.ts
+33
-21
src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts
...workbench/parts/preferences/browser/preferencesWidgets.ts
+23
-2
未找到文件。
src/vs/workbench/parts/preferences/browser/preferencesEditor.ts
浏览文件 @
987073d1
...
...
@@ -382,7 +382,7 @@ class PreferencesRenderersController extends Disposable {
private
_settingsNavigator
:
SettingsNavigator
;
private
_remoteFilterInProgress
:
TPromise
<
any
>
;
private
_prefsModelsForSearch
=
new
Map
<
SettingsTarget
,
ISettingsEditorModel
>
();
private
_prefsModelsForSearch
=
new
Map
<
string
,
ISettingsEditorModel
>
();
private
_currentLocalSearchProvider
:
ISearchProvider
;
private
_currentRemoteSearchProvider
:
ISearchProvider
;
...
...
@@ -396,6 +396,7 @@ class PreferencesRenderersController extends Disposable {
@
IPreferencesSearchService
private
preferencesSearchService
:
IPreferencesSearchService
,
@
ITelemetryService
private
telemetryService
:
ITelemetryService
,
@
IPreferencesService
private
preferencesService
:
IPreferencesService
,
@
IWorkspaceContextService
private
workspaceContextService
:
IWorkspaceContextService
)
{
super
();
}
...
...
@@ -473,17 +474,12 @@ class PreferencesRenderersController extends Disposable {
const
filterPs
=
[];
if
(
!
editableContentOnly
)
{
filterPs
.
push
(
this
.
_filterOrSearchPreferences
(
query
,
this
.
defaultPreferencesRenderer
,
searchProvider
,
groupId
,
groupLabel
,
groupOrder
));
filterPs
.
push
(
this
.
_filterOrSearchPreferences
(
query
,
this
.
defaultPreferencesRenderer
,
searchProvider
,
groupId
,
groupLabel
,
groupOrder
));
}
filterPs
.
push
(
this
.
_filterOrSearchPreferences
(
query
,
this
.
editablePreferencesRenderer
,
searchProvider
,
groupId
,
groupLabel
,
groupOrder
));
const
something
=
[
this
.
searchSettingsTarget
(
searchProvider
,
ConfigurationTarget
.
WORKSPACE
,
groupId
,
groupLabel
,
groupOrder
),
this
.
searchSettingsTarget
(
searchProvider
,
ConfigurationTarget
.
USER
,
groupId
,
groupLabel
,
groupOrder
)
];
// for (const folder of this.workspaceContextService.getWorkspace().folders) {
// const folderSettingsResource = this.preferencesService.getFolderSettingsResource(folder.uri);
filterPs
.
push
(
this
.
_filterOrSearchPreferences
(
query
,
this
.
editablePreferencesRenderer
,
searchProvider
,
groupId
,
groupLabel
,
groupOrder
),
this
.
updateSettingsTargetCounts
(
query
,
searchProvider
,
groupId
,
groupLabel
,
groupOrder
));
return
TPromise
.
join
(
filterPs
).
then
(
results
=>
{
const
[
defaultFilterResult
,
editableFilterResult
]
=
results
;
...
...
@@ -498,6 +494,21 @@ class PreferencesRenderersController extends Disposable {
});
}
private
updateSettingsTargetCounts
(
query
:
string
,
searchProvider
:
ISearchProvider
,
groupId
:
string
,
groupLabel
:
string
,
groupOrder
:
number
):
TPromise
<
void
>
{
const
searchPs
=
[
this
.
searchSettingsTarget
(
searchProvider
,
ConfigurationTarget
.
WORKSPACE
,
groupId
,
groupLabel
,
groupOrder
),
this
.
searchSettingsTarget
(
searchProvider
,
ConfigurationTarget
.
USER
,
groupId
,
groupLabel
,
groupOrder
)
];
for
(
const
folder
of
this
.
workspaceContextService
.
getWorkspace
().
folders
)
{
const
folderSettingsResource
=
this
.
preferencesService
.
getFolderSettingsResource
(
folder
.
uri
);
searchPs
.
push
(
this
.
searchSettingsTarget
(
searchProvider
,
folderSettingsResource
,
groupId
,
groupLabel
,
groupOrder
));
}
return
TPromise
.
join
(
searchPs
).
then
(()
=>
{
});
}
private
searchSettingsTarget
(
provider
:
ISearchProvider
,
target
:
SettingsTarget
,
groupId
:
string
,
groupLabel
:
string
,
groupOrder
:
number
):
TPromise
<
void
>
{
return
this
.
getPreferencesEditorModel
(
target
).
then
(
model
=>
{
return
this
.
_filterOrSearchPreferencesModel
(
''
,
<
ISettingsEditorModel
>
model
,
provider
,
groupId
,
groupLabel
,
groupOrder
);
...
...
@@ -518,12 +529,13 @@ class PreferencesRenderersController extends Disposable {
target
===
ConfigurationTarget
.
WORKSPACE
?
this
.
preferencesService
.
workspaceSettingsResource
:
target
;
if
(
!
this
.
_prefsModelsForSearch
.
has
(
target
))
{
const
model
=
await
this
.
preferencesService
.
createPreferencesEditorModel
(
resource
);
this
.
_prefsModelsForSearch
.
set
(
target
,
<
ISettingsEditorModel
>
model
);
const
targetKey
=
resource
.
toString
();
if
(
!
this
.
_prefsModelsForSearch
.
has
(
targetKey
))
{
const
model
=
this
.
_register
(
await
this
.
preferencesService
.
createPreferencesEditorModel
(
resource
));
this
.
_prefsModelsForSearch
.
set
(
targetKey
,
<
ISettingsEditorModel
>
model
);
}
return
this
.
_prefsModelsForSearch
.
get
(
target
);
return
this
.
_prefsModelsForSearch
.
get
(
target
Key
);
}
focusNextPreference
(
forward
:
boolean
=
true
)
{
...
...
@@ -549,15 +561,15 @@ class PreferencesRenderersController extends Disposable {
}
private
_filterOrSearchPreferences
(
filter
:
string
,
preferencesRenderer
:
IPreferencesRenderer
<
ISetting
>
,
provider
:
ISearchProvider
,
groupId
:
string
,
groupLabel
:
string
,
groupOrder
:
number
):
TPromise
<
IFilterResult
>
{
if
(
preferencesRenderer
)
{
const
model
=
<
ISettingsEditorModel
>
preferencesRenderer
.
preferencesModel
;
return
this
.
_filterOrSearchPreferencesModel
(
filter
,
model
,
provider
,
groupId
,
groupLabel
,
groupOrder
).
then
(
filterResult
=>
{
preferencesRenderer
.
filterPreferences
(
filterResult
);
return
filterResult
;
});
if
(
!
preferencesRenderer
)
{
return
TPromise
.
wrap
(
null
);
}
return
TPromise
.
wrap
(
null
);
const
model
=
<
ISettingsEditorModel
>
preferencesRenderer
.
preferencesModel
;
return
this
.
_filterOrSearchPreferencesModel
(
filter
,
model
,
provider
,
groupId
,
groupLabel
,
groupOrder
).
then
(
filterResult
=>
{
preferencesRenderer
.
filterPreferences
(
filterResult
);
return
filterResult
;
});
}
private
_filterOrSearchPreferencesModel
(
filter
:
string
,
model
:
ISettingsEditorModel
,
provider
:
ISearchProvider
,
groupId
:
string
,
groupLabel
:
string
,
groupOrder
:
number
):
TPromise
<
IFilterResult
>
{
...
...
src/vs/workbench/parts/preferences/browser/preferencesWidgets.ts
浏览文件 @
987073d1
...
...
@@ -281,6 +281,7 @@ export class SettingsGroupTitleWidget extends Widget implements IViewZone {
export
class
FolderSettingsActionItem
extends
BaseActionItem
{
private
_folder
:
IWorkspaceFolder
;
private
_count
:
number
;
private
container
:
HTMLElement
;
private
anchorElement
:
HTMLElement
;
...
...
@@ -310,6 +311,11 @@ export class FolderSettingsActionItem extends BaseActionItem {
this
.
update
();
}
public
setCount
(
value
:
number
):
void
{
this
.
_count
=
value
;
this
.
update
();
}
public
render
(
container
:
HTMLElement
):
void
{
this
.
builder
=
$
(
container
);
...
...
@@ -381,10 +387,18 @@ export class FolderSettingsActionItem extends BaseActionItem {
if
(
this
.
_folder
)
{
this
.
labelElement
.
textContent
=
this
.
_folder
.
name
;
this
.
anchorElement
.
title
=
this
.
_folder
.
name
;
this
.
detailsElement
.
textContent
=
this
.
_action
.
label
;
let
detailsText
=
this
.
_action
.
label
;
if
(
this
.
_count
)
{
detailsText
+=
` (
${
this
.
_count
}
)`
;
}
this
.
detailsElement
.
textContent
=
detailsText
;
DOM
.
toggleClass
(
this
.
dropDownElement
,
'
hide
'
,
workspace
.
folders
.
length
===
1
||
!
this
.
_action
.
checked
);
}
else
{
this
.
labelElement
.
textContent
=
this
.
_action
.
label
;
let
labelText
=
this
.
_action
.
label
;
if
(
this
.
_count
)
{
labelText
+=
` (
${
this
.
_count
}
)`
;
}
this
.
labelElement
.
textContent
=
labelText
;
this
.
detailsElement
.
textContent
=
''
;
this
.
anchorElement
.
title
=
this
.
_action
.
label
;
DOM
.
removeClass
(
this
.
dropDownElement
,
'
hide
'
);
...
...
@@ -436,6 +450,7 @@ export class SettingsTargetsWidget extends Widget {
private
userSettings
:
Action
;
private
workspaceSettings
:
Action
;
private
folderSettings
:
FolderSettingsActionItem
;
private
folderSettingCounts
=
new
Map
<
string
,
number
>
();
private
_settingsTarget
:
SettingsTarget
;
...
...
@@ -507,6 +522,12 @@ export class SettingsTargetsWidget extends Widget {
}
this
.
userSettings
.
label
=
label
;
}
else
if
(
settingsTarget
instanceof
URI
)
{
this
.
folderSettingCounts
.
set
(
settingsTarget
.
toString
(),
count
);
let
total
=
0
;
this
.
folderSettingCounts
.
forEach
(
count
=>
total
+=
count
);
this
.
folderSettings
.
setCount
(
total
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录