@lspeasy/server 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/capability-guard.js.map +1 -1
- package/dist/capability-proxy.js.map +1 -1
- package/dist/dispatcher.d.ts +46 -7
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +46 -7
- package/dist/dispatcher.js.map +1 -1
- package/dist/index.d.ts +52 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.js.map +1 -1
- package/dist/progress/partial-result-sender.d.ts +30 -1
- package/dist/progress/partial-result-sender.d.ts.map +1 -1
- package/dist/progress/partial-result-sender.js +30 -1
- package/dist/progress/partial-result-sender.js.map +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/server.d.ts +168 -12
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +114 -12
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +102 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +14 -3
- package/dist/types.js.map +1 -1
- package/dist/validation.js.map +1 -1
- package/package.json +7 -8
package/dist/server.d.ts
CHANGED
|
@@ -5,18 +5,75 @@ import type { Transport, Disposable, ServerCapabilities, ClientCapabilities, LSP
|
|
|
5
5
|
import type { ServerOptions, RequestHandler, NotificationHandler, NotebookDocumentHandlerNamespace } from './types.js';
|
|
6
6
|
import { ServerState } from './types.js';
|
|
7
7
|
/**
|
|
8
|
-
* LSP
|
|
8
|
+
* Full-featured LSP server with automatic lifecycle management, typed handlers,
|
|
9
|
+
* capability-aware namespaces, and pluggable middleware.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
|
|
13
|
+
* / `shutdown` / `exit`) automatically. Register your handlers with
|
|
14
|
+
* `onRequest` / `onNotification`, declare capabilities with
|
|
15
|
+
* `registerCapabilities`, then start the server with `listen(transport)`.
|
|
12
16
|
*
|
|
13
|
-
*
|
|
17
|
+
* ### Capability-aware namespaces
|
|
18
|
+
*
|
|
19
|
+
* After calling `registerCapabilities(caps)`, the server exposes typed
|
|
20
|
+
* namespaces — e.g. `server.textDocument.onHover(handler)` — that are only
|
|
21
|
+
* present when the corresponding capability is declared. TypeScript enforces
|
|
22
|
+
* this at compile time so you cannot accidentally register a handler for a
|
|
23
|
+
* capability you never advertised.
|
|
24
|
+
*
|
|
25
|
+
* ### Transport selection
|
|
26
|
+
*
|
|
27
|
+
* - **Browser / universal**: `WebSocketTransport` (from `@lspeasy/core`)
|
|
28
|
+
* - **Node.js**: `StdioTransport`, `TcpTransport`, `IpcTransport` (from `@lspeasy/core/node`)
|
|
29
|
+
* - **Web Workers**: `DedicatedWorkerTransport`, `SharedWorkerTransport` (from `@lspeasy/core`)
|
|
30
|
+
*
|
|
31
|
+
* @useWhen
|
|
32
|
+
* You are building an LSP language server that editors and language-client
|
|
33
|
+
* tooling will connect to. `LSPServer` is the primary entry point for all
|
|
34
|
+
* server implementations.
|
|
35
|
+
*
|
|
36
|
+
* @avoidWhen
|
|
37
|
+
* You need a bare JSON-RPC layer without LSP semantics — use the transport
|
|
38
|
+
* and framing utilities directly instead.
|
|
39
|
+
*
|
|
40
|
+
* @never
|
|
41
|
+
* NEVER call `server.shutdown()` or `server.close()` from inside a request
|
|
42
|
+
* or notification handler — doing so attempts to close the transport while it
|
|
43
|
+
* is actively dispatching, causing a deadlock.
|
|
44
|
+
*
|
|
45
|
+
* NEVER mutate `ServerCapabilities` after `initialized` has been received.
|
|
46
|
+
* The client cached the `InitializeResult` at handshake time; runtime changes
|
|
47
|
+
* are invisible to it.
|
|
48
|
+
*
|
|
49
|
+
* NEVER share one `LSPServer` instance across multiple transports or
|
|
50
|
+
* connections. Each connection requires its own server instance to maintain
|
|
51
|
+
* independent protocol state (lifecycle phase, pending request IDs, etc.).
|
|
52
|
+
*
|
|
53
|
+
* NEVER send a server-to-client notification before the `initialize` response
|
|
54
|
+
* has been dispatched. Use the `initialized` notification handler as the
|
|
55
|
+
* earliest safe point for server-initiated messages.
|
|
14
56
|
*
|
|
15
57
|
* @example
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { LSPServer } from '@lspeasy/server';
|
|
60
|
+
* // Node.js: import { StdioTransport } from '@lspeasy/core/node';
|
|
61
|
+
* // Browser: import { WebSocketTransport } from '@lspeasy/core';
|
|
62
|
+
*
|
|
63
|
+
* const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
|
|
64
|
+
* .registerCapabilities({ hoverProvider: true });
|
|
65
|
+
*
|
|
66
|
+
* server.textDocument.onHover(async (params, token) => {
|
|
67
|
+
* if (token.isCancellationRequested) return null;
|
|
68
|
+
* return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* const transport = new StdioTransport();
|
|
72
|
+
* await server.listen(transport);
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @template Capabilities - Shape of the server capabilities, defaults to `ServerCapabilities`.
|
|
76
|
+
* @category Server
|
|
20
77
|
*/
|
|
21
78
|
export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabilities> = ServerCapabilities> {
|
|
22
79
|
private readonly logger;
|
|
@@ -104,19 +161,56 @@ export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabiliti
|
|
|
104
161
|
*/
|
|
105
162
|
expect<C extends Partial<ClientCapabilities>>(): this & Server<C, Capabilities>;
|
|
106
163
|
/**
|
|
107
|
-
* Send a server-to-client request.
|
|
164
|
+
* Send a server-to-client request and await the client's response.
|
|
165
|
+
*
|
|
166
|
+
* @param method - The LSP request method name (server-to-client direction).
|
|
167
|
+
* @param params - Optional request parameters.
|
|
168
|
+
* @returns A promise resolving to the client's result.
|
|
169
|
+
* @throws {Error} When not listening (transport not attached). Fix: only call `sendRequest` from inside a handler or after the `listening` event fires.
|
|
170
|
+
* @throws {Error} When the client returns a JSON-RPC error response. Fix: catch and inspect `error.code`; `window/showMessageRequest` rejections are user-initiated (user dismissed), not bugs.
|
|
171
|
+
* @throws {Error} When the request times out (if `requestTimeout` is configured). Fix: increase `ServerOptions.requestTimeout` for slow UI interactions like `window/showMessageRequest`.
|
|
172
|
+
*
|
|
173
|
+
* @category Server
|
|
108
174
|
*/
|
|
109
175
|
sendRequest<Method extends LSPRequestMethod<'serverToClient'>>(method: Method, params?: ParamsForRequest<Method>): Promise<ResultForRequest<Method>>;
|
|
110
176
|
/**
|
|
111
|
-
* Send a server-to-client notification.
|
|
177
|
+
* Send a server-to-client notification (fire-and-forget).
|
|
178
|
+
*
|
|
179
|
+
* @param method - The LSP notification method name (server-to-client direction).
|
|
180
|
+
* @param params - Optional notification parameters.
|
|
181
|
+
* @throws {Error} When not listening. Fix: only send notifications after `listen()` resolves and before `shutdown()` is called; guard with `isListening()`.
|
|
182
|
+
* @throws {Error} When the transport's underlying `send()` fails (e.g. broken socket). Fix: subscribe to `server.onError()` to catch transport-level write failures.
|
|
183
|
+
*
|
|
184
|
+
* @category Server
|
|
112
185
|
*/
|
|
113
186
|
sendNotification<Method extends LSPNotificationMethod<'serverToClient'>>(method: Method, params?: ParamsForNotification<Method>): Promise<void>;
|
|
114
187
|
/**
|
|
115
|
-
*
|
|
188
|
+
* Attaches the server to a transport and begins processing messages.
|
|
189
|
+
*
|
|
190
|
+
* @remarks
|
|
191
|
+
* After `listen()` returns the server is ready to receive the `initialize`
|
|
192
|
+
* request from the client. The LSP handshake proceeds automatically.
|
|
193
|
+
*
|
|
194
|
+
* @param transport - The transport to listen on.
|
|
195
|
+
* @throws {Error} When already listening. Fix: call `close()` then create a fresh `LSPServer` instance — do not reuse a single instance across connections.
|
|
196
|
+
*
|
|
197
|
+
* @category Lifecycle
|
|
116
198
|
*/
|
|
117
199
|
listen(transport: Transport): Promise<void>;
|
|
118
200
|
/**
|
|
119
|
-
*
|
|
201
|
+
* Initiates graceful shutdown, waits for in-flight handlers, then closes
|
|
202
|
+
* the transport.
|
|
203
|
+
*
|
|
204
|
+
* @remarks
|
|
205
|
+
* Waits up to `timeout` ms for pending handlers to complete, then
|
|
206
|
+
* cancels any remaining in-flight requests before closing. Use this method
|
|
207
|
+
* to shut down in response to an OS signal or editor session end.
|
|
208
|
+
*
|
|
209
|
+
* @param timeout - Maximum milliseconds to wait for in-flight handlers before
|
|
210
|
+
* force-cancelling them.
|
|
211
|
+
* @defaultValue 5000
|
|
212
|
+
*
|
|
213
|
+
* @category Lifecycle
|
|
120
214
|
*/
|
|
121
215
|
shutdown(timeout?: number): Promise<void>;
|
|
122
216
|
/**
|
|
@@ -165,6 +259,68 @@ export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabiliti
|
|
|
165
259
|
*/
|
|
166
260
|
private handleResponse;
|
|
167
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Full-featured LSP server with automatic lifecycle management, typed handlers,
|
|
264
|
+
* capability-aware namespaces, and pluggable middleware.
|
|
265
|
+
*
|
|
266
|
+
* @remarks
|
|
267
|
+
* `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
|
|
268
|
+
* / `shutdown` / `exit`) automatically. Register handlers with `onRequest` /
|
|
269
|
+
* `onNotification`, declare capabilities with `registerCapabilities`, then
|
|
270
|
+
* start with `listen(transport)`.
|
|
271
|
+
*
|
|
272
|
+
* ### Capability-aware namespaces
|
|
273
|
+
* After `registerCapabilities({ hoverProvider: true })`, TypeScript exposes
|
|
274
|
+
* `server.textDocument.onHover(handler)` — methods absent unless the
|
|
275
|
+
* corresponding capability is declared.
|
|
276
|
+
*
|
|
277
|
+
* @useWhen
|
|
278
|
+
* You are building an LSP language server that editors and language-client
|
|
279
|
+
* tooling will connect to.
|
|
280
|
+
*
|
|
281
|
+
* @avoidWhen
|
|
282
|
+
* You need a bare JSON-RPC layer without LSP semantics — use the transport
|
|
283
|
+
* and framing utilities from `@lspeasy/core` directly.
|
|
284
|
+
*
|
|
285
|
+
* @never
|
|
286
|
+
* NEVER call `server.shutdown()` or `server.close()` from inside a request
|
|
287
|
+
* or notification handler — doing so attempts to close the transport while it
|
|
288
|
+
* is actively dispatching, causing a deadlock.
|
|
289
|
+
*
|
|
290
|
+
* NEVER mutate `ServerCapabilities` after `initialized` has been received.
|
|
291
|
+
* The client cached the `InitializeResult` at handshake time; runtime changes
|
|
292
|
+
* are invisible to it.
|
|
293
|
+
*
|
|
294
|
+
* NEVER share one `LSPServer` instance across multiple transports or connections.
|
|
295
|
+
* Each connection requires its own server instance to maintain independent state.
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```ts
|
|
299
|
+
* import { LSPServer } from '@lspeasy/server';
|
|
300
|
+
* import { StdioTransport } from '@lspeasy/core/node';
|
|
301
|
+
*
|
|
302
|
+
* const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
|
|
303
|
+
* .registerCapabilities({ hoverProvider: true });
|
|
304
|
+
*
|
|
305
|
+
* server.textDocument.onHover(async (params, token) => {
|
|
306
|
+
* if (token.isCancellationRequested) return null;
|
|
307
|
+
* return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
|
|
308
|
+
* });
|
|
309
|
+
*
|
|
310
|
+
* await server.listen(new StdioTransport());
|
|
311
|
+
* ```
|
|
312
|
+
*
|
|
313
|
+
* @template ServerCaps - Shape of the server capabilities.
|
|
314
|
+
* @category Server
|
|
315
|
+
*/
|
|
168
316
|
export type LSPServer<ServerCaps extends Partial<ServerCapabilities> = ServerCapabilities> = BaseLSPServer<ServerCaps> & Server<ClientCapabilities, ServerCaps>;
|
|
317
|
+
/**
|
|
318
|
+
* Constructs an {@link LSPServer} instance.
|
|
319
|
+
*
|
|
320
|
+
* @param options - Optional {@link ServerOptions} to configure the server.
|
|
321
|
+
* @returns A new `LSPServer` instance.
|
|
322
|
+
*
|
|
323
|
+
* @category Server
|
|
324
|
+
*/
|
|
169
325
|
export declare const LSPServer: new <ServerCaps extends Partial<ServerCapabilities> = ServerCapabilities>(options?: ServerOptions<ServerCaps>) => LSPServer<ServerCaps>;
|
|
170
326
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,SAAS,EAKT,UAAU,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,MAAM,EAKP,MAAM,eAAe,CAAC;AAWvB,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAOzC
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -11,18 +11,75 @@ import { validateParams } from './validation.js';
|
|
|
11
11
|
import { CapabilityGuard, ClientCapabilityGuard } from './capability-guard.js';
|
|
12
12
|
import { initializeServerHandlerMethods, initializeServerSendMethods } from './capability-proxy.js';
|
|
13
13
|
/**
|
|
14
|
-
* LSP
|
|
14
|
+
* Full-featured LSP server with automatic lifecycle management, typed handlers,
|
|
15
|
+
* capability-aware namespaces, and pluggable middleware.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
|
|
19
|
+
* / `shutdown` / `exit`) automatically. Register your handlers with
|
|
20
|
+
* `onRequest` / `onNotification`, declare capabilities with
|
|
21
|
+
* `registerCapabilities`, then start the server with `listen(transport)`.
|
|
18
22
|
*
|
|
19
|
-
*
|
|
23
|
+
* ### Capability-aware namespaces
|
|
24
|
+
*
|
|
25
|
+
* After calling `registerCapabilities(caps)`, the server exposes typed
|
|
26
|
+
* namespaces — e.g. `server.textDocument.onHover(handler)` — that are only
|
|
27
|
+
* present when the corresponding capability is declared. TypeScript enforces
|
|
28
|
+
* this at compile time so you cannot accidentally register a handler for a
|
|
29
|
+
* capability you never advertised.
|
|
30
|
+
*
|
|
31
|
+
* ### Transport selection
|
|
32
|
+
*
|
|
33
|
+
* - **Browser / universal**: `WebSocketTransport` (from `@lspeasy/core`)
|
|
34
|
+
* - **Node.js**: `StdioTransport`, `TcpTransport`, `IpcTransport` (from `@lspeasy/core/node`)
|
|
35
|
+
* - **Web Workers**: `DedicatedWorkerTransport`, `SharedWorkerTransport` (from `@lspeasy/core`)
|
|
36
|
+
*
|
|
37
|
+
* @useWhen
|
|
38
|
+
* You are building an LSP language server that editors and language-client
|
|
39
|
+
* tooling will connect to. `LSPServer` is the primary entry point for all
|
|
40
|
+
* server implementations.
|
|
41
|
+
*
|
|
42
|
+
* @avoidWhen
|
|
43
|
+
* You need a bare JSON-RPC layer without LSP semantics — use the transport
|
|
44
|
+
* and framing utilities directly instead.
|
|
45
|
+
*
|
|
46
|
+
* @never
|
|
47
|
+
* NEVER call `server.shutdown()` or `server.close()` from inside a request
|
|
48
|
+
* or notification handler — doing so attempts to close the transport while it
|
|
49
|
+
* is actively dispatching, causing a deadlock.
|
|
50
|
+
*
|
|
51
|
+
* NEVER mutate `ServerCapabilities` after `initialized` has been received.
|
|
52
|
+
* The client cached the `InitializeResult` at handshake time; runtime changes
|
|
53
|
+
* are invisible to it.
|
|
54
|
+
*
|
|
55
|
+
* NEVER share one `LSPServer` instance across multiple transports or
|
|
56
|
+
* connections. Each connection requires its own server instance to maintain
|
|
57
|
+
* independent protocol state (lifecycle phase, pending request IDs, etc.).
|
|
58
|
+
*
|
|
59
|
+
* NEVER send a server-to-client notification before the `initialize` response
|
|
60
|
+
* has been dispatched. Use the `initialized` notification handler as the
|
|
61
|
+
* earliest safe point for server-initiated messages.
|
|
20
62
|
*
|
|
21
63
|
* @example
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
64
|
+
* ```ts
|
|
65
|
+
* import { LSPServer } from '@lspeasy/server';
|
|
66
|
+
* // Node.js: import { StdioTransport } from '@lspeasy/core/node';
|
|
67
|
+
* // Browser: import { WebSocketTransport } from '@lspeasy/core';
|
|
68
|
+
*
|
|
69
|
+
* const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
|
|
70
|
+
* .registerCapabilities({ hoverProvider: true });
|
|
71
|
+
*
|
|
72
|
+
* server.textDocument.onHover(async (params, token) => {
|
|
73
|
+
* if (token.isCancellationRequested) return null;
|
|
74
|
+
* return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
|
|
75
|
+
* });
|
|
76
|
+
*
|
|
77
|
+
* const transport = new StdioTransport();
|
|
78
|
+
* await server.listen(transport);
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @template Capabilities - Shape of the server capabilities, defaults to `ServerCapabilities`.
|
|
82
|
+
* @category Server
|
|
26
83
|
*/
|
|
27
84
|
export class BaseLSPServer {
|
|
28
85
|
logger;
|
|
@@ -165,7 +222,16 @@ export class BaseLSPServer {
|
|
|
165
222
|
return this;
|
|
166
223
|
}
|
|
167
224
|
/**
|
|
168
|
-
* Send a server-to-client request.
|
|
225
|
+
* Send a server-to-client request and await the client's response.
|
|
226
|
+
*
|
|
227
|
+
* @param method - The LSP request method name (server-to-client direction).
|
|
228
|
+
* @param params - Optional request parameters.
|
|
229
|
+
* @returns A promise resolving to the client's result.
|
|
230
|
+
* @throws {Error} When not listening (transport not attached). Fix: only call `sendRequest` from inside a handler or after the `listening` event fires.
|
|
231
|
+
* @throws {Error} When the client returns a JSON-RPC error response. Fix: catch and inspect `error.code`; `window/showMessageRequest` rejections are user-initiated (user dismissed), not bugs.
|
|
232
|
+
* @throws {Error} When the request times out (if `requestTimeout` is configured). Fix: increase `ServerOptions.requestTimeout` for slow UI interactions like `window/showMessageRequest`.
|
|
233
|
+
*
|
|
234
|
+
* @category Server
|
|
169
235
|
*/
|
|
170
236
|
async sendRequest(method, params) {
|
|
171
237
|
if (!this.transport) {
|
|
@@ -199,7 +265,14 @@ export class BaseLSPServer {
|
|
|
199
265
|
return promise;
|
|
200
266
|
}
|
|
201
267
|
/**
|
|
202
|
-
* Send a server-to-client notification.
|
|
268
|
+
* Send a server-to-client notification (fire-and-forget).
|
|
269
|
+
*
|
|
270
|
+
* @param method - The LSP notification method name (server-to-client direction).
|
|
271
|
+
* @param params - Optional notification parameters.
|
|
272
|
+
* @throws {Error} When not listening. Fix: only send notifications after `listen()` resolves and before `shutdown()` is called; guard with `isListening()`.
|
|
273
|
+
* @throws {Error} When the transport's underlying `send()` fails (e.g. broken socket). Fix: subscribe to `server.onError()` to catch transport-level write failures.
|
|
274
|
+
*
|
|
275
|
+
* @category Server
|
|
203
276
|
*/
|
|
204
277
|
async sendNotification(method, params) {
|
|
205
278
|
if (!this.transport) {
|
|
@@ -224,7 +297,16 @@ export class BaseLSPServer {
|
|
|
224
297
|
});
|
|
225
298
|
}
|
|
226
299
|
/**
|
|
227
|
-
*
|
|
300
|
+
* Attaches the server to a transport and begins processing messages.
|
|
301
|
+
*
|
|
302
|
+
* @remarks
|
|
303
|
+
* After `listen()` returns the server is ready to receive the `initialize`
|
|
304
|
+
* request from the client. The LSP handshake proceeds automatically.
|
|
305
|
+
*
|
|
306
|
+
* @param transport - The transport to listen on.
|
|
307
|
+
* @throws {Error} When already listening. Fix: call `close()` then create a fresh `LSPServer` instance — do not reuse a single instance across connections.
|
|
308
|
+
*
|
|
309
|
+
* @category Lifecycle
|
|
228
310
|
*/
|
|
229
311
|
async listen(transport) {
|
|
230
312
|
if (this.transport) {
|
|
@@ -248,7 +330,19 @@ export class BaseLSPServer {
|
|
|
248
330
|
this.events.emit('listening');
|
|
249
331
|
}
|
|
250
332
|
/**
|
|
251
|
-
*
|
|
333
|
+
* Initiates graceful shutdown, waits for in-flight handlers, then closes
|
|
334
|
+
* the transport.
|
|
335
|
+
*
|
|
336
|
+
* @remarks
|
|
337
|
+
* Waits up to `timeout` ms for pending handlers to complete, then
|
|
338
|
+
* cancels any remaining in-flight requests before closing. Use this method
|
|
339
|
+
* to shut down in response to an OS signal or editor session end.
|
|
340
|
+
*
|
|
341
|
+
* @param timeout - Maximum milliseconds to wait for in-flight handlers before
|
|
342
|
+
* force-cancelling them.
|
|
343
|
+
* @defaultValue 5000
|
|
344
|
+
*
|
|
345
|
+
* @category Lifecycle
|
|
252
346
|
*/
|
|
253
347
|
async shutdown(timeout = 5000) {
|
|
254
348
|
if (this.state === ServerState.Shutdown) {
|
|
@@ -521,6 +615,14 @@ export class BaseLSPServer {
|
|
|
521
615
|
this.pendingRequests.reject(String(id), new Error('Invalid response message'));
|
|
522
616
|
}
|
|
523
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* Constructs an {@link LSPServer} instance.
|
|
620
|
+
*
|
|
621
|
+
* @param options - Optional {@link ServerOptions} to configure the server.
|
|
622
|
+
* @returns A new `LSPServer` instance.
|
|
623
|
+
*
|
|
624
|
+
* @category Server
|
|
625
|
+
*/
|
|
524
626
|
// Generic constructor that preserves type parameters
|
|
525
627
|
export const LSPServer = BaseLSPServer;
|
|
526
628
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,7 +9,14 @@ import type { ResponseErrorInterface } from '@lspeasy/core';
|
|
|
9
9
|
*/
|
|
10
10
|
export type { Server } from '@lspeasy/core';
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Configuration for an `LSPServer` instance.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Passed to the `LSPServer` constructor. All fields are optional; the server
|
|
16
|
+
* works with zero configuration and sensible defaults.
|
|
17
|
+
*
|
|
18
|
+
* @config
|
|
19
|
+
* @category Server
|
|
13
20
|
*/
|
|
14
21
|
export interface ServerOptions<Capabilities extends Partial<ServerCapabilities> = ServerCapabilities> {
|
|
15
22
|
/**
|
|
@@ -57,41 +64,99 @@ export interface ServerOptions<Capabilities extends Partial<ServerCapabilities>
|
|
|
57
64
|
middleware?: Array<Middleware | ScopedMiddleware>;
|
|
58
65
|
}
|
|
59
66
|
/**
|
|
60
|
-
* Context provided to request handlers
|
|
67
|
+
* Context provided to request handlers alongside params and the cancellation token.
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* Use `id` for correlating log entries to specific requests, and
|
|
71
|
+
* `clientCapabilities` to conditionally include capability-dependent data in
|
|
72
|
+
* the response (e.g. include `commitCharacters` only when the client supports
|
|
73
|
+
* `completionItem.commitCharactersSupport`).
|
|
74
|
+
*
|
|
75
|
+
* @category Handler
|
|
61
76
|
*/
|
|
62
77
|
export interface RequestContext {
|
|
63
78
|
/**
|
|
64
|
-
*
|
|
79
|
+
* JSON-RPC request ID for correlation.
|
|
80
|
+
*
|
|
81
|
+
* @remarks
|
|
82
|
+
* May be a `string` or a `number` — never coerce to integer.
|
|
65
83
|
*/
|
|
66
84
|
id: number | string;
|
|
67
85
|
/**
|
|
68
|
-
*
|
|
86
|
+
* LSP method string, e.g. `'textDocument/hover'`.
|
|
69
87
|
*/
|
|
70
88
|
method: string;
|
|
71
89
|
/**
|
|
72
|
-
* Client capabilities
|
|
90
|
+
* Client capabilities received during `initialize`.
|
|
91
|
+
* Available after the first `initialize` request.
|
|
73
92
|
*/
|
|
74
93
|
clientCapabilities?: ClientCapabilities | undefined;
|
|
75
94
|
}
|
|
76
95
|
/**
|
|
77
|
-
* Context provided to notification handlers
|
|
96
|
+
* Context provided to notification handlers alongside params.
|
|
97
|
+
*
|
|
98
|
+
* @category Handler
|
|
78
99
|
*/
|
|
79
100
|
export interface NotificationContext {
|
|
80
101
|
/**
|
|
81
|
-
*
|
|
102
|
+
* LSP method string, e.g. `'textDocument/didOpen'`.
|
|
82
103
|
*/
|
|
83
104
|
method: string;
|
|
84
105
|
/**
|
|
85
|
-
* Client capabilities
|
|
106
|
+
* Client capabilities received during `initialize`.
|
|
107
|
+
* Available after the `initialize` handshake.
|
|
86
108
|
*/
|
|
87
109
|
clientCapabilities?: ClientCapabilities | undefined;
|
|
88
110
|
}
|
|
89
111
|
/**
|
|
90
|
-
*
|
|
112
|
+
* Signature for LSP request handlers registered via `LSPServer.onRequest`.
|
|
113
|
+
*
|
|
114
|
+
* @remarks
|
|
115
|
+
* Handlers are async by default — returning `Promise<Result>` is fine.
|
|
116
|
+
* Throw a `ResponseError` to send a structured JSON-RPC error response.
|
|
117
|
+
* Throw any other `Error` to send a generic `-32603 InternalError` response.
|
|
118
|
+
*
|
|
119
|
+
* Check `token.isCancellationRequested` at async yield points to stop
|
|
120
|
+
* early when the client sends `$/cancelRequest`.
|
|
121
|
+
*
|
|
122
|
+
* @never
|
|
123
|
+
* NEVER call `server.close()` or `server.shutdown()` from inside a handler —
|
|
124
|
+
* the server is processing messages on the transport at that point, and
|
|
125
|
+
* closing the transport from within a handler causes a deadlock: the handler
|
|
126
|
+
* awaits the close, but the close waits for all handlers to finish.
|
|
127
|
+
*
|
|
128
|
+
* NEVER mutate server capabilities inside a handler. Capabilities are
|
|
129
|
+
* negotiated once during `initialize`; changing them at runtime has no effect
|
|
130
|
+
* on the client, which cached the `InitializeResult` at startup.
|
|
131
|
+
*
|
|
132
|
+
* @throws {@link ResponseError} A structured JSON-RPC error (preferred for protocol errors).
|
|
133
|
+
* @throws Error Any `Error` subclass is converted to a `-32603 InternalError` response.
|
|
134
|
+
*
|
|
135
|
+
* @see {@link NotificationHandler} for the fire-and-forget counterpart.
|
|
136
|
+
* @see {@link RequestContext} for the third parameter shape.
|
|
137
|
+
*
|
|
138
|
+
* @typeParam Params - The request params type, inferred from the method name.
|
|
139
|
+
* @typeParam Result - The response result type, inferred from the method name.
|
|
140
|
+
* @category Handler
|
|
91
141
|
*/
|
|
92
142
|
export type RequestHandler<Params = unknown, Result = unknown> = (params: Params, token: CancellationToken, context: RequestContext) => Promise<Result> | Result;
|
|
93
143
|
/**
|
|
94
|
-
*
|
|
144
|
+
* Signature for LSP notification handlers registered via
|
|
145
|
+
* `LSPServer.onNotification`.
|
|
146
|
+
*
|
|
147
|
+
* @remarks
|
|
148
|
+
* Notifications are fire-and-forget — the framework does not wait for the
|
|
149
|
+
* returned promise in any protocol-observable way, but unhandled rejections
|
|
150
|
+
* are forwarded to `server.onError()`.
|
|
151
|
+
*
|
|
152
|
+
* @never
|
|
153
|
+
* NEVER send a server-to-client notification inside a handler for the LSP
|
|
154
|
+
* `initialize` request. The `initialize` response has not yet been sent at
|
|
155
|
+
* that point; notifications sent before the response are discarded by clients.
|
|
156
|
+
* Use the `initialized` notification handler for post-handshake setup instead.
|
|
157
|
+
*
|
|
158
|
+
* @typeParam Params - The notification params type, inferred from method name.
|
|
159
|
+
* @category Handler
|
|
95
160
|
*/
|
|
96
161
|
export type NotificationHandler<Params = unknown> = (params: Params, context: NotificationContext) => void | Promise<void>;
|
|
97
162
|
/**
|
|
@@ -102,7 +167,19 @@ export interface HandlerRegistration {
|
|
|
102
167
|
isRequest: boolean;
|
|
103
168
|
}
|
|
104
169
|
/**
|
|
105
|
-
*
|
|
170
|
+
* Lifecycle state of an `LSPServer` instance.
|
|
171
|
+
*
|
|
172
|
+
* @remarks
|
|
173
|
+
* State transitions:
|
|
174
|
+
* `Created` → `Initializing` (on `initialize` request)
|
|
175
|
+
* → `Initialized` (after `initialize` response sent)
|
|
176
|
+
* → `ShuttingDown` (on `shutdown` request)
|
|
177
|
+
* → `Shutdown` (transport closed).
|
|
178
|
+
*
|
|
179
|
+
* Non-lifecycle requests received before `Initialized` are automatically
|
|
180
|
+
* rejected with `ServerNotInitialized (-32002)`.
|
|
181
|
+
*
|
|
182
|
+
* @category Lifecycle
|
|
106
183
|
*/
|
|
107
184
|
export declare enum ServerState {
|
|
108
185
|
Created = "created",
|
|
@@ -111,16 +188,30 @@ export declare enum ServerState {
|
|
|
111
188
|
ShuttingDown = "shutting_down",
|
|
112
189
|
Shutdown = "shutdown"
|
|
113
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Namespace for registering notebook-document lifecycle notification handlers.
|
|
193
|
+
*
|
|
194
|
+
* @remarks
|
|
195
|
+
* Available on `server.notebookDocument`. Mirrors the standard LSP
|
|
196
|
+
* `notebookDocument/*` notification methods for servers that support
|
|
197
|
+
* `notebookDocumentSync` capability.
|
|
198
|
+
*
|
|
199
|
+
* @category Handler
|
|
200
|
+
*/
|
|
114
201
|
export interface NotebookDocumentHandlerNamespace {
|
|
202
|
+
/** Register a handler for `notebookDocument/didOpen` notifications. */
|
|
115
203
|
onDidOpen(handler: NotificationHandler<DidOpenNotebookDocumentParams>): {
|
|
116
204
|
dispose(): void;
|
|
117
205
|
};
|
|
206
|
+
/** Register a handler for `notebookDocument/didChange` notifications. */
|
|
118
207
|
onDidChange(handler: NotificationHandler<DidChangeNotebookDocumentParams>): {
|
|
119
208
|
dispose(): void;
|
|
120
209
|
};
|
|
210
|
+
/** Register a handler for `notebookDocument/didSave` notifications. */
|
|
121
211
|
onDidSave(handler: NotificationHandler<DidSaveNotebookDocumentParams>): {
|
|
122
212
|
dispose(): void;
|
|
123
213
|
};
|
|
214
|
+
/** Register a handler for `notebookDocument/didClose` notifications. */
|
|
124
215
|
onDidClose(handler: NotificationHandler<DidCloseNotebookDocumentParams>): {
|
|
125
216
|
dispose(): void;
|
|
126
217
|
};
|