Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
80679b4c
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,发现更多精彩内容 >>
提交
80679b4c
编写于
6月 17, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
extensions UI
上级
746753fc
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
32 addition
and
26 deletion
+32
-26
src/vs/base/common/paging.ts
src/vs/base/common/paging.ts
+11
-0
src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts
...ch/parts/extensions/electron-browser/extensionsViewlet.ts
+18
-23
src/vs/workbench/parts/extensions/electron-browser/media/extensionsViewlet.css
...s/extensions/electron-browser/media/extensionsViewlet.css
+3
-3
未找到文件。
src/vs/base/common/paging.ts
浏览文件 @
80679b4c
...
...
@@ -105,6 +105,17 @@ export class PagedModel<T> implements IPagedModel<T> {
}
}
export
class
SinglePagePagedModel
<
T
>
extends
PagedModel
<
T
>
{
constructor
(
elements
:
T
[])
{
super
({
firstPage
:
elements
,
total
:
elements
.
length
,
pageSize
:
elements
.
length
,
getPage
:
null
});
}
}
/**
* Similar to array.map, `mapPager` lets you map the elements of an
* abstract paged collection to another type.
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts
浏览文件 @
80679b4c
...
...
@@ -13,7 +13,7 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import
{
Builder
,
Dimension
}
from
'
vs/base/browser/builder
'
;
import
{
Viewlet
}
from
'
vs/workbench/browser/viewlet
'
;
import
{
append
,
emmet
as
$
}
from
'
vs/base/browser/dom
'
;
import
{
PagedModel
}
from
'
vs/base/common/paging
'
;
import
{
PagedModel
,
SinglePagePagedModel
}
from
'
vs/base/common/paging
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
PagedList
}
from
'
vs/base/browser/ui/list/listPaging
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
...
...
@@ -23,15 +23,6 @@ import { ExtensionsInput } from '../common/extensionsInput';
import
{
IProgressService
}
from
'
vs/platform/progress/common/progress
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
function
singlePageModel
<
T
>
(
firstPage
:
T
[])
{
return
new
PagedModel
({
firstPage
,
total
:
firstPage
.
length
,
pageSize
:
firstPage
.
length
,
getPage
:
null
});
}
export
class
ExtensionsViewlet
extends
Viewlet
{
static
ID
:
string
=
'
workbench.viewlet.extensions
'
;
...
...
@@ -61,9 +52,10 @@ export class ExtensionsViewlet extends Viewlet {
parent
.
addClass
(
'
extensions-viewlet
'
);
this
.
root
=
parent
.
getHTMLElement
();
const
search
=
append
(
this
.
root
,
$
(
'
.search
'
));
this
.
searchBox
=
append
(
search
,
$
<
HTMLInputElement
>
(
'
input.search-box
'
));
this
.
searchBox
.
placeholder
=
localize
(
'
searchExtensions
'
,
"
Search Extensions
"
);
const
header
=
append
(
this
.
root
,
$
(
'
.header
'
));
this
.
searchBox
=
append
(
header
,
$
<
HTMLInputElement
>
(
'
input.search-box
'
));
this
.
searchBox
.
placeholder
=
localize
(
'
searchExtensions
'
,
"
Search Extensions in Marketplace
"
);
this
.
extensionsBox
=
append
(
this
.
root
,
$
(
'
.extensions
'
));
const
delegate
=
new
Delegate
();
...
...
@@ -103,19 +95,22 @@ export class ExtensionsViewlet extends Viewlet {
}
private
triggerSearch
(
text
:
string
=
''
,
delay
=
500
):
void
{
this
.
list
.
model
=
singlePageModel
([]);
const
promise
=
this
.
searchDelayer
.
trigger
(()
=>
this
.
doSearch
(
text
),
delay
);
const
progressRunner
=
this
.
progressService
.
show
(
true
);
always
(
promise
,
()
=>
progressRunner
.
done
());
this
.
searchDelayer
.
trigger
(()
=>
this
.
doSearch
(
text
),
text
?
delay
:
0
);
}
private
doSearch
(
text
:
string
=
''
):
TPromise
<
any
>
{
return
this
.
extensionService
.
getInstalled
()
.
then
(
result
=>
singlePageModel
(
result
))
// return this.galleryService.query({ text })
// .then(result => new PagedModel(result))
const
progressRunner
=
this
.
progressService
.
show
(
true
);
let
promise
:
TPromise
<
PagedModel
<
IExtension
|
IGalleryExtension
>>
;
if
(
text
)
{
promise
=
this
.
galleryService
.
query
({
text
})
.
then
(
result
=>
new
PagedModel
(
result
));
}
else
{
promise
=
this
.
extensionService
.
getInstalled
()
.
then
(
result
=>
new
SinglePagePagedModel
(
result
));
}
return
always
(
promise
,
()
=>
progressRunner
.
done
())
.
then
(
model
=>
this
.
list
.
model
=
model
);
}
...
...
src/vs/workbench/parts/extensions/electron-browser/media/extensionsViewlet.css
浏览文件 @
80679b4c
...
...
@@ -7,15 +7,15 @@
height
:
100%
;
}
.extensions-viewlet
>
.
search
{
.extensions-viewlet
>
.
header
{
height
:
38px
;
box-sizing
:
border-box
;
padding
:
5px
9px
5px
16px
;
}
.extensions-viewlet
>
.
search
>
.search-box
{
.extensions-viewlet
>
.
header
>
.search-box
{
width
:
100%
;
height
:
100%
;
height
:
26px
;
box-sizing
:
border-box
;
padding
:
0
3px
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录