Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
9c895976
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,发现更多精彩内容 >>
提交
9c895976
编写于
7月 07, 2016
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
towards a registerAction function
上级
ad5ff01a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
75 addition
and
15 deletion
+75
-15
src/vs/workbench/parts/output/browser/output.contribution.ts
src/vs/workbench/parts/output/browser/output.contribution.ts
+75
-15
未找到文件。
src/vs/workbench/parts/output/browser/output.contribution.ts
浏览文件 @
9c895976
...
...
@@ -9,6 +9,8 @@ import {KeyMod, KeyCode} from 'vs/base/common/keyCodes';
import
{
ModesRegistry
}
from
'
vs/editor/common/modes/modesRegistry
'
;
import
platform
=
require
(
'
vs/platform/platform
'
);
import
{
MenuId
,
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IKeybindings
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
KeybindingsRegistry
}
from
'
vs/platform/keybinding/common/keybindingsRegistry
'
;
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
import
{
IWorkbenchActionRegistry
,
Extensions
as
ActionExtensions
}
from
'
vs/workbench/common/actionRegistry
'
;
import
{
OutputService
}
from
'
vs/workbench/parts/output/browser/outputServices
'
;
...
...
@@ -16,7 +18,7 @@ import {ToggleOutputAction} from 'vs/workbench/parts/output/browser/outputAction
import
{
OUTPUT_MIME
,
OUTPUT_MODE_ID
,
OUTPUT_PANEL_ID
,
IOutputService
}
from
'
vs/workbench/parts/output/common/output
'
;
import
panel
=
require
(
'
vs/workbench/browser/panel
'
);
import
{
KEYBINDING_CONTEXT_EDITOR_LANGUAGE_ID
}
from
'
vs/editor/common/editorCommon
'
;
import
{
CommandsRegistry
}
from
'
vs/platform/commands/common/commands
'
;
import
{
CommandsRegistry
,
ICommandHandler
}
from
'
vs/platform/commands/common/commands
'
;
import
{
KbExpr
}
from
'
vs/platform/keybinding/common/keybinding
'
;
import
{
MenuRegistry
}
from
'
vs/platform/actions/browser/menuService
'
;
...
...
@@ -52,21 +54,79 @@ actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ToggleOutputActi
}),
'
View: Toggle Output
'
,
nls
.
localize
(
'
viewCategory
'
,
"
View
"
));
// Define clear command, contribute to editor context menu
{
const
id
=
'
editor.action.clearoutput
'
;
interface
IActionDescriptor
{
id
:
string
;
handler
:
ICommandHandler
;
CommandsRegistry
.
registerCommand
(
id
,
function
handler
(
accessor
)
{
accessor
.
get
(
IOutputService
).
getActiveChannel
().
clear
();
// ICommandUI
title
:
string
;
category
?:
string
;
iconClass
?:
string
;
f1
?:
boolean
;
//
menu
?:
{
menuId
:
MenuId
,
when
?:
KbExpr
;
group
?:
string
;
};
//
keybinding
?:
{
when
?:
KbExpr
;
weight
:
number
;
keys
:
IKeybindings
;
};
}
function
registerAction
(
desc
:
IActionDescriptor
)
{
const
{
id
,
handler
,
title
,
category
,
iconClass
,
f1
,
menu
,
keybinding
}
=
desc
;
// 1) register as command
CommandsRegistry
.
registerCommand
(
id
,
handler
);
// 2) command palette
let
command
=
{
id
,
title
,
iconClass
,
category
};
if
(
f1
)
{
MenuRegistry
.
addCommand
(
command
);
}
// 3) menus
if
(
menu
)
{
let
{
menuId
,
when
,
group
}
=
menu
;
MenuRegistry
.
appendMenuItem
(
menuId
,
{
command
,
when
,
group
});
}
MenuRegistry
.
addCommand
({
// 4) keybindings
if
(
keybinding
)
{
let
{
when
,
weight
,
keys
}
=
keybinding
;
KeybindingsRegistry
.
registerCommandRule
({
id
,
title
:
nls
.
localize
(
'
clearOutput.label
'
,
"
Clear Output
"
)
when
,
weight
,
primary
:
keys
.
primary
,
secondary
:
keys
.
secondary
,
linux
:
keys
.
linux
,
mac
:
keys
.
mac
,
win
:
keys
.
win
});
}
}
MenuRegistry
.
appendMenuItem
(
MenuId
.
EditorContext
,
{
command
:
MenuRegistry
.
getCommand
(
id
),
// Define clear command, contribute to editor context menu
registerAction
({
id
:
'
editor.action.clearoutput
'
,
title
:
nls
.
localize
(
'
clearOutput.label
'
,
"
Clear Output
"
),
menu
:
{
menuId
:
MenuId
.
EditorContext
,
when
:
KbExpr
.
equals
(
KEYBINDING_CONTEXT_EDITOR_LANGUAGE_ID
,
OUTPUT_MODE_ID
)
});
}
},
handler
(
accessor
)
{
accessor
.
get
(
IOutputService
).
getActiveChannel
().
clear
();
}
});
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录