Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
cfafdc3a
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,发现更多精彩内容 >>
提交
cfafdc3a
编写于
3月 21, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
menu actions: context provider
上级
535f8c55
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
15 addition
and
15 deletion
+15
-15
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
+2
-2
src/vs/platform/actions/common/actions.ts
src/vs/platform/actions/common/actions.ts
+6
-6
src/vs/platform/actions/common/menu.ts
src/vs/platform/actions/common/menu.ts
+2
-2
src/vs/workbench/browser/parts/editor/titleControl.ts
src/vs/workbench/browser/parts/editor/titleControl.ts
+2
-2
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/editor/contrib/contextmenu/browser/contextmenu.ts
浏览文件 @
cfafdc3a
...
...
@@ -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
(
()
=>
[
this
.
_editor
.
getModel
().
uri
]
);
contextMenu
.
dispose
();
for
(
let
group
of
groups
)
{
...
...
src/vs/platform/actions/browser/menuItemActionItem.ts
浏览文件 @
cfafdc3a
...
...
@@ -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
,
context
Provider
:
()
=>
any
[]
,
target
:
IAction
[]
|
{
primary
:
IAction
[];
secondary
:
IAction
[];
},
isPrimaryGroup
:
(
group
:
string
)
=>
boolean
=
group
=>
group
===
'
navigation
'
):
void
{
const
groups
=
menu
.
getActions
(
context
Provider
);
if
(
groups
.
length
===
0
)
{
return
;
}
...
...
src/vs/platform/actions/common/actions.ts
浏览文件 @
cfafdc3a
...
...
@@ -58,7 +58,7 @@ export class MenuId {
export
interface
IMenu
extends
IDisposable
{
onDidChange
:
Event
<
IMenu
>
;
getActions
(
arg
?:
any
):
[
string
,
MenuItemAction
[]][];
getActions
(
contextProvider
?:
()
=>
any
[]
):
[
string
,
MenuItemAction
[]][];
}
export
const
IMenuService
=
createDecorator
<
IMenuService
>
(
'
menuService
'
);
...
...
@@ -154,7 +154,7 @@ export class ExecuteCommandAction extends Action {
export
class
MenuItemAction
extends
ExecuteCommandAction
{
private
_
arg
:
any
;
private
_
contextProvider
:
any
;
readonly
item
:
ICommandAction
;
readonly
alt
:
MenuItemAction
;
...
...
@@ -162,20 +162,20 @@ export class MenuItemAction extends ExecuteCommandAction {
constructor
(
item
:
ICommandAction
,
alt
:
ICommandAction
,
arg
:
any
,
contextProvider
:
()
=>
any
[]
,
@
ICommandService
commandService
:
ICommandService
)
{
super
(
item
.
id
,
item
.
title
,
commandService
);
this
.
_cssClass
=
item
.
iconClass
;
this
.
_enabled
=
true
;
this
.
_
arg
=
arg
;
this
.
_
contextProvider
=
contextProvider
;
this
.
item
=
item
;
this
.
alt
=
alt
?
new
MenuItemAction
(
alt
,
undefined
,
arg
,
commandService
)
:
undefined
;
this
.
alt
=
alt
?
new
MenuItemAction
(
alt
,
undefined
,
contextProvider
,
commandService
)
:
undefined
;
}
run
():
TPromise
<
any
>
{
return
super
.
run
(
this
.
_arg
);
return
super
.
run
(
...
this
.
_contextProvider
()
);
}
}
...
...
src/vs/platform/actions/common/menu.ts
浏览文件 @
cfafdc3a
...
...
@@ -69,14 +69,14 @@ export class Menu implements IMenu {
return
this
.
_onDidChange
.
event
;
}
getActions
(
arg
?:
any
):
[
string
,
MenuItemAction
[]][]
{
getActions
(
contextProvider
:
()
=>
any
[]
=
()
=>
[]
):
[
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
,
contextProvider
,
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
浏览文件 @
cfafdc3a
...
...
@@ -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
,
()
=>
[
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
,
()
=>
[
this
.
resourceContext
.
get
()]
,
actions
);
return
actions
;
}
...
...
src/vs/workbench/parts/files/browser/views/explorerViewer.ts
浏览文件 @
cfafdc3a
...
...
@@ -479,7 +479,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
,
()
=>
[
stat
.
resource
]
,
actions
);
return
actions
;
});
},
...
...
src/vs/workbench/parts/scm/electron-browser/scmMenus.ts
浏览文件 @
cfafdc3a
...
...
@@ -121,7 +121,7 @@ export class SCMMenus implements IDisposable {
const
primary
=
[];
const
secondary
=
[];
const
result
=
{
primary
,
secondary
};
fillInActions
(
menu
,
context
,
result
,
g
=>
g
===
'
inline
'
);
fillInActions
(
menu
,
()
=>
[
context
]
,
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录