Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
cc57ada8
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,发现更多精彩内容 >>
提交
cc57ada8
编写于
1月 03, 2018
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix terminal commands
fixes #40909
上级
f467841b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
48 deletion
+15
-48
src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts
...arts/execution/electron-browser/execution.contribution.ts
+15
-48
未找到文件。
src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts
浏览文件 @
cc57ada8
...
...
@@ -8,14 +8,12 @@ import * as nls from 'vs/nls';
import
*
as
env
from
'
vs/base/common/platform
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
Registry
}
from
'
vs/platform/registry/common/platform
'
;
import
{
Action
}
from
'
vs/base/common/actions
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
import
{
IWorkbenchActionRegistry
,
Extensions
as
ActionExtensions
}
from
'
vs/workbench/common/actions
'
;
import
paths
=
require
(
'
vs/base/common/paths
'
);
import
uri
from
'
vs/base/common/uri
'
;
import
{
ITerminalService
}
from
'
vs/workbench/parts/execution/common/execution
'
;
import
{
SyncActionDescriptor
,
MenuId
,
MenuRegistry
}
from
'
vs/platform/actions/common/actions
'
;
import
{
MenuId
,
MenuRegistry
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
toResource
}
from
'
vs/workbench/common/editor
'
;
import
{
KeyMod
,
KeyCode
}
from
'
vs/base/common/keyCodes
'
;
...
...
@@ -24,8 +22,9 @@ import { ITerminalService as IIntegratedTerminalService, KEYBINDING_CONTEXT_TERM
import
{
DEFAULT_TERMINAL_WINDOWS
,
DEFAULT_TERMINAL_LINUX_READY
,
DEFAULT_TERMINAL_OSX
,
ITerminalConfiguration
}
from
'
vs/workbench/parts/execution/electron-browser/terminal
'
;
import
{
WinTerminalService
,
MacTerminalService
,
LinuxTerminalService
}
from
'
vs/workbench/parts/execution/electron-browser/terminalService
'
;
import
{
IHistoryService
}
from
'
vs/workbench/services/history/common/history
'
;
import
{
CommandsRegistry
,
ICommandService
}
from
'
vs/platform/commands/common/commands
'
;
import
{
ResourceContextKey
}
from
'
vs/workbench/common/resources
'
;
import
{
IExplorerContext
}
from
'
vs/workbench/parts/files/electron-browser/fileActions
'
;
import
{
KeybindingsRegistry
}
from
'
vs/platform/keybinding/common/keybindingsRegistry
'
;
if
(
env
.
isWindows
)
{
registerSingleton
(
ITerminalService
,
WinTerminalService
);
...
...
@@ -75,53 +74,14 @@ DEFAULT_TERMINAL_LINUX_READY.then(defaultTerminalLinux => {
});
});
class
OpenConsoleAction
extends
Action
{
public
static
readonly
ID
=
'
workbench.action.terminal.openNativeConsole
'
;
public
static
readonly
Label
=
env
.
isWindows
?
nls
.
localize
(
'
globalConsoleActionWin
'
,
"
Open New Command Prompt
"
)
:
nls
.
localize
(
'
globalConsoleActionMacLinux
'
,
"
Open New Terminal
"
);
public
static
readonly
ScopedLabel
=
env
.
isWindows
?
nls
.
localize
(
'
scopedConsoleActionWin
'
,
"
Open in Command Prompt
"
)
:
nls
.
localize
(
'
scopedConsoleActionMacLinux
'
,
"
Open in Terminal
"
);
private
resource
:
uri
;
public
setResource
(
resource
:
uri
):
void
{
this
.
resource
=
resource
;
this
.
enabled
=
!
paths
.
isUNC
(
this
.
resource
.
fsPath
);
}
constructor
(
id
:
string
,
label
:
string
,
@
ICommandService
private
commandService
:
ICommandService
)
{
super
(
id
,
label
);
}
public
run
(
event
?:
any
):
TPromise
<
any
>
{
return
this
.
commandService
.
executeCommand
(
OPEN_CONSOLE_COMMAND_ID
,
this
.
resource
);
}
}
// Register Global Action to Open Console
Registry
.
as
<
IWorkbenchActionRegistry
>
(
ActionExtensions
.
WorkbenchActions
).
registerWorkbenchAction
(
new
SyncActionDescriptor
(
OpenConsoleAction
,
OpenConsoleAction
.
ID
,
OpenConsoleAction
.
Label
,
{
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
KEY_C
},
KEYBINDING_CONTEXT_TERMINAL_NOT_FOCUSED
),
env
.
isWindows
?
'
Open New Command Prompt
'
:
'
Open New Terminal
'
);
const
OPEN_CONSOLE_COMMAND_ID
=
'
workbench.command.terminal.openNativeConsole
'
;
// TODO@Isidor Open in terminal does not seem to work
CommandsRegistry
.
registerCommand
({
KeybindingsRegistry
.
registerCommandAndKeybindingRule
({
id
:
OPEN_CONSOLE_COMMAND_ID
,
handler
:
(
accessor
,
resource
:
uri
)
=>
{
primary
:
KeyMod
.
CtrlCmd
|
KeyMod
.
Shift
|
KeyCode
.
KEY_C
,
when
:
KEYBINDING_CONTEXT_TERMINAL_NOT_FOCUSED
,
weight
:
KeybindingsRegistry
.
WEIGHT
.
workbenchContrib
(),
handler
:
(
accessor
,
resource
:
uri
,
context
:
IExplorerContext
)
=>
{
const
configurationService
=
accessor
.
get
(
IConfigurationService
);
const
historyService
=
accessor
.
get
(
IHistoryService
);
const
editorService
=
accessor
.
get
(
IWorkbenchEditorService
);
...
...
@@ -130,6 +90,9 @@ CommandsRegistry.registerCommand({
// Try workspace path first
const
root
=
historyService
.
getLastActiveWorkspaceRoot
(
'
file
'
);
pathToOpen
=
resource
?
resource
.
fsPath
:
(
root
&&
root
.
fsPath
);
if
(
context
&&
context
.
stat
&&
!
context
.
stat
.
isDirectory
)
{
pathToOpen
=
context
.
stat
.
parent
.
resource
.
fsPath
;
}
// Otherwise check if we have an active file open
if
(
!
pathToOpen
)
{
...
...
@@ -162,6 +125,10 @@ const openConsoleCommand = {
nls
.
localize
(
'
scopedConsoleActionMacLinux
'
,
"
Open in Terminal
"
)
};
MenuRegistry
.
appendMenuItem
(
MenuId
.
CommandPalette
,
{
command
:
openConsoleCommand
});
MenuRegistry
.
appendMenuItem
(
MenuId
.
OpenEditorsContext
,
{
group
:
'
navigation
'
,
order
:
30
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录