Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
aae33579
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,发现更多精彩内容 >>
提交
aae33579
编写于
6月 21, 2018
作者:
C
Christof Marti
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
T extends QuickPickItem (#49340)
上级
ede8a0f3
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
46 addition
and
46 deletion
+46
-46
src/vs/platform/quickinput/common/quickInput.ts
src/vs/platform/quickinput/common/quickInput.ts
+7
-7
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+7
-7
src/vs/workbench/api/node/extHost.api.impl.ts
src/vs/workbench/api/node/extHost.api.impl.ts
+1
-1
src/vs/workbench/api/node/extHostQuickOpen.ts
src/vs/workbench/api/node/extHostQuickOpen.ts
+12
-12
src/vs/workbench/browser/parts/quickinput/quickInput.ts
src/vs/workbench/browser/parts/quickinput/quickInput.ts
+19
-19
未找到文件。
src/vs/platform/quickinput/common/quickInput.ts
浏览文件 @
aae33579
...
...
@@ -109,7 +109,7 @@ export interface IQuickInput {
dispose
():
void
;
}
export
interface
IQuickPick
extends
IQuickInput
{
export
interface
IQuickPick
<
T
extends
IQuickPickItem
>
extends
IQuickInput
{
value
:
string
;
...
...
@@ -123,7 +123,7 @@ export interface IQuickPick extends IQuickInput {
readonly
onDidTriggerButton
:
Event
<
IQuickInputButton
>
;
items
:
ReadonlyArray
<
IQuickPickItem
>
;
items
:
ReadonlyArray
<
T
>
;
canSelectMany
:
boolean
;
...
...
@@ -131,13 +131,13 @@ export interface IQuickPick extends IQuickInput {
matchOnDetail
:
boolean
;
activeItems
:
ReadonlyArray
<
IQuickPickItem
>
;
activeItems
:
ReadonlyArray
<
T
>
;
readonly
onDidChangeActive
:
Event
<
IQuickPickItem
[]
>
;
readonly
onDidChangeActive
:
Event
<
T
[]
>
;
selectedItems
:
ReadonlyArray
<
IQuickPickItem
>
;
selectedItems
:
ReadonlyArray
<
T
>
;
readonly
onDidChangeSelection
:
Event
<
IQuickPickItem
[]
>
;
readonly
onDidChangeSelection
:
Event
<
T
[]
>
;
}
export
interface
IInputBox
extends
IQuickInput
{
...
...
@@ -186,7 +186,7 @@ export interface IQuickInputService {
backButton
:
IQuickInputButton
;
createQuickPick
():
IQuickPick
;
createQuickPick
<
T
extends
IQuickPickItem
>
():
IQuickPick
<
T
>
;
createInputBox
():
IInputBox
;
focus
():
void
;
...
...
src/vs/vscode.proposed.d.ts
浏览文件 @
aae33579
...
...
@@ -525,7 +525,7 @@ declare module 'vscode' {
export
const
quickInputBackButton
:
QuickInputButton
;
export
function
createQuickPick
():
QuickPick
;
export
function
createQuickPick
<
T
extends
QuickPickItem
>
():
QuickPick
<
T
>
;
export
function
createInputBox
():
InputBox
;
}
...
...
@@ -553,7 +553,7 @@ declare module 'vscode' {
dispose
():
void
;
}
export
interface
QuickPick
extends
QuickInput
{
export
interface
QuickPick
<
T
extends
QuickPickItem
>
extends
QuickInput
{
value
:
string
;
...
...
@@ -567,7 +567,7 @@ declare module 'vscode' {
readonly
onDidTriggerButton
:
Event
<
QuickInputButton
>
;
items
:
ReadonlyArray
<
QuickPickItem
>
;
items
:
ReadonlyArray
<
T
>
;
canSelectMany
:
boolean
;
...
...
@@ -575,13 +575,13 @@ declare module 'vscode' {
matchOnDetail
:
boolean
;
activeItems
:
ReadonlyArray
<
QuickPickItem
>
;
activeItems
:
ReadonlyArray
<
T
>
;
readonly
onDidChangeActive
:
Event
<
QuickPickItem
[]
>
;
readonly
onDidChangeActive
:
Event
<
T
[]
>
;
selectedItems
:
ReadonlyArray
<
QuickPickItem
>
;
selectedItems
:
ReadonlyArray
<
T
>
;
readonly
onDidChangeSelection
:
Event
<
QuickPickItem
[]
>
;
readonly
onDidChangeSelection
:
Event
<
T
[]
>
;
}
export
interface
InputBox
extends
QuickInput
{
...
...
src/vs/workbench/api/node/extHost.api.impl.ts
浏览文件 @
aae33579
...
...
@@ -460,7 +460,7 @@ export function createApiFactory(
return
extHostQuickOpen
.
backButton
;
})();
},
createQuickPick
:
proposedApiFunction
(
extension
,
():
vscode
.
QuickPick
=>
{
createQuickPick
:
proposedApiFunction
(
extension
,
<
T
extends
vscode
.
QuickPickItem
>
():
vscode
.
QuickPick
<
T
>
=>
{
return
extHostQuickOpen
.
createQuickPick
(
extension
.
id
);
}),
createInputBox
:
proposedApiFunction
(
extension
,
():
vscode
.
InputBox
=>
{
...
...
src/vs/workbench/api/node/extHostQuickOpen.ts
浏览文件 @
aae33579
...
...
@@ -155,7 +155,7 @@ export class ExtHostQuickOpen implements ExtHostQuickOpenShape {
backButton
=
backButton
;
createQuickPick
(
extensionId
:
string
):
QuickPick
{
createQuickPick
<
T
extends
QuickPickItem
>
(
extensionId
:
string
):
QuickPick
<
T
>
{
const
session
=
new
ExtHostQuickPick
(
this
.
_proxy
,
extensionId
,
()
=>
this
.
_sessions
.
delete
(
session
.
_id
));
this
.
_sessions
.
set
(
session
.
_id
,
session
);
return
session
;
...
...
@@ -451,18 +451,18 @@ function getIconUri(iconPath: string | URI) {
return
URI
.
file
(
iconPath
);
}
class
ExtHostQuickPick
extends
ExtHostQuickInput
implements
QuickPick
{
class
ExtHostQuickPick
<
T
extends
QuickPickItem
>
extends
ExtHostQuickInput
implements
QuickPick
<
T
>
{
private
_items
:
QuickPickItem
[]
=
[];
private
_handlesToItems
=
new
Map
<
number
,
QuickPickItem
>
();
private
_itemsToHandles
=
new
Map
<
QuickPickItem
,
number
>
();
private
_items
:
T
[]
=
[];
private
_handlesToItems
=
new
Map
<
number
,
T
>
();
private
_itemsToHandles
=
new
Map
<
T
,
number
>
();
private
_canSelectMany
=
false
;
private
_matchOnDescription
=
true
;
private
_matchOnDetail
=
true
;
private
_activeItems
:
QuickPickItem
[]
=
[];
private
_onDidChangeActiveEmitter
=
new
Emitter
<
QuickPickItem
[]
>
();
private
_selectedItems
:
QuickPickItem
[]
=
[];
private
_onDidChangeSelectionEmitter
=
new
Emitter
<
QuickPickItem
[]
>
();
private
_activeItems
:
T
[]
=
[];
private
_onDidChangeActiveEmitter
=
new
Emitter
<
T
[]
>
();
private
_selectedItems
:
T
[]
=
[];
private
_onDidChangeSelectionEmitter
=
new
Emitter
<
T
[]
>
();
constructor
(
proxy
:
MainThreadQuickOpenShape
,
extensionId
:
string
,
onDispose
:
()
=>
void
)
{
super
(
proxy
,
extensionId
,
onDispose
);
...
...
@@ -477,7 +477,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return
this
.
_items
;
}
set
items
(
items
:
QuickPickItem
[])
{
set
items
(
items
:
T
[])
{
this
.
_items
=
items
.
slice
();
this
.
_handlesToItems
.
clear
();
this
.
_itemsToHandles
.
clear
();
...
...
@@ -527,7 +527,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return
this
.
_activeItems
;
}
set
activeItems
(
activeItems
:
QuickPickItem
[])
{
set
activeItems
(
activeItems
:
T
[])
{
this
.
_activeItems
=
activeItems
.
filter
(
item
=>
this
.
_itemsToHandles
.
has
(
item
));
this
.
update
({
activeItems
:
this
.
_activeItems
.
map
(
item
=>
this
.
_itemsToHandles
.
get
(
item
))
});
}
...
...
@@ -538,7 +538,7 @@ class ExtHostQuickPick extends ExtHostQuickInput implements QuickPick {
return
this
.
_selectedItems
;
}
set
selectedItems
(
selectedItems
:
QuickPickItem
[])
{
set
selectedItems
(
selectedItems
:
T
[])
{
this
.
_selectedItems
=
selectedItems
.
filter
(
item
=>
this
.
_itemsToHandles
.
has
(
item
));
this
.
update
({
selectedItems
:
this
.
_selectedItems
.
map
(
item
=>
this
.
_itemsToHandles
.
get
(
item
))
});
}
...
...
src/vs/workbench/browser/parts/quickinput/quickInput.ts
浏览文件 @
aae33579
...
...
@@ -276,23 +276,23 @@ class QuickInput implements IQuickInput {
}
}
class
QuickPick
extends
QuickInput
implements
IQuickPick
{
class
QuickPick
<
T
extends
IQuickPickItem
>
extends
QuickInput
implements
IQuickPick
<
T
>
{
private
_value
=
''
;
private
_placeholder
;
private
onDidChangeValueEmitter
=
new
Emitter
<
string
>
();
private
onDidAcceptEmitter
=
new
Emitter
<
string
>
();
private
_items
:
IQuickPickItem
[]
=
[];
private
_items
:
T
[]
=
[];
private
itemsUpdated
=
false
;
private
_canSelectMany
=
false
;
private
_matchOnDescription
=
true
;
private
_matchOnDetail
=
true
;
private
_activeItems
:
IQuickPickItem
[]
=
[];
private
_activeItems
:
T
[]
=
[];
private
activeItemsUpdated
=
false
;
private
onDidChangeActiveEmitter
=
new
Emitter
<
IQuickPickItem
[]
>
();
private
_selectedItems
:
IQuickPickItem
[]
=
[];
private
onDidChangeActiveEmitter
=
new
Emitter
<
T
[]
>
();
private
_selectedItems
:
T
[]
=
[];
private
selectedItemsUpdated
=
false
;
private
onDidChangeSelectionEmitter
=
new
Emitter
<
IQuickPickItem
[]
>
();
private
onDidChangeSelectionEmitter
=
new
Emitter
<
T
[]
>
();
private
quickNavigate
=
false
;
constructor
(
ui
:
QuickInputUI
)
{
...
...
@@ -331,7 +331,7 @@ class QuickPick extends QuickInput implements IQuickPick {
return
this
.
_items
;
}
set
items
(
items
:
IQuickPickItem
[])
{
set
items
(
items
:
T
[])
{
this
.
_items
=
items
;
this
.
itemsUpdated
=
true
;
this
.
update
();
...
...
@@ -368,7 +368,7 @@ class QuickPick extends QuickInput implements IQuickPick {
return
this
.
_activeItems
;
}
set
activeItems
(
activeItems
:
IQuickPickItem
[])
{
set
activeItems
(
activeItems
:
T
[])
{
this
.
_activeItems
=
activeItems
;
this
.
activeItemsUpdated
=
true
;
this
.
update
();
...
...
@@ -380,7 +380,7 @@ class QuickPick extends QuickInput implements IQuickPick {
return
this
.
_selectedItems
;
}
set
selectedItems
(
selectedItems
:
IQuickPickItem
[])
{
set
selectedItems
(
selectedItems
:
T
[])
{
this
.
_selectedItems
=
selectedItems
;
this
.
selectedItemsUpdated
=
true
;
this
.
update
();
...
...
@@ -433,8 +433,8 @@ class QuickPick extends QuickInput implements IQuickPick {
if
(
!
focusedItems
.
length
&&
!
this
.
_activeItems
.
length
)
{
return
;
}
this
.
_activeItems
=
focusedItems
;
this
.
onDidChangeActiveEmitter
.
fire
(
focusedItems
);
this
.
_activeItems
=
focusedItems
as
T
[]
;
this
.
onDidChangeActiveEmitter
.
fire
(
focusedItems
as
T
[]
);
}),
this
.
ui
.
list
.
onDidChangeSelection
(
selectedItems
=>
{
if
(
this
.
canSelectMany
)
{
...
...
@@ -444,16 +444,16 @@ class QuickPick extends QuickInput implements IQuickPick {
if
(
!
selectedItems
.
length
&&
!
this
.
_selectedItems
.
length
)
{
return
;
}
this
.
_selectedItems
=
selectedItems
;
this
.
onDidChangeSelectionEmitter
.
fire
(
selectedItems
);
this
.
_selectedItems
=
selectedItems
as
T
[]
;
this
.
onDidChangeSelectionEmitter
.
fire
(
selectedItems
as
T
[]
);
this
.
onDidAcceptEmitter
.
fire
();
}),
this
.
ui
.
list
.
onChangedCheckedElements
(
checkedItems
=>
{
if
(
!
this
.
canSelectMany
)
{
return
;
}
this
.
_selectedItems
=
checkedItems
;
this
.
onDidChangeSelectionEmitter
.
fire
(
checkedItems
);
this
.
_selectedItems
=
checkedItems
as
T
[]
;
this
.
onDidChangeSelectionEmitter
.
fire
(
checkedItems
as
T
[]
);
}),
);
}
...
...
@@ -893,12 +893,12 @@ export class QuickInputService extends Component implements IQuickInputService {
resolve
(
undefined
);
return
;
}
const
input
=
this
.
createQuickPick
();
const
input
=
this
.
createQuickPick
<
T
>
();
const
disposables
=
[
input
,
input
.
onDidAccept
(()
=>
{
if
(
input
.
canSelectMany
)
{
resolve
(
<
any
>
input
.
selectedItems
);
// TODO: generify interface to use T extends IQuickPickItem
resolve
(
<
any
>
input
.
selectedItems
.
slice
());
input
.
hide
();
}
else
{
const
result
=
input
.
activeItems
[
0
];
...
...
@@ -1005,9 +1005,9 @@ export class QuickInputService extends Component implements IQuickInputService {
backButton
=
backButton
;
createQuickPick
():
IQuickPick
{
createQuickPick
<
T
extends
IQuickPickItem
>
():
IQuickPick
<
T
>
{
this
.
create
();
return
new
QuickPick
(
this
.
ui
);
return
new
QuickPick
<
T
>
(
this
.
ui
);
}
createInputBox
():
IInputBox
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录