Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
0d1810ef
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,发现更多精彩内容 >>
提交
0d1810ef
编写于
5月 23, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
grid - fix commands context lookup
上级
80596479
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
22 deletion
+32
-22
src/vs/workbench/browser/parts/editor/editorCommands.ts
src/vs/workbench/browser/parts/editor/editorCommands.ts
+32
-22
未找到文件。
src/vs/workbench/browser/parts/editor/editorCommands.ts
浏览文件 @
0d1810ef
...
...
@@ -297,10 +297,10 @@ function registerDiffEditorCommands(): void {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
void
0
,
handler
:
(
accessor
,
resource
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
{
control
}
=
resolveCommandsContext
(
editorGroupService
,
context
);
const
{
control
}
=
resolveCommandsContext
(
editorGroupService
,
getCommandsContext
(
resourceOrContext
,
context
)
);
if
(
control
instanceof
TextDiffEditor
)
{
const
widget
=
control
.
getControl
();
const
isInlineMode
=
!
widget
.
renderSideBySide
;
...
...
@@ -312,6 +312,14 @@ function registerDiffEditorCommands(): void {
});
}
function
getCommandsContext
(
resourceOrContext
:
URI
|
IEditorCommandsContext
,
context
?:
IEditorCommandsContext
):
IEditorCommandsContext
{
if
(
URI
.
isUri
(
resourceOrContext
))
{
return
context
;
}
return
resourceOrContext
;
}
function
registerOpenEditorAtIndexCommands
():
void
{
// Keybindings to focus a specific index in the tab folder if tabs are enabled
...
...
@@ -467,8 +475,8 @@ function registerSplitEditorCommands() {
{
id
:
SPLIT_EDITOR_LEFT
,
direction
:
GroupDirection
.
LEFT
},
{
id
:
SPLIT_EDITOR_RIGHT
,
direction
:
GroupDirection
.
RIGHT
}
].
forEach
(({
id
,
direction
})
=>
{
CommandsRegistry
.
registerCommand
(
id
,
function
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
{
splitEditor
(
accessor
.
get
(
IEditorGroupsService
),
direction
,
context
);
CommandsRegistry
.
registerCommand
(
id
,
function
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
{
splitEditor
(
accessor
.
get
(
IEditorGroupsService
),
direction
,
getCommandsContext
(
resourceOrContext
,
context
)
);
});
});
}
...
...
@@ -480,9 +488,9 @@ function registerCloseEditorCommands() {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyCode
.
KEY_U
),
handler
:
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
contexts
=
getMultiSelectedEditorContexts
(
context
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
contexts
=
getMultiSelectedEditorContexts
(
getCommandsContext
(
resourceOrContext
,
context
)
,
accessor
.
get
(
IListService
),
editorGroupService
);
if
(
contexts
.
length
===
0
&&
editorGroupService
.
activeGroup
)
{
contexts
.
push
({
groupId
:
editorGroupService
.
activeGroup
.
id
});
// If command is triggered from the command palette use the active group
}
...
...
@@ -498,9 +506,9 @@ function registerCloseEditorCommands() {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyCode
.
KEY_W
),
handler
:
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
contexts
=
getMultiSelectedEditorContexts
(
context
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
contexts
=
getMultiSelectedEditorContexts
(
getCommandsContext
(
resourceOrContext
,
context
)
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
distinctGroupIds
=
distinct
(
contexts
.
map
(
c
=>
c
.
groupId
));
if
(
distinctGroupIds
.
length
===
0
)
{
...
...
@@ -519,9 +527,9 @@ function registerCloseEditorCommands() {
when
:
void
0
,
primary
:
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_W
,
win
:
{
primary
:
KeyMod
.
CtrlCmd
|
KeyCode
.
F4
,
secondary
:
[
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_W
]
},
handler
:
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
contexts
=
getMultiSelectedEditorContexts
(
context
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
contexts
=
getMultiSelectedEditorContexts
(
getCommandsContext
(
resourceOrContext
,
context
)
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
activeGroup
=
editorGroupService
.
activeGroup
;
if
(
contexts
.
length
===
0
&&
activeGroup
&&
activeGroup
.
activeEditor
)
{
contexts
.
push
({
groupId
:
activeGroup
.
id
,
editorIndex
:
activeGroup
.
getIndexOfEditor
(
activeGroup
.
activeEditor
)
});
...
...
@@ -542,12 +550,13 @@ function registerCloseEditorCommands() {
when
:
ContextKeyExpr
.
and
(
ActiveEditorGroupEmptyContext
,
MultipleEditorGroupsContext
),
primary
:
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_W
,
win
:
{
primary
:
KeyMod
.
CtrlCmd
|
KeyCode
.
F4
,
secondary
:
[
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_W
]
},
handler
:
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
commandsContext
=
getCommandsContext
(
resourceOrContext
,
context
);
let
group
:
IEditorGroup
;
if
(
co
ntext
&&
typeof
c
ontext
.
groupId
===
'
number
'
)
{
group
=
editorGroupService
.
getGroup
(
context
.
groupId
);
if
(
co
mmandsContext
&&
typeof
commandsC
ontext
.
groupId
===
'
number
'
)
{
group
=
editorGroupService
.
getGroup
(
co
mmandsCo
ntext
.
groupId
);
}
else
{
group
=
editorGroupService
.
activeGroup
;
}
...
...
@@ -562,9 +571,9 @@ function registerCloseEditorCommands() {
when
:
void
0
,
primary
:
void
0
,
mac
:
{
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Alt
|
KeyCode
.
KEY_T
},
handler
:
(
accessor
,
resource
:
URI
|
object
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
contexts
=
getMultiSelectedEditorContexts
(
context
,
accessor
.
get
(
IListService
),
editorGroupService
);
const
contexts
=
getMultiSelectedEditorContexts
(
getCommandsContext
(
resourceOrContext
,
context
)
,
accessor
.
get
(
IListService
),
editorGroupService
);
if
(
contexts
.
length
===
0
)
{
// Cover the case when run from command palette
...
...
@@ -591,10 +600,10 @@ function registerCloseEditorCommands() {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
void
0
,
handler
:
(
accessor
,
resource
:
URI
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
{
group
,
editor
}
=
resolveCommandsContext
(
editorGroupService
,
context
);
const
{
group
,
editor
}
=
resolveCommandsContext
(
editorGroupService
,
getCommandsContext
(
resourceOrContext
,
context
)
);
if
(
group
&&
editor
)
{
return
group
.
closeEditors
({
direction
:
CloseDirection
.
RIGHT
,
except
:
editor
});
}
...
...
@@ -608,10 +617,10 @@ function registerCloseEditorCommands() {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
KeyChord
(
KeyMod
.
CtrlCmd
|
KeyCode
.
KEY_K
,
KeyCode
.
Enter
),
handler
:
(
accessor
,
resource
:
URI
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
{
group
,
editor
}
=
resolveCommandsContext
(
editorGroupService
,
context
);
const
{
group
,
editor
}
=
resolveCommandsContext
(
editorGroupService
,
getCommandsContext
(
resourceOrContext
,
context
)
);
if
(
group
&&
editor
)
{
return
group
.
pinEditor
(
editor
);
}
...
...
@@ -625,7 +634,7 @@ function registerCloseEditorCommands() {
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
when
:
void
0
,
primary
:
void
0
,
handler
:
(
accessor
,
resource
:
URI
,
context
:
IEditorCommandsContext
)
=>
{
handler
:
(
accessor
,
resource
OrContext
:
URI
|
IEditorCommandsContext
,
context
?
:
IEditorCommandsContext
)
=>
{
const
editorGroupService
=
accessor
.
get
(
IEditorGroupsService
);
const
quickOpenService
=
accessor
.
get
(
IQuickOpenService
);
...
...
@@ -633,8 +642,9 @@ function registerCloseEditorCommands() {
return
quickOpenService
.
show
(
NAVIGATE_ALL_EDITORS_GROUP_PREFIX
);
}
if
(
context
&&
typeof
context
.
groupId
===
'
number
'
)
{
editorGroupService
.
activateGroup
(
editorGroupService
.
getGroup
(
context
.
groupId
));
// we need the group to be active
const
commandsContext
=
getCommandsContext
(
resourceOrContext
,
context
);
if
(
commandsContext
&&
typeof
commandsContext
.
groupId
===
'
number
'
)
{
editorGroupService
.
activateGroup
(
editorGroupService
.
getGroup
(
commandsContext
.
groupId
));
// we need the group to be active
}
return
quickOpenService
.
show
(
NAVIGATE_IN_ACTIVE_GROUP_PREFIX
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录