Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
9cd2bc03
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,发现更多精彩内容 >>
提交
9cd2bc03
编写于
10月 01, 2018
作者:
M
Michel73
提交者:
Christof Marti
10月 01, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prefill quick open (#55752)
Implemented prefilling quickOpen with last search input.
上级
cdb80f4d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
42 addition
and
4 deletion
+42
-4
src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
+10
-0
src/vs/workbench/browser/parts/quickopen/quickOpenController.ts
.../workbench/browser/parts/quickopen/quickOpenController.ts
+26
-4
src/vs/workbench/browser/quickopen.ts
src/vs/workbench/browser/quickopen.ts
+1
-0
src/vs/workbench/electron-browser/main.contribution.ts
src/vs/workbench/electron-browser/main.contribution.ts
+5
-0
未找到文件。
src/vs/base/parts/quickopen/browser/quickOpenWidget.ts
浏览文件 @
9cd2bc03
...
...
@@ -58,6 +58,7 @@ export interface IShowOptions {
quickNavigateConfiguration
?:
IQuickNavigateConfiguration
;
autoFocus
?:
IAutoFocus
;
inputSelection
?:
IRange
;
value
?:
string
;
}
export
class
QuickOpenController
extends
DefaultController
{
...
...
@@ -603,6 +604,9 @@ export class QuickOpenWidget extends Disposable implements IModelProvider {
if
(
types
.
isString
(
param
))
{
this
.
doShowWithPrefix
(
param
);
}
else
{
if
(
options
.
value
)
{
this
.
restoreLastInput
(
options
.
value
);
}
this
.
doShowWithInput
(
param
,
options
&&
options
.
autoFocus
?
options
.
autoFocus
:
{});
}
...
...
@@ -616,6 +620,12 @@ export class QuickOpenWidget extends Disposable implements IModelProvider {
}
}
private
restoreLastInput
(
lastInput
:
string
)
{
this
.
inputBox
.
value
=
lastInput
;
this
.
inputBox
.
select
();
this
.
callbacks
.
onType
(
lastInput
);
}
private
doShowWithPrefix
(
prefix
:
string
):
void
{
this
.
inputBox
.
value
=
prefix
;
this
.
callbacks
.
onType
(
prefix
);
...
...
src/vs/workbench/browser/parts/quickopen/quickOpenController.ts
浏览文件 @
9cd2bc03
...
...
@@ -29,7 +29,7 @@ import { EditorInput, IWorkbenchEditorConfiguration, IEditorInput } from 'vs/wor
import
{
Component
}
from
'
vs/workbench/common/component
'
;
import
{
Event
,
Emitter
}
from
'
vs/base/common/event
'
;
import
{
IPartService
}
from
'
vs/workbench/services/part/common/partService
'
;
import
{
QuickOpenHandler
,
QuickOpenHandlerDescriptor
,
IQuickOpenRegistry
,
Extensions
,
EditorQuickOpenEntry
,
CLOSE_ON_FOCUS_LOST_CONFIG
,
SEARCH_EDITOR_HISTORY
}
from
'
vs/workbench/browser/quickopen
'
;
import
{
QuickOpenHandler
,
QuickOpenHandlerDescriptor
,
IQuickOpenRegistry
,
Extensions
,
EditorQuickOpenEntry
,
CLOSE_ON_FOCUS_LOST_CONFIG
,
SEARCH_EDITOR_HISTORY
,
PREFILL_CONFIG
}
from
'
vs/workbench/browser/quickopen
'
;
import
*
as
errors
from
'
vs/base/common/errors
'
;
import
{
IQuickOpenService
,
IShowOptions
}
from
'
vs/platform/quickOpen/common/quickOpen
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
...
...
@@ -68,6 +68,10 @@ export class QuickOpenController extends Component implements IQuickOpenService
private
readonly
_onHide
:
Emitter
<
void
>
=
this
.
_register
(
new
Emitter
<
void
>
());
get
onHide
():
Event
<
void
>
{
return
this
.
_onHide
.
event
;
}
private
prefill
:
boolean
;
private
isQuickOpen
:
boolean
;
private
lastInputValue
:
string
;
private
lastSubmittedInputValue
:
string
;
private
quickOpenWidget
:
QuickOpenWidget
;
private
dimension
:
Dimension
;
private
mapResolvedHandlersToPrefix
:
{
[
prefix
:
string
]:
TPromise
<
QuickOpenHandler
>
;
}
=
Object
.
create
(
null
);
...
...
@@ -112,6 +116,7 @@ export class QuickOpenController extends Component implements IQuickOpenService
}
else
{
this
.
closeOnFocusLost
=
this
.
configurationService
.
getValue
(
CLOSE_ON_FOCUS_LOST_CONFIG
);
}
this
.
prefill
=
this
.
configurationService
.
getValue
(
PREFILL_CONFIG
);
this
.
searchInEditorHistory
=
this
.
configurationService
.
getValue
(
SEARCH_EDITOR_HISTORY
);
}
...
...
@@ -169,7 +174,7 @@ export class QuickOpenController extends Component implements IQuickOpenService
this
.
quickOpenWidget
=
this
.
_register
(
new
QuickOpenWidget
(
this
.
partService
.
getWorkbenchElement
(),
{
onOk
:
()
=>
{
/* ignore */
}
,
onOk
:
()
=>
this
.
onOk
()
,
onCancel
:
()
=>
{
/* ignore */
},
onType
:
(
value
:
string
)
=>
this
.
onType
(
value
||
''
),
onShow
:
()
=>
this
.
handleOnShow
(),
...
...
@@ -216,8 +221,11 @@ export class QuickOpenController extends Component implements IQuickOpenService
// Update context
const
registry
=
Registry
.
as
<
IQuickOpenRegistry
>
(
Extensions
.
Quickopen
);
this
.
setQuickOpenContextKey
(
registry
.
getDefaultQuickOpenHandler
().
contextKey
);
this
.
quickOpenWidget
.
show
(
editorHistory
,
{
quickNavigateConfiguration
,
autoFocus
,
inputSelection
});
if
(
this
.
prefill
)
{
this
.
quickOpenWidget
.
show
(
editorHistory
,
{
value
:
this
.
lastSubmittedInputValue
,
quickNavigateConfiguration
,
autoFocus
,
inputSelection
});
}
else
{
this
.
quickOpenWidget
.
show
(
editorHistory
,
{
quickNavigateConfiguration
,
autoFocus
,
inputSelection
});
}
}
}
...
...
@@ -323,6 +331,12 @@ export class QuickOpenController extends Component implements IQuickOpenService
return
new
QuickOpenModel
(
entries
,
this
.
actionProvider
);
}
private
onOk
():
void
{
if
(
this
.
isQuickOpen
)
{
this
.
lastSubmittedInputValue
=
this
.
lastInputValue
;
}
}
private
onType
(
value
:
string
):
void
{
// cancel any pending get results invocation and create new
...
...
@@ -360,6 +374,10 @@ export class QuickOpenController extends Component implements IQuickOpenService
this
.
quickOpenWidget
.
setInput
(
this
.
getEditorHistoryWithGroupLabel
(),
{
autoFocusFirstEntry
:
true
});
// If quickOpen entered empty we have to clear the prefill-cache
this
.
lastInputValue
=
''
;
this
.
isQuickOpen
=
true
;
return
;
}
...
...
@@ -367,11 +385,15 @@ export class QuickOpenController extends Component implements IQuickOpenService
let
resultPromiseDone
=
false
;
if
(
handlerDescriptor
)
{
this
.
isQuickOpen
=
false
;
resultPromise
=
this
.
handleSpecificHandler
(
handlerDescriptor
,
value
,
pendingResultsInvocationToken
);
}
// Otherwise handle default handlers if no specific handler present
else
{
this
.
isQuickOpen
=
true
;
// Cache the value for prefilling the quickOpen next time is opened
this
.
lastInputValue
=
trimmedValue
;
resultPromise
=
this
.
handleDefaultHandler
(
defaultHandlerDescriptor
,
value
,
pendingResultsInvocationToken
);
}
...
...
src/vs/workbench/browser/quickopen.ts
浏览文件 @
9cd2bc03
...
...
@@ -22,6 +22,7 @@ import { IEditorService, SIDE_GROUP, ACTIVE_GROUP } from 'vs/workbench/services/
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
export
const
CLOSE_ON_FOCUS_LOST_CONFIG
=
'
workbench.quickOpen.closeOnFocusLost
'
;
export
const
PREFILL_CONFIG
=
'
workbench.quickOpen.prefill
'
;
export
const
SEARCH_EDITOR_HISTORY
=
'
search.quickOpen.includeHistory
'
;
export
interface
IWorkbenchQuickOpenConfiguration
{
...
...
src/vs/workbench/electron-browser/main.contribution.ts
浏览文件 @
9cd2bc03
...
...
@@ -579,6 +579,11 @@ configurationRegistry.registerConfiguration({
'
description
'
:
nls
.
localize
(
'
closeOnFocusLost
'
,
"
Controls whether Quick Open should close automatically once it loses focus.
"
),
'
default
'
:
true
},
'
workbench.quickOpen.prefill
'
:
{
'
type
'
:
'
boolean
'
,
'
description
'
:
nls
.
localize
(
'
workbench.quickOpen.prefill
'
,
"
Controls whether to prefill the Quick Open with last input.
"
),
'
default
'
:
true
},
'
workbench.settings.openDefaultSettings
'
:
{
'
type
'
:
'
boolean
'
,
'
description
'
:
nls
.
localize
(
'
openDefaultSettings
'
,
"
Controls whether opening settings also opens an editor showing all default settings.
"
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录