Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d7559c7b
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,发现更多精彩内容 >>
提交
d7559c7b
编写于
3月 28, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🐛
don't fwd menu action args automatically
fixes #23162
上级
364e5efb
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
33 addition
and
22 deletion
+33
-22
src/vs/base/common/actions.ts
src/vs/base/common/actions.ts
+1
-1
src/vs/editor/contrib/contextmenu/browser/contextmenu.ts
src/vs/editor/contrib/contextmenu/browser/contextmenu.ts
+1
-1
src/vs/platform/actions/browser/menuItemActionItem.ts
src/vs/platform/actions/browser/menuItemActionItem.ts
+3
-3
src/vs/platform/actions/common/actions.ts
src/vs/platform/actions/common/actions.ts
+20
-9
src/vs/platform/actions/common/menu.ts
src/vs/platform/actions/common/menu.ts
+3
-3
src/vs/workbench/browser/parts/editor/titleControl.ts
src/vs/workbench/browser/parts/editor/titleControl.ts
+2
-2
src/vs/workbench/parts/debug/electron-browser/debugViewer.ts
src/vs/workbench/parts/debug/electron-browser/debugViewer.ts
+1
-1
src/vs/workbench/parts/files/browser/views/explorerViewer.ts
src/vs/workbench/parts/files/browser/views/explorerViewer.ts
+1
-1
src/vs/workbench/parts/scm/electron-browser/scmMenus.ts
src/vs/workbench/parts/scm/electron-browser/scmMenus.ts
+1
-1
未找到文件。
src/vs/base/common/actions.ts
浏览文件 @
d7559c7b
...
...
@@ -234,6 +234,6 @@ export class ActionRunner extends EventEmitter implements IActionRunner {
}
protected
runAction
(
action
:
IAction
,
context
?:
any
):
TPromise
<
any
>
{
return
TPromise
.
as
(
action
.
run
(
context
));
return
TPromise
.
as
(
context
?
action
.
run
(
context
)
:
action
.
run
(
));
}
}
src/vs/editor/contrib/contextmenu/browser/contextmenu.ts
浏览文件 @
d7559c7b
...
...
@@ -126,7 +126,7 @@ export class ContextMenuController implements IEditorContribution {
const
result
:
IAction
[]
=
[];
let
contextMenu
=
this
.
_menuService
.
createMenu
(
MenuId
.
EditorContext
,
this
.
_contextKeyService
);
const
groups
=
contextMenu
.
getActions
(
this
.
_editor
.
getModel
().
uri
);
const
groups
=
contextMenu
.
getActions
(
{
arg
:
this
.
_editor
.
getModel
().
uri
}
);
contextMenu
.
dispose
();
for
(
let
group
of
groups
)
{
...
...
src/vs/platform/actions/browser/menuItemActionItem.ts
浏览文件 @
d7559c7b
...
...
@@ -7,7 +7,7 @@
import
{
localize
}
from
'
vs/nls
'
;
import
{
IKeybindingService
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
IMenu
,
MenuItemAction
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IMenu
,
MenuItemAction
,
IMenuActionOptions
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IMessageService
}
from
'
vs/platform/message/common/message
'
;
import
Severity
from
'
vs/base/common/severity
'
;
import
{
IAction
}
from
'
vs/base/common/actions
'
;
...
...
@@ -17,8 +17,8 @@ import { domEvent } from 'vs/base/browser/event';
import
{
Emitter
}
from
'
vs/base/common/event
'
;
export
function
fillInActions
(
menu
:
IMenu
,
context
:
any
,
target
:
IAction
[]
|
{
primary
:
IAction
[];
secondary
:
IAction
[];
},
isPrimaryGroup
:
(
group
:
string
)
=>
boolean
=
group
=>
group
===
'
navigation
'
):
void
{
const
groups
=
menu
.
getActions
(
context
);
export
function
fillInActions
(
menu
:
IMenu
,
options
:
IMenuActionOptions
,
target
:
IAction
[]
|
{
primary
:
IAction
[];
secondary
:
IAction
[];
},
isPrimaryGroup
:
(
group
:
string
)
=>
boolean
=
group
=>
group
===
'
navigation
'
):
void
{
const
groups
=
menu
.
getActions
(
options
);
if
(
groups
.
length
===
0
)
{
return
;
}
...
...
src/vs/platform/actions/common/actions.ts
浏览文件 @
d7559c7b
...
...
@@ -60,9 +60,14 @@ export class MenuId {
}
}
export
interface
IMenuActionOptions
{
arg
?:
any
;
shouldForwardArgs
?:
boolean
;
}
export
interface
IMenu
extends
IDisposable
{
onDidChange
:
Event
<
IMenu
>
;
getActions
(
arg
?:
any
):
[
string
,
MenuItemAction
[]][];
getActions
(
options
?:
IMenuActionOptions
):
[
string
,
MenuItemAction
[]][];
}
export
const
IMenuService
=
createDecorator
<
IMenuService
>
(
'
menuService
'
);
...
...
@@ -158,7 +163,7 @@ export class ExecuteCommandAction extends Action {
export
class
MenuItemAction
extends
ExecuteCommandAction
{
private
_
arg
:
any
;
private
_
options
:
IMenuActionOptions
;
readonly
item
:
ICommandAction
;
readonly
alt
:
MenuItemAction
;
...
...
@@ -166,24 +171,30 @@ export class MenuItemAction extends ExecuteCommandAction {
constructor
(
item
:
ICommandAction
,
alt
:
ICommandAction
,
arg
:
any
,
options
:
IMenuActionOptions
,
@
ICommandService
commandService
:
ICommandService
)
{
typeof
item
.
title
===
'
string
'
?
super
(
item
.
id
,
item
.
title
,
commandService
)
:
super
(
item
.
id
,
item
.
title
.
value
,
commandService
);
this
.
_cssClass
=
item
.
iconClass
;
this
.
_enabled
=
true
;
this
.
_
arg
=
arg
;
this
.
_
options
=
options
;
this
.
item
=
item
;
this
.
alt
=
alt
?
new
MenuItemAction
(
alt
,
undefined
,
arg
,
commandService
)
:
undefined
;
this
.
alt
=
alt
?
new
MenuItemAction
(
alt
,
undefined
,
this
.
_options
,
commandService
)
:
undefined
;
}
run
(...
args
:
any
[]):
TPromise
<
any
>
{
if
(
this
.
_arg
)
{
return
super
.
run
(
this
.
_arg
,
...
args
);
}
else
{
r
eturn
super
.
run
(...
args
)
;
let
runArgs
=
[];
if
(
this
.
_options
.
arg
)
{
r
unArgs
=
[...
runArgs
,
this
.
_options
.
arg
]
;
}
if
(
this
.
_options
.
shouldForwardArgs
)
{
runArgs
=
[...
runArgs
,
...
args
];
}
return
super
.
run
(...
runArgs
);
}
}
...
...
src/vs/platform/actions/common/menu.ts
浏览文件 @
d7559c7b
...
...
@@ -9,7 +9,7 @@ import Event, { Emitter } from 'vs/base/common/event';
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
ContextKeyExpr
,
IContextKeyService
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
MenuId
,
MenuRegistry
,
MenuItemAction
,
IMenu
,
IMenuItem
}
from
'
vs/platform/actions/common/actions
'
;
import
{
MenuId
,
MenuRegistry
,
MenuItemAction
,
IMenu
,
IMenuItem
,
IMenuActionOptions
}
from
'
vs/platform/actions/common/actions
'
;
import
{
ICommandService
}
from
'
vs/platform/commands/common/commands
'
;
type
MenuItemGroup
=
[
string
,
IMenuItem
[]];
...
...
@@ -69,14 +69,14 @@ export class Menu implements IMenu {
return
this
.
_onDidChange
.
event
;
}
getActions
(
arg
?:
any
):
[
string
,
MenuItemAction
[]][]
{
getActions
(
options
:
IMenuActionOptions
):
[
string
,
MenuItemAction
[]][]
{
const
result
:
[
string
,
MenuItemAction
[]][]
=
[];
for
(
let
group
of
this
.
_menuGroups
)
{
const
[
id
,
items
]
=
group
;
const
activeActions
:
MenuItemAction
[]
=
[];
for
(
const
item
of
items
)
{
if
(
this
.
_contextKeyService
.
contextMatchesRules
(
item
.
when
))
{
const
action
=
new
MenuItemAction
(
item
.
command
,
item
.
alt
,
arg
,
this
.
_commandService
);
const
action
=
new
MenuItemAction
(
item
.
command
,
item
.
alt
,
options
,
this
.
_commandService
);
action
.
order
=
item
.
order
;
//TODO@Ben order is menu item property, not an action property
activeActions
.
push
(
action
);
}
...
...
src/vs/workbench/browser/parts/editor/titleControl.ts
浏览文件 @
d7559c7b
...
...
@@ -325,7 +325,7 @@ export abstract class TitleControl extends Themable implements ITitleAreaControl
const
titleBarMenu
=
this
.
menuService
.
createMenu
(
MenuId
.
EditorTitle
,
scopedContextKeyService
);
this
.
disposeOnEditorActions
.
push
(
titleBarMenu
,
titleBarMenu
.
onDidChange
(
_
=>
this
.
update
()));
fillInActions
(
titleBarMenu
,
this
.
resourceContext
.
get
()
,
{
primary
,
secondary
});
fillInActions
(
titleBarMenu
,
{
arg
:
this
.
resourceContext
.
get
()
}
,
{
primary
,
secondary
});
}
return
{
primary
,
secondary
};
...
...
@@ -475,7 +475,7 @@ export abstract class TitleControl extends Themable implements ITitleAreaControl
}
// Fill in contributed actions
fillInActions
(
this
.
contextMenu
,
this
.
resourceContext
.
get
()
,
actions
);
fillInActions
(
this
.
contextMenu
,
{
arg
:
this
.
resourceContext
.
get
()
}
,
actions
);
return
actions
;
}
...
...
src/vs/workbench/parts/debug/electron-browser/debugViewer.ts
浏览文件 @
d7559c7b
...
...
@@ -220,7 +220,7 @@ export class BaseDebugController extends DefaultController {
this
.
contextMenuService
.
showContextMenu
({
getAnchor
:
()
=>
anchor
,
getActions
:
()
=>
this
.
actionProvider
.
getSecondaryActions
(
tree
,
element
).
then
(
actions
=>
{
fillInActions
(
this
.
contributedContextMenu
,
this
.
getContext
(
element
)
,
actions
);
fillInActions
(
this
.
contributedContextMenu
,
{
arg
:
this
.
getContext
(
element
)
}
,
actions
);
return
actions
;
}),
onHide
:
(
wasCancelled
?:
boolean
)
=>
{
...
...
src/vs/workbench/parts/files/browser/views/explorerViewer.ts
浏览文件 @
d7559c7b
...
...
@@ -484,7 +484,7 @@ export class FileController extends DefaultController {
getAnchor
:
()
=>
anchor
,
getActions
:
()
=>
{
return
this
.
state
.
actionProvider
.
getSecondaryActions
(
tree
,
stat
).
then
(
actions
=>
{
fillInActions
(
this
.
contributedContextMenu
,
stat
.
resource
,
actions
);
fillInActions
(
this
.
contributedContextMenu
,
{
arg
:
stat
.
resource
}
,
actions
);
return
actions
;
});
},
...
...
src/vs/workbench/parts/scm/electron-browser/scmMenus.ts
浏览文件 @
d7559c7b
...
...
@@ -142,7 +142,7 @@ export class SCMMenus implements IDisposable {
const
primary
=
[];
const
secondary
=
[];
const
result
=
{
primary
,
secondary
};
fillInActions
(
menu
,
resource
.
uri
,
result
,
g
=>
g
===
'
inline
'
);
fillInActions
(
menu
,
{
arg
:
resource
.
uri
,
shouldForwardArgs
:
true
}
,
result
,
g
=>
g
===
'
inline
'
);
menu
.
dispose
();
contextKeyService
.
dispose
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录