@jupyterlab/lsp 4.6.0-beta.0 → 4.6.0-rc.0

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.
@@ -158,6 +158,10 @@ export declare class DocumentConnectionManager implements ILSPDocumentConnection
158
158
  * Set of ignored languages
159
159
  */
160
160
  private _ignoredLanguages;
161
+ /**
162
+ * Map of in-flight connect calls keyed by virtual document URI.
163
+ */
164
+ private _pendingConnections;
161
165
  }
162
166
  export declare namespace DocumentConnectionManager {
163
167
  interface IOptions {
@@ -5,6 +5,7 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils';
5
5
  import { Signal } from '@lumino/signaling';
6
6
  import { LSPConnection } from './connection';
7
7
  import { expandDottedPaths, sleep, untilReady } from './utils';
8
+ import { PromiseDelegate } from '@lumino/coreutils';
8
9
  /**
9
10
  * Each Widget with a document (whether file or a notebook) has the same DocumentConnectionManager
10
11
  * (see JupyterLabWidgetAdapter). Using id_path instead of uri led to documents being overwritten
@@ -65,6 +66,10 @@ export class DocumentConnectionManager {
65
66
  this._disconnected = new Signal(this);
66
67
  this._closed = new Signal(this);
67
68
  this._documentsChanged = new Signal(this);
69
+ /**
70
+ * Map of in-flight connect calls keyed by virtual document URI.
71
+ */
72
+ this._pendingConnections = new Map();
68
73
  this.connections = new Map();
69
74
  this.documents = new Map();
70
75
  this.adapters = new Map();
@@ -250,32 +255,61 @@ export class DocumentConnectionManager {
250
255
  * @return A promise of the LSP connection
251
256
  */
252
257
  async connect(options, firstTimeoutSeconds = 30, secondTimeoutMinutes = 5) {
253
- let connection = await this._connectSocket(options);
254
- let { virtualDocument } = options;
255
- if (!connection) {
256
- return;
258
+ const { virtualDocument } = options;
259
+ const { uri } = virtualDocument;
260
+ const existingConnection = this.connections.get(uri);
261
+ if (existingConnection) {
262
+ return existingConnection;
263
+ }
264
+ const pendingConnection = this._pendingConnections.get(uri);
265
+ if (pendingConnection) {
266
+ return pendingConnection;
257
267
  }
258
- if (!connection.isReady) {
268
+ const pendingConnectDelegate = new PromiseDelegate();
269
+ const pendingConnectionPromise = pendingConnectDelegate.promise;
270
+ this._pendingConnections.set(uri, pendingConnectionPromise);
271
+ void (async () => {
259
272
  try {
260
- // user feedback hinted that 40 seconds was too short and some users are willing to wait more;
261
- // to make the best of both worlds we first check frequently (6.6 times a second) for the first
262
- // 30 seconds, and show the warning early in case if something is wrong; we then continue retrying
263
- // for another 5 minutes, but only once per second.
264
- await untilReady(() => connection.isReady, Math.round((firstTimeoutSeconds * 1000) / 150), 150);
265
- }
266
- catch (_a) {
267
- console.log(`Connection to ${virtualDocument.uri} timed out after ${firstTimeoutSeconds} seconds, will continue retrying for another ${secondTimeoutMinutes} minutes`);
268
- try {
269
- await untilReady(() => connection.isReady, 60 * secondTimeoutMinutes, 1000);
270
- }
271
- catch (_b) {
272
- console.log(`Connection to ${virtualDocument.uri} timed out again after ${secondTimeoutMinutes} minutes, giving up`);
273
+ let connection = await this._connectSocket(options);
274
+ if (!connection) {
275
+ pendingConnectDelegate.resolve(undefined);
273
276
  return;
274
277
  }
278
+ if (!connection.isReady) {
279
+ try {
280
+ // user feedback hinted that 40 seconds was too short and some users are willing to wait more;
281
+ // to make the best of both worlds we first check frequently (6.6 times a second) for the first
282
+ // 30 seconds, and show the warning early in case if something is wrong; we then continue retrying
283
+ // for another 5 minutes, but only once per second.
284
+ await untilReady(() => connection.isReady, Math.round((firstTimeoutSeconds * 1000) / 150), 150);
285
+ }
286
+ catch (_a) {
287
+ console.log(`Connection to ${virtualDocument.uri} timed out after ${firstTimeoutSeconds} seconds, will continue retrying for another ${secondTimeoutMinutes} minutes`);
288
+ try {
289
+ await untilReady(() => connection.isReady, 60 * secondTimeoutMinutes, 1000);
290
+ }
291
+ catch (_b) {
292
+ console.log(`Connection to ${virtualDocument.uri} timed out again after ${secondTimeoutMinutes} minutes, giving up`);
293
+ pendingConnectDelegate.resolve(undefined);
294
+ return;
295
+ }
296
+ }
297
+ }
298
+ this._connected.emit({ connection, virtualDocument });
299
+ pendingConnectDelegate.resolve(connection);
300
+ }
301
+ catch (error) {
302
+ pendingConnectDelegate.reject(error);
303
+ }
304
+ })();
305
+ try {
306
+ return await pendingConnectionPromise;
307
+ }
308
+ finally {
309
+ if (this._pendingConnections.get(uri) === pendingConnectionPromise) {
310
+ this._pendingConnections.delete(uri);
275
311
  }
276
312
  }
277
- this._connected.emit({ connection, virtualDocument });
278
- return connection;
279
313
  }
280
314
  /**
281
315
  * Disconnect the signals of requested virtual document URI.
@@ -1 +1 @@
1
- {"version":3,"file":"connection_manager.js","sourceRoot":"","sources":["../src/connection_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection_manager.js","sourceRoot":"","sources":["../src/connection_manager.ts"],"names":[],"mappings":"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"}
package/lib/tokens.d.ts CHANGED
@@ -11,10 +11,10 @@ import type { LanguageServer1 as LSPLanguageServerSettings } from './plugin';
11
11
  import type * as SCHEMA from './schema';
12
12
  import type { VirtualDocument } from './virtual/document';
13
13
  import type { ILspConnection, ILspOptions } from './ws-connection/types';
14
- import { IDocumentInfo } from './ws-connection/types';
14
+ import type { IDocumentInfo } from './ws-connection/types';
15
15
  import type * as rpc from 'vscode-jsonrpc';
16
16
  import type * as lsp from 'vscode-languageserver-protocol';
17
- export { IDocumentInfo };
17
+ export type { IDocumentInfo };
18
18
  /**
19
19
  * Example server keys==ids that are expected. The list is not exhaustive.
20
20
  * Custom server keys are allowed. Constraining the values helps avoid errors,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/lsp",
3
- "version": "4.6.0-beta.0",
3
+ "version": "4.6.0-rc.0",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,24 +41,24 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/apputils": "^4.7.0-beta.0",
45
- "@jupyterlab/codeeditor": "^4.6.0-beta.0",
46
- "@jupyterlab/codemirror": "^4.6.0-beta.0",
47
- "@jupyterlab/coreutils": "^6.6.0-beta.0",
48
- "@jupyterlab/docregistry": "^4.6.0-beta.0",
49
- "@jupyterlab/services": "^7.6.0-beta.0",
50
- "@jupyterlab/translation": "^4.6.0-beta.0",
44
+ "@jupyterlab/apputils": "^4.7.0-rc.0",
45
+ "@jupyterlab/codeeditor": "^4.6.0-rc.0",
46
+ "@jupyterlab/codemirror": "^4.6.0-rc.0",
47
+ "@jupyterlab/coreutils": "^6.6.0-rc.0",
48
+ "@jupyterlab/docregistry": "^4.6.0-rc.0",
49
+ "@jupyterlab/services": "^7.6.0-rc.0",
50
+ "@jupyterlab/translation": "^4.6.0-rc.0",
51
51
  "@lumino/coreutils": "^2.2.2",
52
52
  "@lumino/disposable": "^2.1.5",
53
53
  "@lumino/signaling": "^2.1.5",
54
- "@lumino/widgets": "^2.7.5",
54
+ "@lumino/widgets": "^2.8.0",
55
55
  "lodash.mergewith": "^4.6.1",
56
56
  "vscode-jsonrpc": "^8.2.0",
57
57
  "vscode-languageserver-protocol": "^3.17.0",
58
58
  "vscode-ws-jsonrpc": "~1.0.2"
59
59
  },
60
60
  "devDependencies": {
61
- "@jupyterlab/testing": "^4.6.0-beta.0",
61
+ "@jupyterlab/testing": "^4.6.0-rc.0",
62
62
  "@types/jest": "^29.2.0",
63
63
  "@types/lodash.mergewith": "^4.6.1",
64
64
  "jest": "^29.2.0",
@@ -26,7 +26,7 @@ import { expandDottedPaths, sleep, untilReady } from './utils';
26
26
  import type { VirtualDocument } from './virtual/document';
27
27
 
28
28
  import type * as protocol from 'vscode-languageserver-protocol';
29
- import type { ReadonlyJSONObject } from '@lumino/coreutils';
29
+ import { PromiseDelegate, type ReadonlyJSONObject } from '@lumino/coreutils';
30
30
 
31
31
  /**
32
32
  * Each Widget with a document (whether file or a notebook) has the same DocumentConnectionManager
@@ -377,44 +377,77 @@ export class DocumentConnectionManager implements ILSPDocumentConnectionManager
377
377
  firstTimeoutSeconds = 30,
378
378
  secondTimeoutMinutes = 5
379
379
  ): Promise<ILSPConnection | undefined> {
380
- let connection = await this._connectSocket(options);
381
- let { virtualDocument } = options;
382
- if (!connection) {
383
- return;
380
+ const { virtualDocument } = options;
381
+ const { uri } = virtualDocument;
382
+ const existingConnection = this.connections.get(uri);
383
+
384
+ if (existingConnection) {
385
+ return existingConnection;
386
+ }
387
+
388
+ const pendingConnection = this._pendingConnections.get(uri);
389
+ if (pendingConnection) {
390
+ return pendingConnection;
384
391
  }
385
- if (!connection.isReady) {
392
+
393
+ const pendingConnectDelegate = new PromiseDelegate<
394
+ ILSPConnection | undefined
395
+ >();
396
+ const pendingConnectionPromise = pendingConnectDelegate.promise;
397
+ this._pendingConnections.set(uri, pendingConnectionPromise);
398
+
399
+ void (async () => {
386
400
  try {
387
- // user feedback hinted that 40 seconds was too short and some users are willing to wait more;
388
- // to make the best of both worlds we first check frequently (6.6 times a second) for the first
389
- // 30 seconds, and show the warning early in case if something is wrong; we then continue retrying
390
- // for another 5 minutes, but only once per second.
391
- await untilReady(
392
- () => connection!.isReady,
393
- Math.round((firstTimeoutSeconds * 1000) / 150),
394
- 150
395
- );
396
- } catch {
397
- console.log(
398
- `Connection to ${virtualDocument.uri} timed out after ${firstTimeoutSeconds} seconds, will continue retrying for another ${secondTimeoutMinutes} minutes`
399
- );
400
- try {
401
- await untilReady(
402
- () => connection!.isReady,
403
- 60 * secondTimeoutMinutes,
404
- 1000
405
- );
406
- } catch {
407
- console.log(
408
- `Connection to ${virtualDocument.uri} timed out again after ${secondTimeoutMinutes} minutes, giving up`
409
- );
401
+ let connection = await this._connectSocket(options);
402
+ if (!connection) {
403
+ pendingConnectDelegate.resolve(undefined);
410
404
  return;
411
405
  }
412
- }
413
- }
406
+ if (!connection.isReady) {
407
+ try {
408
+ // user feedback hinted that 40 seconds was too short and some users are willing to wait more;
409
+ // to make the best of both worlds we first check frequently (6.6 times a second) for the first
410
+ // 30 seconds, and show the warning early in case if something is wrong; we then continue retrying
411
+ // for another 5 minutes, but only once per second.
412
+ await untilReady(
413
+ () => connection!.isReady,
414
+ Math.round((firstTimeoutSeconds * 1000) / 150),
415
+ 150
416
+ );
417
+ } catch {
418
+ console.log(
419
+ `Connection to ${virtualDocument.uri} timed out after ${firstTimeoutSeconds} seconds, will continue retrying for another ${secondTimeoutMinutes} minutes`
420
+ );
421
+ try {
422
+ await untilReady(
423
+ () => connection!.isReady,
424
+ 60 * secondTimeoutMinutes,
425
+ 1000
426
+ );
427
+ } catch {
428
+ console.log(
429
+ `Connection to ${virtualDocument.uri} timed out again after ${secondTimeoutMinutes} minutes, giving up`
430
+ );
431
+ pendingConnectDelegate.resolve(undefined);
432
+ return;
433
+ }
434
+ }
435
+ }
414
436
 
415
- this._connected.emit({ connection, virtualDocument });
437
+ this._connected.emit({ connection, virtualDocument });
438
+ pendingConnectDelegate.resolve(connection);
439
+ } catch (error) {
440
+ pendingConnectDelegate.reject(error);
441
+ }
442
+ })();
416
443
 
417
- return connection;
444
+ try {
445
+ return await pendingConnectionPromise;
446
+ } finally {
447
+ if (this._pendingConnections.get(uri) === pendingConnectionPromise) {
448
+ this._pendingConnections.delete(uri);
449
+ }
450
+ }
418
451
  }
419
452
 
420
453
  /**
@@ -541,6 +574,14 @@ export class DocumentConnectionManager implements ILSPDocumentConnectionManager
541
574
  * Set of ignored languages
542
575
  */
543
576
  private _ignoredLanguages: Set<string>;
577
+
578
+ /**
579
+ * Map of in-flight connect calls keyed by virtual document URI.
580
+ */
581
+ private _pendingConnections: Map<
582
+ VirtualDocument.uri,
583
+ Promise<ILSPConnection | undefined>
584
+ > = new Map();
544
585
  }
545
586
 
546
587
  export namespace DocumentConnectionManager {
package/src/tokens.ts CHANGED
@@ -22,12 +22,12 @@ import type { LanguageServer1 as LSPLanguageServerSettings } from './plugin';
22
22
  import type * as SCHEMA from './schema';
23
23
  import type { VirtualDocument } from './virtual/document';
24
24
  import type { ILspConnection, ILspOptions } from './ws-connection/types';
25
- import { IDocumentInfo } from './ws-connection/types';
25
+ import type { IDocumentInfo } from './ws-connection/types';
26
26
 
27
27
  import type * as rpc from 'vscode-jsonrpc';
28
28
  import type * as lsp from 'vscode-languageserver-protocol';
29
29
 
30
- export { IDocumentInfo };
30
+ export type { IDocumentInfo };
31
31
 
32
32
  /**
33
33
  * Example server keys==ids that are expected. The list is not exhaustive.