Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2695f193
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,发现更多精彩内容 >>
提交
2695f193
编写于
2月 26, 2016
作者:
P
Peter Flannery
提交者:
pflannery
3月 15, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adds terminal command configuration for windows and linux
上级
b80659ef
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
87 addition
and
6 deletion
+87
-6
src/vs/workbench/parts/execution/electron-browser/terminal.contribution.ts
...parts/execution/electron-browser/terminal.contribution.ts
+33
-0
src/vs/workbench/parts/execution/electron-browser/terminalService.ts
...bench/parts/execution/electron-browser/terminalService.ts
+54
-6
未找到文件。
src/vs/workbench/parts/execution/electron-browser/terminal.contribution.ts
浏览文件 @
2695f193
...
...
@@ -19,6 +19,39 @@ import {ITerminalService} from 'vs/workbench/parts/execution/common/execution';
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
KeyMod
,
KeyCode
}
from
'
vs/base/common/keyCodes
'
;
import
{
Extensions
,
IConfigurationRegistry
}
from
'
vs/platform/configuration/common/configurationRegistry
'
;
let
configurationRegistry
=
<
IConfigurationRegistry
>
Registry
.
as
(
Extensions
.
Configuration
);
configurationRegistry
.
registerConfiguration
({
'
id
'
:
'
terminal
'
,
'
order
'
:
100
,
'
title
'
:
nls
.
localize
(
'
terminalConfigurationTitle
'
,
"
Terminal configuration
"
),
'
type
'
:
'
object
'
,
'
properties
'
:
{
'
terminal.windows
'
:
{
'
description
'
:
nls
.
localize
(
'
terminal.windows
'
,
"
Windows specific settings.
"
),
'
type
'
:
'
object
'
,
'
properties
'
:
{
'
exec
'
:
{
'
type
'
:
'
string
'
,
'
description
'
:
nls
.
localize
(
'
terminal.windows.exec
'
,
"
Customizes which terminal to run.
"
),
'
default
'
:
'
cmd
'
}
}
},
'
terminal.linux
'
:
{
'
description
'
:
nls
.
localize
(
'
terminal.linux
'
,
"
Linux specific settings.
"
),
'
type
'
:
'
object
'
,
'
properties
'
:
{
'
exec
'
:
{
'
type
'
:
'
string
'
,
'
description
'
:
nls
.
localize
(
'
terminal.linux.exec
'
,
"
Customizes which terminal to run.
"
),
'
default
'
:
'
x-terminal-emulator
'
}
}
}
}
});
export
class
OpenConsoleAction
extends
Action
{
...
...
src/vs/workbench/parts/execution/electron-browser/terminalService.ts
浏览文件 @
2695f193
...
...
@@ -9,7 +9,6 @@ import uri from 'vs/base/common/uri';
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
ITerminalService
}
from
'
vs/workbench/parts/execution/common/execution
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
IMessageService
}
from
'
vs/platform/message/common/message
'
;
import
cp
=
require
(
'
child_process
'
);
import
processes
=
require
(
'
vs/base/node/processes
'
);
...
...
@@ -18,13 +17,35 @@ export class WinTerminalService implements ITerminalService {
public
serviceId
=
ITerminalService
;
constructor
(
@
IConfigurationService
private
_configurationService
:
IConfigurationService
,
@
IMessageService
private
_messageService
:
IMessageService
@
IConfigurationService
private
_configurationService
:
IConfigurationService
)
{
}
public
openTerminal
(
path
:
string
):
void
{
cp
.
spawn
(
processes
.
getWindowsShell
(),
[
'
/c
'
,
'
start
'
,
'
/wait
'
],
{
cwd
:
path
});
this
.
_configurationService
.
loadConfiguration
().
done
(
configuration
=>
{
return
new
Promise
((
success
,
failed
)
=>
{
this
.
spawnTerminal
(
cp
,
configuration
,
processes
.
getWindowsShell
(),
path
,
success
,
err
=>
{
errors
.
onUnexpectedError
(
err
);
failed
(
err
);
}
);
});
},
errors
.
onUnexpectedError
);
}
private
spawnTerminal
(
spawner
,
configuration
,
command
:
string
,
path
:
string
,
onExit
,
onError
)
{
let
terminalConfig
=
configuration
.
terminal
;
let
cmdArgs
=
[
'
/c
'
,
'
start
'
,
'
/wait
'
,
terminalConfig
.
windows
.
exec
];
let
child
=
spawner
.
spawn
(
command
,
cmdArgs
,
{
cwd
:
path
});
child
.
on
(
'
error
'
,
onError
);
child
.
on
(
'
exit
'
,
onExit
);
}
}
...
...
@@ -49,14 +70,41 @@ export class MacTerminalService implements ITerminalService {
child
.
on
(
'
exit
'
,
(
code
:
number
)
=>
{
c
(
code
===
0
?
'
iterm.scpt
'
:
'
terminal.scpt
'
);
});
}).
then
(
name
=>
uri
.
parse
(
require
.
toUrl
(
`vs/workbench/parts/execution/electron-browser/
${
name
}
`
)).
fsPath
);
}).
then
(
name
=>
uri
.
parse
(
require
.
toUrl
(
`vs/workbench/parts/execution/electron-browser/
${
name
}
`
)).
fsPath
);
}
}
export
class
LinuxTerminalService
implements
ITerminalService
{
public
serviceId
=
ITerminalService
;
constructor
(
@
IConfigurationService
private
_configurationService
:
IConfigurationService
)
{
}
public
openTerminal
(
path
:
string
):
void
{
cp
.
spawn
(
'
x-terminal-emulator
'
,
[],
{
cwd
:
path
});
this
.
_configurationService
.
loadConfiguration
().
done
(
configuration
=>
{
return
new
Promise
((
success
,
failed
)
=>
{
this
.
spawnTerminal
(
cp
,
configuration
,
path
,
success
,
err
=>
{
errors
.
onUnexpectedError
(
err
);
failed
(
err
);
}
);
});
},
errors
.
onUnexpectedError
);
}
private
spawnTerminal
(
spawner
,
configuration
,
path
:
string
,
onExit
,
onError
)
{
let
terminalConfig
=
configuration
.
terminal
;
const
child
=
spawner
.
spawn
(
terminalConfig
.
linux
.
exec
,
[],
{
cwd
:
path
});
child
.
on
(
'
error
'
,
onError
);
child
.
on
(
'
exit
'
,
onExit
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录