提交 45ea4703 编写于 作者: M Matt Bierner

Renames

上级 4a053c9d
......@@ -6,7 +6,7 @@
import * as assert from 'assert';
import 'mocha';
import * as stream from 'stream';
import { PipeRequestCanceller, ServerProcess, TypeScriptServer } from '../tsServer/server';
import { PipeRequestCanceller, TsServerProcess, ProcessBasedTsServer } 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 TsServerProcess {
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 TypeScriptServer(process, undefined, new PipeRequestCanceller(undefined, tracer), undefined!, NoopTelemetryReporter, tracer);
const server = new ProcessBasedTsServer(process, undefined, new PipeRequestCanceller(undefined, tracer), undefined!, NoopTelemetryReporter, tracer);
const onWrite1 = process.onWrite();
server.executeImpl('geterr', {}, { isAsync: false, token: nulToken, expectsResult: true });
......
......@@ -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: TsServerProcess,
private readonly _tsServerLogFile: string | undefined,
private readonly _requestCanceller: OngoingRequestCanceller,
private readonly _version: TypeScriptVersion,
......
......@@ -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, TypeScriptServer, PipeRequestCanceller } from './server';
import { ITypeScriptServer, TsServerProcess, ProcessBasedTsServer, 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 TypeScriptServer(
return new ProcessBasedTsServer(
new ChildServerProcess(childProcess),
tsServerLogFile,
new PipeRequestCanceller(cancellationPipeName, this._tracer),
......@@ -171,7 +171,7 @@ export class TypeScriptServerSpawner {
}
}
class ChildServerProcess implements ServerProcess {
class ChildServerProcess implements TsServerProcess {
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.
先完成此消息的编辑!
想要评论请 注册