Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
fec1d6a4
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,发现更多精彩内容 >>
提交
fec1d6a4
编写于
9月 13, 2016
作者:
D
Daniel Imms
提交者:
GitHub
9月 13, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11982 from Microsoft/octref/10917
Add shellArgs. Fix #10917
上级
da4a174b
9da873d6
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
24 addition
and
20 deletion
+24
-20
src/vs/vscode.d.ts
src/vs/vscode.d.ts
+1
-1
src/vs/workbench/api/node/extHost.api.impl.ts
src/vs/workbench/api/node/extHost.api.impl.ts
+2
-2
src/vs/workbench/api/node/extHost.protocol.ts
src/vs/workbench/api/node/extHost.protocol.ts
+1
-1
src/vs/workbench/api/node/extHostTerminalService.ts
src/vs/workbench/api/node/extHostTerminalService.ts
+4
-6
src/vs/workbench/api/node/mainThreadTerminalService.ts
src/vs/workbench/api/node/mainThreadTerminalService.ts
+2
-2
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
+1
-1
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
...bench/parts/terminal/electron-browser/terminalInstance.ts
+6
-4
src/vs/workbench/parts/terminal/electron-browser/terminalService.ts
...kbench/parts/terminal/electron-browser/terminalService.ts
+7
-3
未找到文件。
src/vs/vscode.d.ts
浏览文件 @
fec1d6a4
...
...
@@ -3500,7 +3500,7 @@ declare namespace vscode {
* @param shellPath Optional path to a custom shell executable to be used in the terminal.
* @return A new Terminal.
*/
export
function
createTerminal
(
name
?:
string
,
shellPath
?:
string
):
Terminal
;
export
function
createTerminal
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
Terminal
;
}
/**
...
...
src/vs/workbench/api/node/extHost.api.impl.ts
浏览文件 @
fec1d6a4
...
...
@@ -260,8 +260,8 @@ export class ExtHostAPIImplementation {
createOutputChannel
(
name
:
string
):
vscode
.
OutputChannel
{
return
extHostOutputService
.
createOutputChannel
(
name
);
},
createTerminal
(
name
?:
string
,
shellPath
?:
string
):
vscode
.
Terminal
{
return
extHostTerminalService
.
createTerminal
(
name
,
shellPath
);
createTerminal
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
vscode
.
Terminal
{
return
extHostTerminalService
.
createTerminal
(
name
,
shellPath
,
shellArgs
);
}
};
...
...
src/vs/workbench/api/node/extHost.protocol.ts
浏览文件 @
fec1d6a4
...
...
@@ -153,7 +153,7 @@ export abstract class MainThreadOutputServiceShape {
}
export
abstract
class
MainThreadTerminalServiceShape
{
$createTerminal
(
name
?:
string
,
shellPath
?:
string
):
number
{
throw
ni
();
}
$createTerminal
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
number
{
throw
ni
();
}
$dispose
(
terminalId
:
number
):
void
{
throw
ni
();
}
$hide
(
terminalId
:
number
):
void
{
throw
ni
();
}
$sendText
(
terminalId
:
number
,
text
:
string
,
addNewLine
:
boolean
):
void
{
throw
ni
();
}
...
...
src/vs/workbench/api/node/extHostTerminalService.ts
浏览文件 @
fec1d6a4
...
...
@@ -11,17 +11,15 @@ import {MainContext, MainThreadTerminalServiceShape} from './extHost.protocol';
export
class
ExtHostTerminal
implements
vscode
.
Terminal
{
public
_name
:
string
;
public
_shellPath
:
string
;
private
_id
:
number
;
private
_proxy
:
MainThreadTerminalServiceShape
;
private
_disposed
:
boolean
;
constructor
(
proxy
:
MainThreadTerminalServiceShape
,
id
:
number
,
name
?:
string
,
shellPath
?:
string
)
{
constructor
(
proxy
:
MainThreadTerminalServiceShape
,
id
:
number
,
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
)
{
this
.
_name
=
name
;
this
.
_shellPath
=
shellPath
;
this
.
_proxy
=
proxy
;
this
.
_id
=
this
.
_proxy
.
$createTerminal
(
name
,
shellPath
);
this
.
_id
=
this
.
_proxy
.
$createTerminal
(
name
,
shellPath
,
shellArgs
);
}
public
get
name
():
string
{
...
...
@@ -66,7 +64,7 @@ export class ExtHostTerminalService {
this
.
_proxy
=
threadService
.
get
(
MainContext
.
MainThreadTerminalService
);
}
public
createTerminal
(
name
?:
string
,
shellPath
?:
string
):
vscode
.
Terminal
{
return
new
ExtHostTerminal
(
this
.
_proxy
,
-
1
,
name
,
shellPath
);
public
createTerminal
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
vscode
.
Terminal
{
return
new
ExtHostTerminal
(
this
.
_proxy
,
-
1
,
name
,
shellPath
,
shellArgs
);
}
}
src/vs/workbench/api/node/mainThreadTerminalService.ts
浏览文件 @
fec1d6a4
...
...
@@ -19,8 +19,8 @@ export class MainThreadTerminalService extends MainThreadTerminalServiceShape {
super
();
}
public
$createTerminal
(
name
?:
string
,
shellPath
?:
string
):
number
{
return
this
.
terminalService
.
createInstance
(
name
,
shellPath
).
id
;
public
$createTerminal
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
number
{
return
this
.
terminalService
.
createInstance
(
name
,
shellPath
,
shellArgs
).
id
;
}
public
$show
(
terminalId
:
number
,
preserveFocus
:
boolean
):
void
{
...
...
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
浏览文件 @
fec1d6a4
...
...
@@ -62,7 +62,7 @@ export interface ITerminalService {
onInstanceTitleChanged
:
Event
<
string
>
;
terminalInstances
:
ITerminalInstance
[];
createInstance
(
name
?:
string
,
shellPath
?:
string
):
ITerminalInstance
;
createInstance
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]
):
ITerminalInstance
;
getInstanceFromId
(
terminalId
:
number
):
ITerminalInstance
;
getInstanceLabels
():
string
[];
getActiveInstance
():
ITerminalInstance
;
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
浏览文件 @
fec1d6a4
...
...
@@ -52,13 +52,13 @@ export class TerminalInstance implements ITerminalInstance {
private
container
:
HTMLElement
,
private
workspace
:
IWorkspace
,
name
:
string
,
shell
Path
:
string
,
shell
:
IShell
,
@
IKeybindingService
private
keybindingService
:
IKeybindingService
,
@
IMessageService
private
messageService
:
IMessageService
)
{
this
.
_id
=
TerminalInstance
.
ID_COUNTER
++
;
this
.
_onTitleChanged
=
new
Emitter
<
string
>
();
this
.
createProcess
(
workspace
,
name
,
shell
Path
);
this
.
createProcess
(
workspace
,
name
,
shell
);
if
(
container
)
{
this
.
attachToElement
(
container
);
...
...
@@ -210,9 +210,11 @@ export class TerminalInstance implements ITerminalInstance {
return
typeof
data
===
'
string
'
?
data
.
replace
(
TerminalInstance
.
EOL_REGEX
,
os
.
EOL
)
:
data
;
}
private
createProcess
(
workspace
:
IWorkspace
,
name
?:
string
,
shell
Path
?:
string
)
{
private
createProcess
(
workspace
:
IWorkspace
,
name
?:
string
,
shell
?:
IShell
)
{
let
locale
=
this
.
configHelper
.
isSetLocaleVariables
()
?
platform
.
locale
:
undefined
;
let
shell
=
shellPath
?
{
executable
:
shellPath
,
args
:
[]
}
:
this
.
configHelper
.
getShell
();
if
(
!
shell
)
{
shell
=
this
.
configHelper
.
getShell
();
}
let
env
=
TerminalInstance
.
createTerminalEnv
(
process
.
env
,
shell
,
workspace
,
locale
);
this
.
_title
=
name
?
name
:
''
;
this
.
process
=
cp
.
fork
(
'
./terminalProcess
'
,
[],
{
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalService.ts
浏览文件 @
fec1d6a4
...
...
@@ -14,7 +14,7 @@ import { IPartService } from 'vs/workbench/services/part/common/partService';
import
{
ITerminalInstance
,
ITerminalService
,
KEYBINDING_CONTEXT_TERMINAL_FOCUS
,
TERMINAL_PANEL_ID
}
from
'
vs/workbench/parts/terminal/electron-browser/terminal
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
TerminalConfigHelper
}
from
'
vs/workbench/parts/terminal/electron-browser/terminalConfigHelper
'
;
import
{
TerminalConfigHelper
,
IShell
}
from
'
vs/workbench/parts/terminal/electron-browser/terminalConfigHelper
'
;
import
{
TerminalInstance
}
from
'
vs/workbench/parts/terminal/electron-browser/terminalInstance
'
;
export
class
TerminalService
implements
ITerminalService
{
...
...
@@ -51,7 +51,11 @@ export class TerminalService implements ITerminalService {
this
.
_configHelper
=
<
TerminalConfigHelper
>
this
.
instantiationService
.
createInstance
(
TerminalConfigHelper
,
platform
.
platform
);
}
public
createInstance
(
name
?:
string
,
shellPath
?:
string
):
ITerminalInstance
{
public
createInstance
(
name
?:
string
,
shellPath
?:
string
,
shellArgs
?:
string
[]):
ITerminalInstance
{
let
shell
:
IShell
=
{
executable
:
shellPath
,
args
:
shellArgs
};
let
terminalInstance
=
<
TerminalInstance
>
this
.
instantiationService
.
createInstance
(
TerminalInstance
,
this
.
terminalFocusContextKey
,
this
.
onTerminalInstanceDispose
.
bind
(
this
),
...
...
@@ -59,7 +63,7 @@ export class TerminalService implements ITerminalService {
this
.
terminalContainer
,
this
.
workspaceContextService
.
getWorkspace
(),
name
,
shell
Path
);
shell
);
terminalInstance
.
addDisposable
(
terminalInstance
.
onTitleChanged
(
this
.
_onInstanceTitleChanged
.
fire
,
this
.
_onInstanceTitleChanged
));
this
.
terminalInstances
.
push
(
terminalInstance
);
if
(
this
.
terminalInstances
.
length
===
1
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录