Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
45ea4703
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,体验更适合开发者的 AI 搜索 >>
提交
45ea4703
编写于
6月 20, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Renames
上级
4a053c9d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
19 deletion
+18
-19
extensions/typescript-language-features/src/test/server.test.ts
...ions/typescript-language-features/src/test/server.test.ts
+3
-3
extensions/typescript-language-features/src/tsServer/server.ts
...sions/typescript-language-features/src/tsServer/server.ts
+12
-13
extensions/typescript-language-features/src/tsServer/spanwer.ts
...ions/typescript-language-features/src/tsServer/spanwer.ts
+3
-3
未找到文件。
extensions/typescript-language-features/src/test/server.test.ts
浏览文件 @
45ea4703
...
...
@@ -6,7 +6,7 @@
import
*
as
assert
from
'
assert
'
;
import
'
mocha
'
;
import
*
as
stream
from
'
stream
'
;
import
{
PipeRequestCanceller
,
ServerProcess
,
TypeScript
Server
}
from
'
../tsServer/server
'
;
import
{
PipeRequestCanceller
,
TsServerProcess
,
ProcessBasedTs
Server
}
from
'
../tsServer/server
'
;
import
{
nulToken
}
from
'
../utils/cancellation
'
;
import
Logger
from
'
../utils/logger
'
;
import
TelemetryReporter
from
'
../utils/telemetry
'
;
...
...
@@ -19,7 +19,7 @@ const NoopTelemetryReporter = new class implements TelemetryReporter {
dispose
():
void
{
/* noop */
}
};
class
FakeServerProcess
implements
ServerProcess
{
class
FakeServerProcess
implements
Ts
ServerProcess
{
private
readonly
_out
:
stream
.
PassThrough
;
private
readonly
writeListeners
=
new
Set
<
(
data
:
Buffer
)
=>
void
>
();
...
...
@@ -62,7 +62,7 @@ suite('Server', () => {
test
(
'
should send requests with increasing sequence numbers
'
,
async
()
=>
{
const
process
=
new
FakeServerProcess
();
const
server
=
new
TypeScript
Server
(
process
,
undefined
,
new
PipeRequestCanceller
(
undefined
,
tracer
),
undefined
!
,
NoopTelemetryReporter
,
tracer
);
const
server
=
new
ProcessBasedTs
Server
(
process
,
undefined
,
new
PipeRequestCanceller
(
undefined
,
tracer
),
undefined
!
,
NoopTelemetryReporter
,
tracer
);
const
onWrite1
=
process
.
onWrite
();
server
.
executeImpl
(
'
geterr
'
,
{},
{
isAsync
:
false
,
token
:
nulToken
,
expectsResult
:
true
});
...
...
extensions/typescript-language-features/src/tsServer/server.ts
浏览文件 @
45ea4703
...
...
@@ -41,17 +41,6 @@ export class PipeRequestCanceller implements OngoingRequestCanceller {
}
}
export
interface
ServerProcess
{
readonly
stdout
:
stream
.
Readable
;
write
(
serverRequest
:
Proto
.
Request
):
void
;
on
(
name
:
'
exit
'
,
handler
:
(
code
:
number
|
null
)
=>
void
):
void
;
on
(
name
:
'
error
'
,
handler
:
(
error
:
Error
)
=>
void
):
void
;
kill
():
void
;
}
export
interface
ITypeScriptServer
{
readonly
onEvent
:
vscode
.
Event
<
Proto
.
Event
>
;
readonly
onExit
:
vscode
.
Event
<
any
>
;
...
...
@@ -69,14 +58,24 @@ export interface ITypeScriptServer {
dispose
():
void
;
}
export
class
TypeScriptServer
extends
Disposable
implements
ITypeScriptServer
{
export
interface
TsServerProcess
{
readonly
stdout
:
stream
.
Readable
;
write
(
serverRequest
:
Proto
.
Request
):
void
;
on
(
name
:
'
exit
'
,
handler
:
(
code
:
number
|
null
)
=>
void
):
void
;
on
(
name
:
'
error
'
,
handler
:
(
error
:
Error
)
=>
void
):
void
;
kill
():
void
;
}
export
class
ProcessBasedTsServer
extends
Disposable
implements
ITypeScriptServer
{
private
readonly
_reader
:
Reader
<
Proto
.
Response
>
;
private
readonly
_requestQueue
=
new
RequestQueue
();
private
readonly
_callbacks
=
new
CallbackMap
<
Proto
.
Response
>
();
private
readonly
_pendingResponses
=
new
Set
<
number
>
();
constructor
(
private
readonly
_process
:
ServerProcess
,
private
readonly
_process
:
Ts
ServerProcess
,
private
readonly
_tsServerLogFile
:
string
|
undefined
,
private
readonly
_requestCanceller
:
OngoingRequestCanceller
,
private
readonly
_version
:
TypeScriptVersion
,
...
...
extensions/typescript-language-features/src/tsServer/spanwer.ts
浏览文件 @
45ea4703
...
...
@@ -18,7 +18,7 @@ import { PluginManager } from '../utils/plugins';
import
TelemetryReporter
from
'
../utils/telemetry
'
;
import
Tracer
from
'
../utils/tracer
'
;
import
{
TypeScriptVersion
,
TypeScriptVersionProvider
}
from
'
../utils/versionProvider
'
;
import
{
ITypeScriptServer
,
ServerProcess
,
TypeScript
Server
,
PipeRequestCanceller
}
from
'
./server
'
;
import
{
ITypeScriptServer
,
TsServerProcess
,
ProcessBasedTs
Server
,
PipeRequestCanceller
}
from
'
./server
'
;
export
class
TypeScriptServerSpawner
{
public
constructor
(
...
...
@@ -51,7 +51,7 @@ export class TypeScriptServerSpawner {
const
childProcess
=
electron
.
fork
(
version
.
tsServerPath
,
args
,
this
.
getForkOptions
());
this
.
_logger
.
info
(
'
Started TSServer
'
);
return
new
TypeScript
Server
(
return
new
ProcessBasedTs
Server
(
new
ChildServerProcess
(
childProcess
),
tsServerLogFile
,
new
PipeRequestCanceller
(
cancellationPipeName
,
this
.
_tracer
),
...
...
@@ -171,7 +171,7 @@ export class TypeScriptServerSpawner {
}
}
class
ChildServerProcess
implements
ServerProcess
{
class
ChildServerProcess
implements
Ts
ServerProcess
{
public
constructor
(
private
readonly
_process
:
child_process
.
ChildProcess
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录