Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
86b91953
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,发现更多精彩内容 >>
提交
86b91953
编写于
3月 20, 2020
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
quick access - clean up
上级
5d18ad4c
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
69 addition
and
75 deletion
+69
-75
src/vs/base/browser/ui/list/listWidget.ts
src/vs/base/browser/ui/list/listWidget.ts
+5
-1
src/vs/base/parts/quickinput/browser/quickInput.ts
src/vs/base/parts/quickinput/browser/quickInput.ts
+15
-14
src/vs/base/parts/quickinput/browser/quickInputList.ts
src/vs/base/parts/quickinput/browser/quickInputList.ts
+40
-6
src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.ts
...h/contrib/quickaccess/browser/quickAccess.contribution.ts
+0
-19
src/vs/workbench/contrib/quickaccess/browser/quickAccessCommands.ts
...kbench/contrib/quickaccess/browser/quickAccessCommands.ts
+0
-28
src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts
...s/workbench/contrib/search/browser/anythingQuickAccess.ts
+9
-7
未找到文件。
src/vs/base/browser/ui/list/listWidget.ts
浏览文件 @
86b91953
...
...
@@ -1501,9 +1501,13 @@ export class List<T> implements ISpliceable<T>, IDisposable {
}
focusFirst
(
browserEvent
?:
UIEvent
,
filter
?:
(
element
:
T
)
=>
boolean
):
void
{
this
.
focusNth
(
0
,
browserEvent
,
filter
);
}
focusNth
(
n
:
number
,
browserEvent
?:
UIEvent
,
filter
?:
(
element
:
T
)
=>
boolean
):
void
{
if
(
this
.
length
===
0
)
{
return
;
}
const
index
=
this
.
findNextIndex
(
0
,
false
,
filter
);
const
index
=
this
.
findNextIndex
(
n
,
false
,
filter
);
if
(
index
>
-
1
)
{
this
.
setFocus
([
index
],
browserEvent
);
...
...
src/vs/base/parts/quickinput/browser/quickInput.ts
浏览文件 @
86b91953
...
...
@@ -7,7 +7,7 @@ import 'vs/css!./media/quickInput';
import
{
IQuickPickItem
,
IPickOptions
,
IInputOptions
,
IQuickNavigateConfiguration
,
IQuickPick
,
IQuickInput
,
IQuickInputButton
,
IInputBox
,
IQuickPickItemButtonEvent
,
QuickPickInput
,
IQuickPickSeparator
,
IKeyMods
,
IQuickPickAcceptEvent
,
NO_KEY_MODS
}
from
'
vs/base/parts/quickinput/common/quickInput
'
;
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
import
{
QuickInputList
}
from
'
./quickInputList
'
;
import
{
QuickInputList
,
QuickInputListFocus
}
from
'
./quickInputList
'
;
import
{
QuickInputBox
}
from
'
./quickInputBox
'
;
import
{
KeyCode
}
from
'
vs/base/common/keyCodes
'
;
import
{
StandardKeyboardEvent
}
from
'
vs/base/browser/keyboardEvent
'
;
...
...
@@ -629,7 +629,7 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
private
trySelectFirst
()
{
if
(
this
.
autoFocusOnList
)
{
if
(
!
this
.
ui
.
isScreenReaderOptimized
()
&&
!
this
.
canSelectMany
)
{
this
.
ui
.
list
.
focus
(
'
First
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
First
);
}
}
}
...
...
@@ -656,7 +656,7 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
this
.
visibleDisposables
.
add
(
this
.
ui
.
inputBox
.
onKeyDown
(
event
=>
{
switch
(
event
.
keyCode
)
{
case
KeyCode
.
DownArrow
:
this
.
ui
.
list
.
focus
(
'
Next
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
Next
);
if
(
this
.
canSelectMany
)
{
this
.
ui
.
list
.
domFocus
();
}
...
...
@@ -664,9 +664,9 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
break
;
case
KeyCode
.
UpArrow
:
if
(
this
.
ui
.
list
.
getFocusedElements
().
length
)
{
this
.
ui
.
list
.
focus
(
'
Previous
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
Previous
);
}
else
{
this
.
ui
.
list
.
focus
(
'
Last
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
Last
);
}
if
(
this
.
canSelectMany
)
{
this
.
ui
.
list
.
domFocus
();
...
...
@@ -675,9 +675,9 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
break
;
case
KeyCode
.
PageDown
:
if
(
this
.
ui
.
list
.
getFocusedElements
().
length
)
{
this
.
ui
.
list
.
focus
(
'
NextPage
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
NextPage
);
}
else
{
this
.
ui
.
list
.
focus
(
'
First
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
First
);
}
if
(
this
.
canSelectMany
)
{
this
.
ui
.
list
.
domFocus
();
...
...
@@ -686,9 +686,9 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
break
;
case
KeyCode
.
PageUp
:
if
(
this
.
ui
.
list
.
getFocusedElements
().
length
)
{
this
.
ui
.
list
.
focus
(
'
PreviousPage
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
PreviousPage
);
}
else
{
this
.
ui
.
list
.
focus
(
'
Last
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
Last
);
}
if
(
this
.
canSelectMany
)
{
this
.
ui
.
list
.
domFocus
();
...
...
@@ -768,7 +768,7 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
private
registerQuickNavigation
()
{
return
dom
.
addDisposableListener
(
this
.
ui
.
container
,
dom
.
EventType
.
KEY_UP
,
e
=>
{
if
(
this
.
canSelectMany
||
!
this
.
quickNavigate
)
{
if
(
this
.
canSelectMany
||
!
this
.
_
quickNavigate
)
{
return
;
}
...
...
@@ -776,7 +776,7 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
const
keyCode
=
keyboardEvent
.
keyCode
;
// Select element when keys are pressed that signal it
const
quickNavKeys
=
this
.
quickNavigate
.
keybindings
;
const
quickNavKeys
=
this
.
_
quickNavigate
.
keybindings
;
const
wasTriggerKeyPressed
=
quickNavKeys
.
some
(
k
=>
{
const
[
firstPart
,
chordPart
]
=
k
.
getParts
();
if
(
chordPart
)
{
...
...
@@ -850,11 +850,12 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
this
.
ui
.
checkAll
.
checked
=
this
.
ui
.
list
.
getAllVisibleChecked
();
this
.
ui
.
visibleCount
.
setCount
(
this
.
ui
.
list
.
getVisibleCount
());
this
.
ui
.
count
.
setCount
(
this
.
ui
.
list
.
getCheckedCount
());
this
.
trySelectFirst
();
if
(
this
.
_quickNavigate
&&
previousItemCount
===
0
&&
this
.
items
.
length
>
1
)
{
// quick navigate: automatically focus the second entry
// so that upon release the item is picked directly
this
.
ui
.
list
.
focus
(
'
Next
'
);
this
.
ui
.
list
.
focus
(
QuickInputListFocus
.
Second
);
}
else
{
this
.
trySelectFirst
();
}
}
if
(
this
.
ui
.
container
.
classList
.
contains
(
'
show-checkboxes
'
)
!==
!!
this
.
canSelectMany
)
{
...
...
@@ -1544,7 +1545,7 @@ export class QuickInputController extends Disposable {
navigate
(
next
:
boolean
,
quickNavigate
?:
IQuickNavigateConfiguration
)
{
if
(
this
.
isDisplayed
()
&&
this
.
getUI
().
list
.
isDisplayed
())
{
this
.
getUI
().
list
.
focus
(
next
?
'
Next
'
:
'
Previous
'
);
this
.
getUI
().
list
.
focus
(
next
?
QuickInputListFocus
.
Next
:
QuickInputListFocus
.
Previous
);
if
(
quickNavigate
&&
this
.
controller
instanceof
QuickPick
)
{
this
.
controller
.
quickNavigate
=
quickNavigate
;
}
...
...
src/vs/base/parts/quickinput/browser/quickInputList.ts
浏览文件 @
86b91953
...
...
@@ -222,6 +222,16 @@ class ListElementDelegate implements IListVirtualDelegate<ListElement> {
}
}
export
enum
QuickInputListFocus
{
First
=
1
,
Second
,
Last
,
Next
,
Previous
,
NextPage
,
PreviousPage
}
export
class
QuickInputList
{
readonly
id
:
string
;
...
...
@@ -474,18 +484,42 @@ export class QuickInputList {
this
.
list
.
getHTMLElement
().
style
.
pointerEvents
=
value
?
null
:
'
none
'
;
}
focus
(
what
:
'
First
'
|
'
Last
'
|
'
Next
'
|
'
Previous
'
|
'
NextPage
'
|
'
PreviousPage
'
):
void
{
focus
(
what
:
QuickInputListFocus
):
void
{
if
(
!
this
.
list
.
length
)
{
return
;
}
if
((
what
===
'
Next
'
||
what
===
'
NextPage
'
)
&&
this
.
list
.
getFocus
()[
0
]
===
this
.
list
.
length
-
1
)
{
what
=
'
First
'
;
if
((
what
===
QuickInputListFocus
.
Next
||
what
===
QuickInputListFocus
.
NextPage
)
&&
this
.
list
.
getFocus
()[
0
]
===
this
.
list
.
length
-
1
)
{
what
=
QuickInputListFocus
.
First
;
}
if
((
what
===
'
Previous
'
||
what
===
'
PreviousPage
'
)
&&
this
.
list
.
getFocus
()[
0
]
===
0
)
{
what
=
'
Last
'
;
if
((
what
===
QuickInputListFocus
.
Previous
||
what
===
QuickInputListFocus
.
PreviousPage
)
&&
this
.
list
.
getFocus
()[
0
]
===
0
)
{
what
=
QuickInputListFocus
.
Last
;
}
this
.
list
[
'
focus
'
+
what
as
'
focusFirst
'
|
'
focusLast
'
|
'
focusNext
'
|
'
focusPrevious
'
|
'
focusNextPage
'
|
'
focusPreviousPage
'
]();
switch
(
what
)
{
case
QuickInputListFocus
.
First
:
this
.
list
.
focusFirst
();
break
;
case
QuickInputListFocus
.
Second
:
this
.
list
.
focusNth
(
1
);
break
;
case
QuickInputListFocus
.
Last
:
this
.
list
.
focusLast
();
break
;
case
QuickInputListFocus
.
Next
:
this
.
list
.
focusNext
();
break
;
case
QuickInputListFocus
.
Previous
:
this
.
list
.
focusPrevious
();
break
;
case
QuickInputListFocus
.
NextPage
:
this
.
list
.
focusNextPage
();
break
;
case
QuickInputListFocus
.
PreviousPage
:
this
.
list
.
focusPreviousPage
();
break
;
}
this
.
list
.
reveal
(
this
.
list
.
getFocus
()[
0
]);
}
...
...
src/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.ts
浏览文件 @
86b91953
...
...
@@ -8,10 +8,7 @@ import { IQuickAccessRegistry, Extensions } from 'vs/platform/quickinput/common/
import
{
Registry
}
from
'
vs/platform/registry/common/platform
'
;
import
{
HelpQuickAccessProvider
}
from
'
vs/platform/quickinput/browser/helpQuickAccess
'
;
import
{
ViewQuickAccessProvider
}
from
'
vs/workbench/contrib/quickaccess/browser/viewQuickAccess
'
;
import
{
QUICK_ACCESS_COMMAND_ID
,
quickAccessCommand
}
from
'
vs/workbench/contrib/quickaccess/browser/quickAccessCommands
'
;
import
{
MenuRegistry
,
MenuId
}
from
'
vs/platform/actions/common/actions
'
;
import
{
CommandsQuickAccessProvider
}
from
'
vs/workbench/contrib/quickaccess/browser/commandsQuickAccess
'
;
import
{
KeybindingsRegistry
,
KeybindingWeight
}
from
'
vs/platform/keybinding/common/keybindingsRegistry
'
;
const
registry
=
Registry
.
as
<
IQuickAccessRegistry
>
(
Extensions
.
Quickaccess
);
...
...
@@ -35,19 +32,3 @@ registry.registerQuickAccessProvider({
placeholder
:
localize
(
'
commandsQuickAccessPlaceholder
'
,
"
Type the name of a command to run.
"
),
helpEntries
:
[{
description
:
localize
(
'
commandsQuickAccess
'
,
"
Show and Run Commands
"
),
needsEditor
:
false
}]
});
MenuRegistry
.
appendMenuItem
(
MenuId
.
CommandPalette
,
{
command
:
{
id
:
QUICK_ACCESS_COMMAND_ID
,
title
:
{
value
:
localize
(
'
openQuickAccess
'
,
"
Open Quick Access
"
),
original
:
'
Open Quick Access
'
},
category
:
localize
(
'
quickAccess
'
,
"
Quick Access
"
)
}
});
KeybindingsRegistry
.
registerCommandAndKeybindingRule
({
id
:
QUICK_ACCESS_COMMAND_ID
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
when
:
undefined
,
handler
:
quickAccessCommand
.
handler
});
src/vs/workbench/contrib/quickaccess/browser/quickAccessCommands.ts
已删除
100644 → 0
浏览文件 @
5d18ad4c
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
IQuickInputService
}
from
'
vs/platform/quickinput/common/quickInput
'
;
import
{
ICommand
}
from
'
vs/platform/commands/common/commands
'
;
import
{
ServicesAccessor
}
from
'
vs/platform/instantiation/common/instantiation
'
;
export
const
QUICK_ACCESS_COMMAND_ID
=
'
workbench.action.openQuickAccess
'
;
export
const
quickAccessCommand
:
ICommand
=
{
id
:
QUICK_ACCESS_COMMAND_ID
,
handler
:
async
function
(
accessor
:
ServicesAccessor
,
prefix
:
string
|
null
=
null
)
{
const
quickInputService
=
accessor
.
get
(
IQuickInputService
);
quickInputService
.
quickAccess
.
show
(
typeof
prefix
===
'
string
'
?
prefix
:
undefined
);
},
description
:
{
description
:
`Quick access`
,
args
:
[{
name
:
'
prefix
'
,
schema
:
{
'
type
'
:
'
string
'
}
}]
}
};
src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts
浏览文件 @
86b91953
...
...
@@ -62,11 +62,13 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
constructor
(
private
readonly
provider
:
AnythingQuickAccessProvider
)
{
}
reset
():
void
{
reset
(
prepareForSearching
:
boolean
):
void
{
// Caches
this
.
fileQueryCache
=
this
.
provider
.
createFileQueryCache
();
this
.
scorerCache
=
Object
.
create
(
null
);
if
(
prepareForSearching
)
{
this
.
fileQueryCache
=
this
.
provider
.
createFileQueryCache
();
this
.
scorerCache
=
Object
.
create
(
null
);
}
// Other
this
.
lastOriginalFilter
=
undefined
;
...
...
@@ -111,7 +113,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
provide
(
picker
:
IQuickPick
<
IAnythingQuickPickItem
>
,
token
:
CancellationToken
):
IDisposable
{
// Reset the pick state for this run
this
.
pickState
.
reset
();
this
.
pickState
.
reset
(
!
picker
.
quickNavigate
);
// Start picker
return
super
.
provide
(
picker
,
token
);
...
...
@@ -223,7 +225,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
private
readonly
labelOnlyEditorHistoryPickAccessor
=
new
QuickPickItemScorerAccessor
({
skipDescription
:
true
});
pr
otected
getEditorHistoryPicks
(
query
:
IPreparedQuery
):
Array
<
IAnythingQuickPickItem
>
{
pr
ivate
getEditorHistoryPicks
(
query
:
IPreparedQuery
):
Array
<
IAnythingQuickPickItem
>
{
const
configuration
=
this
.
configuration
;
// Just return all history entries if not searching
...
...
@@ -282,7 +284,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
).
load
();
}
pr
otected
async
getFilePicks
(
query
:
IPreparedQuery
,
excludes
:
ResourceMap
<
boolean
>
,
token
:
CancellationToken
):
Promise
<
Array
<
IAnythingQuickPickItem
>>
{
pr
ivate
async
getFilePicks
(
query
:
IPreparedQuery
,
excludes
:
ResourceMap
<
boolean
>
,
token
:
CancellationToken
):
Promise
<
Array
<
IAnythingQuickPickItem
>>
{
if
(
!
query
.
value
)
{
return
[];
}
...
...
@@ -444,7 +446,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
private
symbolsQuickAccess
=
this
.
_register
(
this
.
instantiationService
.
createInstance
(
SymbolsQuickAccessProvider
));
pr
otected
async
getSymbolPicks
(
query
:
IPreparedQuery
,
token
:
CancellationToken
):
Promise
<
Array
<
IAnythingQuickPickItem
>>
{
pr
ivate
async
getSymbolPicks
(
query
:
IPreparedQuery
,
token
:
CancellationToken
):
Promise
<
Array
<
IAnythingQuickPickItem
>>
{
const
configuration
=
this
.
configuration
;
if
(
!
query
.
value
||
// we need a value for search for
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录