Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
6afc2c69
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,发现更多精彩内容 >>
提交
6afc2c69
编写于
9月 14, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #23356
上级
6bee7fc4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
9 deletion
+29
-9
src/vs/platform/actions/common/actions.ts
src/vs/platform/actions/common/actions.ts
+9
-0
src/vs/platform/keybinding/common/keybindingResolver.ts
src/vs/platform/keybinding/common/keybindingResolver.ts
+20
-9
未找到文件。
src/vs/platform/actions/common/actions.ts
浏览文件 @
6afc2c69
...
...
@@ -126,10 +126,15 @@ export interface IMenuService {
export
interface
IMenuRegistry
{
addCommand
(
userCommand
:
ICommandAction
):
boolean
;
getCommand
(
id
:
string
):
ICommandAction
;
getCommands
():
ICommandsMap
;
appendMenuItem
(
menu
:
MenuId
,
item
:
IMenuItem
|
ISubmenuItem
):
IDisposable
;
getMenuItems
(
loc
:
MenuId
):
(
IMenuItem
|
ISubmenuItem
)[];
}
export
interface
ICommandsMap
{
[
id
:
string
]:
ICommandAction
;
}
export
const
MenuRegistry
:
IMenuRegistry
=
new
class
implements
IMenuRegistry
{
private
_commands
:
{
[
id
:
string
]:
ICommandAction
}
=
Object
.
create
(
null
);
...
...
@@ -146,6 +151,10 @@ export const MenuRegistry: IMenuRegistry = new class implements IMenuRegistry {
return
this
.
_commands
[
id
];
}
getCommands
():
ICommandsMap
{
return
Object
.
freeze
(
this
.
_commands
);
}
appendMenuItem
({
id
}:
MenuId
,
item
:
IMenuItem
|
ISubmenuItem
):
IDisposable
{
let
array
=
this
.
_menuItems
[
id
];
if
(
!
array
)
{
...
...
src/vs/platform/keybinding/common/keybindingResolver.ts
浏览文件 @
6afc2c69
...
...
@@ -8,6 +8,7 @@ import { isFalsyOrEmpty } from 'vs/base/common/arrays';
import
{
ContextKeyExpr
,
IContext
,
ContextKeyAndExpr
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
ResolvedKeybindingItem
}
from
'
vs/platform/keybinding/common/resolvedKeybindingItem
'
;
import
{
CommandsRegistry
,
ICommandHandlerDescription
}
from
'
vs/platform/commands/common/commands
'
;
import
{
MenuRegistry
}
from
'
vs/platform/actions/common/actions
'
;
export
interface
IResolveResult
{
enterChord
:
boolean
;
...
...
@@ -302,21 +303,31 @@ export class KeybindingResolver {
}
public
static
getAllUnboundCommands
(
boundCommands
:
Map
<
string
,
boolean
>
):
string
[]
{
const
commands
=
CommandsRegistry
.
getCommands
();
const
unboundCommands
:
string
[]
=
[];
for
(
let
id
in
commands
)
{
if
(
id
[
0
]
===
'
_
'
||
id
.
indexOf
(
'
vscode.
'
)
===
0
)
{
// private command
continue
;
const
seenMap
:
Map
<
string
,
boolean
>
=
new
Map
<
string
,
boolean
>
();
const
addCommand
=
id
=>
{
if
(
seenMap
.
has
(
id
))
{
return
;
}
if
(
typeof
commands
[
id
].
description
===
'
object
'
&&
!
isFalsyOrEmpty
((
<
ICommandHandlerDescription
>
commands
[
id
].
description
).
args
))
{
// command with args
continue
;
seenMap
.
set
(
id
);
if
(
id
[
0
]
===
'
_
'
||
id
.
indexOf
(
'
vscode.
'
)
===
0
)
{
// private command
return
;
}
if
(
boundCommands
.
get
(
id
)
===
true
)
{
continue
;
return
;
}
const
command
=
CommandsRegistry
.
getCommand
(
id
);
if
(
command
&&
typeof
command
.
description
===
'
object
'
&&
!
isFalsyOrEmpty
((
<
ICommandHandlerDescription
>
command
.
description
).
args
))
{
// command with args
return
;
}
unboundCommands
.
push
(
id
);
};
for
(
const
id
in
MenuRegistry
.
getCommands
())
{
addCommand
(
id
);
}
for
(
const
id
in
CommandsRegistry
.
getCommands
())
{
addCommand
(
id
);
}
return
unboundCommands
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录