Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
734f91b5
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,发现更多精彩内容 >>
提交
734f91b5
编写于
8月 17, 2016
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Terminal.sendText API
上级
cce4650a
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
14 deletion
+34
-14
src/vs/workbench/api/node/mainThreadTerminalService.ts
src/vs/workbench/api/node/mainThreadTerminalService.ts
+6
-3
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
+3
-2
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
...bench/parts/terminal/electron-browser/terminalInstance.ts
+10
-0
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
...orkbench/parts/terminal/electron-browser/terminalPanel.ts
+7
-2
src/vs/workbench/parts/terminal/electron-browser/terminalService.ts
...kbench/parts/terminal/electron-browser/terminalService.ts
+8
-7
未找到文件。
src/vs/workbench/api/node/mainThreadTerminalService.ts
浏览文件 @
734f91b5
...
...
@@ -24,12 +24,15 @@ export class MainThreadTerminalService extends MainThreadTerminalServiceShape {
}
public
$show
(
terminalId
:
number
,
preserveFocus
:
boolean
):
void
{
this
.
_terminalService
.
show
(
!
preserveFocus
,
terminalId
);
this
.
_terminalService
.
show
(
!
preserveFocus
).
then
((
terminalPanel
)
=>
{
terminalPanel
.
setActiveTerminalById
(
terminalId
);
});
}
public
$sendText
(
terminalId
:
number
,
text
:
string
,
addNewLine
:
boolean
):
void
{
this
.
_terminalService
.
show
(
false
,
terminalId
).
then
((
terminalPanel
)
=>
{
// TODO: Implement
this
.
_terminalService
.
show
(
false
).
then
((
terminalPanel
)
=>
{
terminalPanel
.
setActiveTerminalById
(
terminalId
);
terminalPanel
.
sendTextToActiveTerminal
(
text
,
addNewLine
);
});
}
}
src/vs/workbench/parts/terminal/electron-browser/terminal.ts
浏览文件 @
734f91b5
...
...
@@ -73,7 +73,7 @@ export interface ITerminalService {
runSelectedText
():
TPromise
<
any
>
;
scrollDown
():
TPromise
<
any
>
;
scrollUp
():
TPromise
<
any
>
;
show
(
focus
:
boolean
,
terminalId
?:
number
):
TPromise
<
ITerminalPanel
>
;
show
(
focus
:
boolean
):
TPromise
<
ITerminalPanel
>
;
setActiveTerminal
(
index
:
number
):
TPromise
<
any
>
;
toggle
():
TPromise
<
any
>
;
...
...
@@ -84,5 +84,6 @@ export interface ITerminalService {
}
export
interface
ITerminalPanel
{
sendTextToActiveTerminal
(
text
:
string
,
addNewLine
:
boolean
):
void
;
setActiveTerminalById
(
terminalId
:
number
):
void
;
}
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
浏览文件 @
734f91b5
...
...
@@ -181,6 +181,16 @@ export class TerminalInstance {
});
}
public
sendText
(
text
:
string
,
addNewLine
:
boolean
):
void
{;
if
(
addNewLine
&&
text
.
substr
(
text
.
length
-
os
.
EOL
.
length
)
!==
os
.
EOL
)
{
text
+=
os
.
EOL
;
}
this
.
terminalProcess
.
process
.
send
({
event
:
'
input
'
,
data
:
text
});
}
public
focus
(
force
?:
boolean
):
void
{
if
(
!
this
.
xterm
)
{
return
;
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalPanel.ts
浏览文件 @
734f91b5
...
...
@@ -207,6 +207,11 @@ export class TerminalPanel extends Panel {
return
super
.
setVisible
(
visible
);
}
public
sendTextToActiveTerminal
(
text
:
string
,
addNewLine
:
boolean
):
void
{
let
terminalInstance
=
this
.
terminalInstances
[
this
.
terminalService
.
getActiveTerminalIndex
()];
terminalInstance
.
sendText
(
text
,
addNewLine
);
}
private
createTerminal
(
terminalProcess
:
ITerminalProcess
,
terminalFocusContextKey
:
IContextKey
<
boolean
>
):
TPromise
<
TerminalInstance
>
{
return
new
TPromise
<
TerminalInstance
>
(
resolve
=>
{
var
terminalInstance
=
new
TerminalInstance
(
...
...
@@ -230,13 +235,13 @@ export class TerminalPanel extends Panel {
});
}
public
setActiveTerminal
(
newActiveIndex
:
number
)
{
public
setActiveTerminal
(
newActiveIndex
:
number
)
:
void
{
this
.
terminalInstances
.
forEach
((
terminalInstance
,
i
)
=>
{
terminalInstance
.
toggleVisibility
(
i
===
newActiveIndex
);
});
}
public
setActiveTerminalById
(
terminalId
:
number
)
{
public
setActiveTerminalById
(
terminalId
:
number
)
:
void
{
let
terminalIndex
=
-
1
;
this
.
terminalInstances
.
forEach
((
terminalInstance
,
i
)
=>
{
if
(
terminalInstance
.
id
===
terminalId
)
{
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalService.ts
浏览文件 @
734f91b5
...
...
@@ -108,13 +108,14 @@ export class TerminalService implements ITerminalService {
return
this
.
focus
().
then
((
terminalPanel
)
=>
{
let
editor
=
this
.
codeEditorService
.
getFocusedCodeEditor
();
let
selection
=
editor
.
getSelection
();
let
text
=
selection
.
isEmpty
()
?
editor
.
getValue
()
:
editor
.
getModel
().
getValueInRange
(
selection
,
os
.
EOL
===
'
\n
'
?
EndOfLinePreference
.
LF
:
EndOfLinePreference
.
CRLF
);
// Add a new line if one doesn't already exist so the text is executed
text
=
text
+
(
text
.
substr
(
text
.
length
-
os
.
EOL
.
length
)
===
os
.
EOL
?
''
:
os
.
EOL
);
this
.
terminalProcesses
[
this
.
activeTerminalIndex
].
process
.
send
({
event
:
'
input
'
,
data
:
text
});
let
text
:
string
;
if
(
selection
.
isEmpty
())
{
text
=
editor
.
getValue
();
}
else
{
let
endOfLinePreference
=
os
.
EOL
===
'
\n
'
?
EndOfLinePreference
.
LF
:
EndOfLinePreference
.
CRLF
;
text
=
editor
.
getModel
().
getValueInRange
(
selection
,
endOfLinePreference
);
}
terminalPanel
.
sendTextToActiveTerminal
(
text
,
true
);
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录