Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
e4a63849
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e4a63849
编写于
9月 05, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix #57490
上级
14e47b1f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
11 deletion
+30
-11
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
+30
-11
未找到文件。
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
浏览文件 @
e4a63849
...
...
@@ -132,9 +132,11 @@ export class BreadcrumbsControl {
static
readonly
Payload_RevealAside
=
{};
static
readonly
Payload_Pick
=
{};
static
CK_BreadcrumbsPossible
=
new
RawContextKey
(
'
breadcrumbsPossible
'
,
false
);
static
CK_BreadcrumbsVisible
=
new
RawContextKey
(
'
breadcrumbsVisible
'
,
false
);
static
CK_BreadcrumbsActive
=
new
RawContextKey
(
'
breadcrumbsActive
'
,
false
);
private
readonly
_ckBreadcrumbsPossible
:
IContextKey
<
boolean
>
;
private
readonly
_ckBreadcrumbsVisible
:
IContextKey
<
boolean
>
;
private
readonly
_ckBreadcrumbsActive
:
IContextKey
<
boolean
>
;
...
...
@@ -172,6 +174,7 @@ export class BreadcrumbsControl {
this
.
_widget
.
onDidChangeFocus
(
this
.
_updateCkBreadcrumbsActive
,
this
,
this
.
_disposables
);
this
.
_disposables
.
push
(
attachBreadcrumbsStyler
(
this
.
_widget
,
this
.
_themeService
,
{
breadcrumbsBackground
:
_options
.
breadcrumbsBackground
}));
this
.
_ckBreadcrumbsPossible
=
BreadcrumbsControl
.
CK_BreadcrumbsPossible
.
bindTo
(
this
.
_contextKeyService
);
this
.
_ckBreadcrumbsVisible
=
BreadcrumbsControl
.
CK_BreadcrumbsVisible
.
bindTo
(
this
.
_contextKeyService
);
this
.
_ckBreadcrumbsActive
=
BreadcrumbsControl
.
CK_BreadcrumbsActive
.
bindTo
(
this
.
_contextKeyService
);
...
...
@@ -183,6 +186,7 @@ export class BreadcrumbsControl {
dispose
():
void
{
this
.
_disposables
=
dispose
(
this
.
_disposables
);
this
.
_breadcrumbsDisposables
=
dispose
(
this
.
_breadcrumbsDisposables
);
this
.
_ckBreadcrumbsPossible
.
reset
();
this
.
_ckBreadcrumbsVisible
.
reset
();
this
.
_ckBreadcrumbsActive
.
reset
();
this
.
_cfUseQuickPick
.
dispose
();
...
...
@@ -216,6 +220,7 @@ export class BreadcrumbsControl {
if
(
!
input
||
!
input
.
getResource
()
||
(
input
.
getResource
().
scheme
!==
Schemas
.
untitled
&&
!
this
.
_fileService
.
canHandleResource
(
input
.
getResource
())))
{
// cleanup and return when there is no input or when
// we cannot handle this input
this
.
_ckBreadcrumbsPossible
.
set
(
false
);
if
(
!
this
.
isHidden
())
{
this
.
hide
();
return
true
;
...
...
@@ -226,6 +231,7 @@ export class BreadcrumbsControl {
dom
.
toggleClass
(
this
.
domNode
,
'
hidden
'
,
false
);
this
.
_ckBreadcrumbsVisible
.
set
(
true
);
this
.
_ckBreadcrumbsPossible
.
set
(
true
);
let
editor
=
this
.
_getActiveCodeEditor
();
let
model
=
new
EditorBreadcrumbsModel
(
input
.
getResource
(),
editor
,
this
.
_workspaceService
,
this
.
_configurationService
);
...
...
@@ -444,17 +450,10 @@ CommandsRegistry.registerCommand('breadcrumbs.toggle', accessor => {
});
// focus/focus-and-select
async
function
focusAndSelectHandler
(
accessor
:
ServicesAccessor
,
select
:
boolean
):
Promise
<
void
>
{
function
focusAndSelectHandler
(
accessor
:
ServicesAccessor
,
select
:
boolean
):
void
{
// find widget and focus/select
const
groups
=
accessor
.
get
(
IEditorGroupsService
);
const
breadcrumbs
=
accessor
.
get
(
IBreadcrumbsService
);
const
config
=
accessor
.
get
(
IConfigurationService
);
// check if enabled and iff not enable
const
isEnabled
=
BreadcrumbsConfig
.
IsEnabled
.
bindTo
(
config
);
if
(
!
isEnabled
.
getValue
())
{
await
isEnabled
.
updateValue
(
true
);
await
timeout
(
50
);
// hacky - the widget might not be ready yet...
}
// find widget and focus/select
const
widget
=
breadcrumbs
.
getWidget
(
groups
.
activeGroup
.
id
);
if
(
widget
)
{
const
item
=
tail
(
widget
.
getItems
());
...
...
@@ -475,17 +474,37 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({
id
:
'
breadcrumbs.focusAndSelect
'
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
US_DOT
,
when
:
undefined
,
when
:
BreadcrumbsControl
.
CK_BreadcrumbsPossible
,
handler
:
accessor
=>
focusAndSelectHandler
(
accessor
,
true
)
});
KeybindingsRegistry
.
registerCommandAndKeybindingRule
({
id
:
'
breadcrumbs.focus
'
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
US_SEMICOLON
,
when
:
undefined
,
when
:
BreadcrumbsControl
.
CK_BreadcrumbsPossible
,
handler
:
accessor
=>
focusAndSelectHandler
(
accessor
,
false
)
});
// this commands is only enabled when breadcrumbs are
// disabled which it then enables and focuses
KeybindingsRegistry
.
registerCommandAndKeybindingRule
({
id
:
'
breadcrumbs.toggleToOn
'
,
weight
:
KeybindingWeight
.
WorkbenchContrib
,
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
US_DOT
,
when
:
ContextKeyExpr
.
not
(
'
config.breadcrumbs.enabled
'
),
handler
:
async
accessor
=>
{
const
instant
=
accessor
.
get
(
IInstantiationService
);
const
config
=
accessor
.
get
(
IConfigurationService
);
// check if enabled and iff not enable
const
isEnabled
=
BreadcrumbsConfig
.
IsEnabled
.
bindTo
(
config
);
if
(
!
isEnabled
.
getValue
())
{
await
isEnabled
.
updateValue
(
true
);
await
timeout
(
50
);
// hacky - the widget might not be ready yet...
}
return
instant
.
invokeFunction
(
focusAndSelectHandler
,
true
);
}
});
// navigation
KeybindingsRegistry
.
registerCommandAndKeybindingRule
({
id
:
'
breadcrumbs.focusNext
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录