Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
d5152c65
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,发现更多精彩内容 >>
提交
d5152c65
编写于
3月 22, 2019
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
breadcrumbs - fix open to side issue
上级
01a3f15a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
14 deletion
+28
-14
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
+9
-4
src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts
src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts
+19
-10
未找到文件。
src/vs/workbench/browser/parts/editor/breadcrumbsControl.ts
浏览文件 @
d5152c65
...
...
@@ -336,7 +336,12 @@ export class BreadcrumbsControl {
editorViewState
=
undefined
;
}
this
.
_contextViewService
.
hideContextView
(
this
);
this
.
_revealInEditor
(
event
,
data
.
target
,
this
.
_getEditorGroup
(
data
.
payload
&&
data
.
payload
.
originalEvent
),
(
data
.
payload
&&
data
.
payload
.
originalEvent
&&
data
.
payload
.
originalEvent
.
middleButton
));
const
group
=
(
picker
.
useAltAsMultipleSelectionModifier
&&
(
data
.
browserEvent
as
MouseEvent
).
metaKey
)
||
(
!
picker
.
useAltAsMultipleSelectionModifier
&&
(
data
.
browserEvent
as
MouseEvent
).
altKey
)
?
SIDE_GROUP
:
ACTIVE_GROUP
;
this
.
_revealInEditor
(
event
,
data
.
target
,
group
,
(
data
.
browserEvent
as
MouseEvent
).
button
===
1
);
/* __GDPR__
"breadcrumbs/open" : {
"type": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
...
...
@@ -464,10 +469,10 @@ export class BreadcrumbsControl {
}
}
private
_getEditorGroup
(
data
:
StandardMouseEvent
|
object
):
SIDE_GROUP_TYPE
|
ACTIVE_GROUP_TYPE
|
undefined
{
if
(
data
===
BreadcrumbsControl
.
Payload_RevealAside
||
(
data
instanceof
StandardMouseEvent
&&
data
.
altKey
)
)
{
private
_getEditorGroup
(
data
:
object
):
SIDE_GROUP_TYPE
|
ACTIVE_GROUP_TYPE
|
undefined
{
if
(
data
===
BreadcrumbsControl
.
Payload_RevealAside
)
{
return
SIDE_GROUP
;
}
else
if
(
data
===
BreadcrumbsControl
.
Payload_Reveal
||
(
data
instanceof
StandardMouseEvent
&&
data
.
metaKey
)
)
{
}
else
if
(
data
===
BreadcrumbsControl
.
Payload_Reveal
)
{
return
ACTIVE_GROUP
;
}
else
{
return
undefined
;
...
...
src/vs/workbench/browser/parts/editor/breadcrumbsPicker.ts
浏览文件 @
d5152c65
...
...
@@ -48,6 +48,11 @@ interface ILayoutInfo {
type
Tree
<
I
,
E
>
=
WorkbenchDataTree
<
I
,
E
,
FuzzyScore
>
|
WorkbenchAsyncDataTree
<
I
,
E
,
FuzzyScore
>
;
export
interface
SelectEvent
{
target
:
any
;
browserEvent
:
UIEvent
;
}
export
abstract
class
BreadcrumbsPicker
{
protected
readonly
_disposables
=
new
Array
<
IDisposable
>
();
...
...
@@ -58,11 +63,11 @@ export abstract class BreadcrumbsPicker {
protected
_fakeEvent
=
new
UIEvent
(
'
fakeEvent
'
);
protected
_layoutInfo
:
ILayoutInfo
;
private
readonly
_onDidPickElement
=
new
Emitter
<
{
target
:
any
,
payload
:
any
}
>
();
readonly
onDidPickElement
:
Event
<
{
target
:
any
,
payload
:
any
}
>
=
this
.
_onDidPickElement
.
event
;
private
readonly
_onDidPickElement
=
new
Emitter
<
SelectEvent
>
();
readonly
onDidPickElement
:
Event
<
SelectEvent
>
=
this
.
_onDidPickElement
.
event
;
private
readonly
_onDidFocusElement
=
new
Emitter
<
{
target
:
any
,
payload
:
any
}
>
();
readonly
onDidFocusElement
:
Event
<
{
target
:
any
,
payload
:
any
}
>
=
this
.
_onDidFocusElement
.
event
;
private
readonly
_onDidFocusElement
=
new
Emitter
<
SelectEvent
>
();
readonly
onDidFocusElement
:
Event
<
SelectEvent
>
=
this
.
_onDidFocusElement
.
event
;
constructor
(
parent
:
HTMLElement
,
...
...
@@ -106,18 +111,18 @@ export abstract class BreadcrumbsPicker {
this
.
_disposables
.
push
(
this
.
_tree
.
onDidChangeSelection
(
e
=>
{
if
(
e
.
browserEvent
!==
this
.
_fakeEvent
)
{
const
target
=
this
.
_getTargetFromEvent
(
e
.
elements
[
0
]
,
e
.
browserEvent
);
const
target
=
this
.
_getTargetFromEvent
(
e
.
elements
[
0
]);
if
(
target
)
{
setTimeout
(
_
=>
{
// need to debounce here because this disposes the tree and the tree doesn't like to be disposed on click
this
.
_onDidPickElement
.
fire
({
target
,
payload
:
undefined
});
this
.
_onDidPickElement
.
fire
({
target
,
browserEvent
:
e
.
browserEvent
||
new
UIEvent
(
'
fake
'
)
});
},
0
);
}
}
}));
this
.
_disposables
.
push
(
this
.
_tree
.
onDidChangeFocus
(
e
=>
{
const
target
=
this
.
_getTargetFromEvent
(
e
.
elements
[
0
]
,
e
.
browserEvent
);
const
target
=
this
.
_getTargetFromEvent
(
e
.
elements
[
0
]);
if
(
target
)
{
this
.
_onDidFocusElement
.
fire
({
target
,
payload
:
undefined
});
this
.
_onDidFocusElement
.
fire
({
target
,
browserEvent
:
e
.
browserEvent
||
new
UIEvent
(
'
fake
'
)
});
}
}));
this
.
_disposables
.
push
(
this
.
_tree
.
onDidChangeContentHeight
(()
=>
{
...
...
@@ -155,9 +160,13 @@ export abstract class BreadcrumbsPicker {
}
get
useAltAsMultipleSelectionModifier
()
{
return
this
.
_tree
.
useAltAsMultipleSelectionModifier
;
}
protected
abstract
_setInput
(
element
:
BreadcrumbElement
):
Promise
<
void
>
;
protected
abstract
_createTree
(
container
:
HTMLElement
):
Tree
<
any
,
any
>
;
protected
abstract
_getTargetFromEvent
(
element
:
any
,
payload
:
UIEvent
|
undefined
):
any
|
undefined
;
protected
abstract
_getTargetFromEvent
(
element
:
any
):
any
|
undefined
;
}
//#region - Files
...
...
@@ -425,7 +434,7 @@ export class BreadcrumbsFilePicker extends BreadcrumbsPicker {
});
}
protected
_getTargetFromEvent
(
element
:
any
,
_payload
:
any
):
any
|
undefined
{
protected
_getTargetFromEvent
(
element
:
any
):
any
|
undefined
{
// todo@joh
if
(
element
&&
!
IWorkspaceFolder
.
isIWorkspaceFolder
(
element
)
&&
!
(
element
as
IFileStat
).
isDirectory
)
{
return
new
FileElement
((
element
as
IFileStat
).
resource
,
FileKind
.
FILE
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录