Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
fcd65cc8
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,发现更多精彩内容 >>
提交
fcd65cc8
编写于
6月 02, 2017
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Ensure terminal pty is ready before sendText is called
Fixes #27939
上级
6a01ff48
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
16 addition
and
7 deletion
+16
-7
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
...bench/parts/terminal/electron-browser/terminalInstance.ts
+16
-7
未找到文件。
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
浏览文件 @
fcd65cc8
...
@@ -31,6 +31,7 @@ import { TerminalLinkHandler } from 'vs/workbench/parts/terminal/electron-browse
...
@@ -31,6 +31,7 @@ import { TerminalLinkHandler } from 'vs/workbench/parts/terminal/electron-browse
import
{
TerminalWidgetManager
}
from
'
vs/workbench/parts/terminal/browser/terminalWidgetManager
'
;
import
{
TerminalWidgetManager
}
from
'
vs/workbench/parts/terminal/browser/terminalWidgetManager
'
;
import
{
registerThemingParticipant
,
ITheme
,
ICssStyleCollector
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
registerThemingParticipant
,
ITheme
,
ICssStyleCollector
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
scrollbarSliderBackground
,
scrollbarSliderHoverBackground
,
scrollbarSliderActiveBackground
}
from
'
vs/platform/theme/common/colorRegistry
'
;
import
{
scrollbarSliderBackground
,
scrollbarSliderHoverBackground
,
scrollbarSliderActiveBackground
}
from
'
vs/platform/theme/common/colorRegistry
'
;
import
{
TPromise
}
from
"
vs/base/common/winjs.base
"
;
/** The amount of time to consider terminal errors to be related to the launch */
/** The amount of time to consider terminal errors to be related to the launch */
const
LAUNCHING_DURATION
=
500
;
const
LAUNCHING_DURATION
=
500
;
...
@@ -56,6 +57,7 @@ export class TerminalInstance implements ITerminalInstance {
...
@@ -56,6 +57,7 @@ export class TerminalInstance implements ITerminalInstance {
private
_hadFocusOnExit
:
boolean
;
private
_hadFocusOnExit
:
boolean
;
private
_isLaunching
:
boolean
;
private
_isLaunching
:
boolean
;
private
_isVisible
:
boolean
;
private
_isVisible
:
boolean
;
private
_processReady
:
TPromise
<
void
>
;
private
_isDisposed
:
boolean
;
private
_isDisposed
:
boolean
;
private
_onDisposed
:
Emitter
<
ITerminalInstance
>
;
private
_onDisposed
:
Emitter
<
ITerminalInstance
>
;
private
_onDataForApi
:
Emitter
<
{
instance
:
ITerminalInstance
,
data
:
string
}
>
;
private
_onDataForApi
:
Emitter
<
{
instance
:
ITerminalInstance
,
data
:
string
}
>
;
...
@@ -115,6 +117,11 @@ export class TerminalInstance implements ITerminalInstance {
...
@@ -115,6 +117,11 @@ export class TerminalInstance implements ITerminalInstance {
this
.
_onProcessIdReady
=
new
Emitter
<
TerminalInstance
>
();
this
.
_onProcessIdReady
=
new
Emitter
<
TerminalInstance
>
();
this
.
_onTitleChanged
=
new
Emitter
<
string
>
();
this
.
_onTitleChanged
=
new
Emitter
<
string
>
();
// Create a promise that resolves when the pty is ready
this
.
_processReady
=
new
TPromise
<
void
>
(
c
=>
{
this
.
onProcessIdReady
(()
=>
c
(
void
0
));
});
this
.
_initDimensions
();
this
.
_initDimensions
();
this
.
_createProcess
(
this
.
_contextService
.
getWorkspace
(),
this
.
_shellLaunchConfig
);
this
.
_createProcess
(
this
.
_contextService
.
getWorkspace
(),
this
.
_shellLaunchConfig
);
this
.
_createXterm
();
this
.
_createXterm
();
...
@@ -376,6 +383,7 @@ export class TerminalInstance implements ITerminalInstance {
...
@@ -376,6 +383,7 @@ export class TerminalInstance implements ITerminalInstance {
}
}
public
sendText
(
text
:
string
,
addNewLine
:
boolean
):
void
{
public
sendText
(
text
:
string
,
addNewLine
:
boolean
):
void
{
this
.
_processReady
.
then
(()
=>
{
text
=
this
.
_sanitizeInput
(
text
);
text
=
this
.
_sanitizeInput
(
text
);
if
(
addNewLine
&&
text
.
substr
(
text
.
length
-
1
)
!==
'
\r
'
)
{
if
(
addNewLine
&&
text
.
substr
(
text
.
length
-
1
)
!==
'
\r
'
)
{
text
+=
'
\r
'
;
text
+=
'
\r
'
;
...
@@ -384,6 +392,7 @@ export class TerminalInstance implements ITerminalInstance {
...
@@ -384,6 +392,7 @@ export class TerminalInstance implements ITerminalInstance {
event
:
'
input
'
,
event
:
'
input
'
,
data
:
text
data
:
text
});
});
});
}
}
public
setVisible
(
visible
:
boolean
):
void
{
public
setVisible
(
visible
:
boolean
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录