Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit a449d20

Browse files
committed
Move LanguageServerProcess to lib/server-manager.js
1 parent 32a7254 commit a449d20

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

lib/auto-languageclient.ts

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import * as rpc from 'vscode-jsonrpc';
44
import * as path from 'path';
55
import * as atomIde from 'atom-ide';
66
import * as linter from 'atom-linter';
7-
import * as stream from 'stream';
87
import { Socket } from 'net';
9-
import { EventEmitter } from 'events';
108
import { ConsoleLogger, NullLogger, Logger } from './logger';
11-
import { ServerManager, ActiveServer } from './server-manager.js';
9+
import { LanguageServerProcess, ServerManager, ActiveServer } from './server-manager.js';
1210
import Convert from './convert.js';
1311

12+
export { LanguageServerProcess };
13+
1414
import {
1515
AutocompleteDidInsert,
1616
AutocompleteProvider,
@@ -39,21 +39,6 @@ import SignatureHelpAdapter from './adapters/signature-help-adapter';
3939

4040
export type ConnectionType = 'stdio' | 'socket' | 'ipc';
4141

42-
// Public: Defines the minimum surface area for an object that resembles a
43-
// ChildProcess. This is used so that language packages with alternative
44-
// language server process hosting strategies can return something compatible
45-
// with AutoLanguageClient.startServerProcess.
46-
export interface LanguageServerProcess extends EventEmitter {
47-
stdin: stream.Writable;
48-
stdout: stream.Readable;
49-
stderr: stream.Readable;
50-
pid: number;
51-
52-
kill(signal?: string): void;
53-
on(event: 'error', listener: (err: Error) => void): this;
54-
on(event: 'exit', listener: (code: number, signal: string) => void): this;
55-
}
56-
5742
// Public: AutoLanguageClient provides a simple way to have all the supported
5843
// Atom-IDE services wired up entirely for you by just subclassing it and
5944
// implementing startServerProcess/getGrammarScopes/getLanguageName and

lib/server-manager.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,37 @@
11
import { Logger } from './logger';
2+
import { EventEmitter } from 'events';
23
import LinterPushV2Adapter from './adapters/linter-push-v2-adapter';
34
import DocumentSyncAdapter from './adapters/document-sync-adapter';
45
import SignatureHelpAdapter from './adapters/signature-help-adapter';
56

67
import * as path from 'path';
8+
import * as stream from 'stream';
79
import * as cp from 'child_process';
810
import * as ls from './languageclient';
911
import * as atomIde from 'atom-ide';
1012
import Convert from './convert';
1113
import { CompositeDisposable, ProjectFileEvent, TextEditor } from 'atom';
1214

15+
// Public: Defines the minimum surface area for an object that resembles a
16+
// ChildProcess. This is used so that language packages with alternative
17+
// language server process hosting strategies can return something compatible
18+
// with AutoLanguageClient.startServerProcess.
19+
export interface LanguageServerProcess extends EventEmitter {
20+
stdin: stream.Writable;
21+
stdout: stream.Readable;
22+
stderr: stream.Readable;
23+
pid: number;
24+
25+
kill(signal?: string): void;
26+
on(event: 'error', listener: (err: Error) => void): this;
27+
on(event: 'exit', listener: (code: number, signal: string) => void): this;
28+
}
29+
1330
// The necessary elements for a server that has started or is starting.
1431
export interface ActiveServer {
1532
disposable: CompositeDisposable;
1633
projectPath: string;
17-
process: cp.ChildProcess;
34+
process: LanguageServerProcess;
1835
connection: ls.LanguageClientConnection;
1936
capabilities: ls.ServerCapabilities;
2037
linterPushV2?: LinterPushV2Adapter;

0 commit comments

Comments
 (0)