Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
6cb2531d
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,发现更多精彩内容 >>
提交
6cb2531d
编写于
9月 05, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Exthost Output channels: generate id on the renderer side
上级
744e89f0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
22 deletion
+21
-22
src/vs/workbench/api/electron-browser/mainThreadOutputService.ts
...workbench/api/electron-browser/mainThreadOutputService.ts
+5
-2
src/vs/workbench/api/node/extHost.protocol.ts
src/vs/workbench/api/node/extHost.protocol.ts
+1
-1
src/vs/workbench/api/node/extHostOutputService.ts
src/vs/workbench/api/node/extHostOutputService.ts
+15
-19
未找到文件。
src/vs/workbench/api/electron-browser/mainThreadOutputService.ts
浏览文件 @
6cb2531d
...
...
@@ -16,6 +16,8 @@ import { UriComponents, URI } from 'vs/base/common/uri';
@
extHostNamedCustomer
(
MainContext
.
MainThreadOutputService
)
export
class
MainThreadOutputService
implements
MainThreadOutputServiceShape
{
private
static
_idPool
=
1
;
private
readonly
_outputService
:
IOutputService
;
private
readonly
_partService
:
IPartService
;
private
readonly
_panelService
:
IPanelService
;
...
...
@@ -35,9 +37,10 @@ export class MainThreadOutputService implements MainThreadOutputServiceShape {
// Leave all the existing channels intact (e.g. might help with troubleshooting)
}
public
$register
(
id
:
string
,
label
:
string
,
file
?:
UriComponents
):
TPromise
<
void
>
{
public
$register
(
label
:
string
,
file
?:
UriComponents
):
TPromise
<
string
>
{
const
id
=
'
extension-output-#
'
+
(
MainThreadOutputService
.
_idPool
++
);
Registry
.
as
<
IOutputChannelRegistry
>
(
Extensions
.
OutputChannels
).
registerChannel
({
id
,
label
,
file
:
file
?
URI
.
revive
(
file
)
:
null
,
log
:
false
});
return
TPromise
.
as
(
null
);
return
TPromise
.
as
(
id
);
}
public
$append
(
channelId
:
string
,
value
:
string
):
TPromise
<
void
>
{
...
...
src/vs/workbench/api/node/extHost.protocol.ts
浏览文件 @
6cb2531d
...
...
@@ -301,7 +301,7 @@ export interface MainThreadMessageServiceShape extends IDisposable {
}
export
interface
MainThreadOutputServiceShape
extends
IDisposable
{
$register
(
channelId
:
string
,
label
:
string
,
file
?:
UriComponents
):
Thenable
<
void
>
;
$register
(
label
:
string
,
file
?:
UriComponents
):
Thenable
<
string
>
;
$append
(
channelId
:
string
,
value
:
string
):
Thenable
<
void
>
;
$clear
(
channelId
:
string
):
Thenable
<
void
>
;
$reveal
(
channelId
:
string
,
preserveFocus
:
boolean
):
Thenable
<
void
>
;
...
...
src/vs/workbench/api/node/extHostOutputService.ts
浏览文件 @
6cb2531d
...
...
@@ -9,22 +9,18 @@ import * as vscode from 'vscode';
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
posix
}
from
'
path
'
;
import
{
OutputAppender
}
from
'
vs/platform/output/node/outputAppender
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
export
abstract
class
AbstractExtHostOutputChannel
implements
vscode
.
OutputChannel
{
private
static
_idPool
=
1
;
protected
readonly
_id
:
string
;
protected
readonly
_id
:
Thenable
<
string
>
;
private
readonly
_name
:
string
;
protected
readonly
_proxy
:
MainThreadOutputServiceShape
;
protected
_registerationPromise
:
Thenable
<
void
>
=
TPromise
.
as
(
null
);
private
_disposed
:
boolean
;
constructor
(
name
:
string
,
proxy
:
MainThreadOutputServiceShape
)
{
this
.
_id
=
'
extension-output-#
'
+
(
AbstractExtHostOutputChannel
.
_idPool
++
);
constructor
(
name
:
string
,
file
:
URI
,
proxy
:
MainThreadOutputServiceShape
)
{
this
.
_name
=
name
;
this
.
_proxy
=
proxy
;
this
.
_id
=
proxy
.
$register
(
this
.
name
,
file
);
}
get
name
():
string
{
...
...
@@ -40,17 +36,17 @@ export abstract class AbstractExtHostOutputChannel implements vscode.OutputChann
clear
():
void
{
this
.
validate
();
this
.
_
registerationPromise
.
then
(()
=>
this
.
_proxy
.
$clear
(
this
.
_
id
));
this
.
_
id
.
then
(
id
=>
this
.
_proxy
.
$clear
(
id
));
}
show
(
columnOrPreserveFocus
?:
vscode
.
ViewColumn
|
boolean
,
preserveFocus
?:
boolean
):
void
{
this
.
validate
();
this
.
_
registerationPromise
.
then
(()
=>
this
.
_proxy
.
$reveal
(
this
.
_
id
,
typeof
columnOrPreserveFocus
===
'
boolean
'
?
columnOrPreserveFocus
:
preserveFocus
));
this
.
_
id
.
then
(
id
=>
this
.
_proxy
.
$reveal
(
id
,
typeof
columnOrPreserveFocus
===
'
boolean
'
?
columnOrPreserveFocus
:
preserveFocus
));
}
hide
():
void
{
this
.
validate
();
this
.
_
registerationPromise
.
then
(()
=>
this
.
_proxy
.
$close
(
this
.
_
id
));
this
.
_
id
.
then
(
id
=>
this
.
_proxy
.
$close
(
id
));
}
protected
validate
():
void
{
...
...
@@ -61,8 +57,8 @@ export abstract class AbstractExtHostOutputChannel implements vscode.OutputChann
dispose
():
void
{
if
(
!
this
.
_disposed
)
{
this
.
_
registerationPromise
.
then
(
()
=>
this
.
_proxy
.
$dispose
(
this
.
_
id
))
this
.
_
id
.
then
(
id
=>
this
.
_proxy
.
$dispose
(
id
))
.
then
(()
=>
this
.
_disposed
=
true
);
}
}
...
...
@@ -71,26 +67,26 @@ export abstract class AbstractExtHostOutputChannel implements vscode.OutputChann
export
class
ExtHostOutputChannel
extends
AbstractExtHostOutputChannel
{
constructor
(
name
:
string
,
proxy
:
MainThreadOutputServiceShape
)
{
super
(
name
,
proxy
);
this
.
_registerationPromise
=
proxy
.
$register
(
this
.
_id
,
name
);
super
(
name
,
null
,
proxy
);
}
append
(
value
:
string
):
void
{
this
.
validate
();
this
.
_
registerationPromise
.
then
(()
=>
this
.
_proxy
.
$append
(
this
.
_
id
,
value
));
this
.
_
id
.
then
(
id
=>
this
.
_proxy
.
$append
(
id
,
value
));
}
}
export
class
ExtHostLoggingOutputChannel
extends
AbstractExtHostOutputChannel
{
private
static
_namePool
=
1
;
private
_appender
:
OutputAppender
;
constructor
(
name
:
string
,
outputDir
:
string
,
proxy
:
MainThreadOutputServiceShape
)
{
super
(
name
,
proxy
);
const
file
=
URI
.
file
(
posix
.
join
(
outputDir
,
`
${
this
.
_id
}
.log`
));
this
.
_appender
=
new
OutputAppender
(
this
.
_id
,
file
.
fsPath
);
this
.
_registerationPromise
=
proxy
.
$register
(
this
.
_id
,
this
.
name
,
file
);
const
fileName
=
`
${
ExtHostLoggingOutputChannel
.
_namePool
++
}
-
${
name
}
`
;
const
file
=
URI
.
file
(
posix
.
join
(
outputDir
,
`
${
fileName
}
.log`
));
super
(
name
,
file
,
proxy
);
this
.
_appender
=
new
OutputAppender
(
fileName
,
file
.
fsPath
);
}
append
(
value
:
string
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录