@jupyterlab/lsp 4.1.0-alpha.1 → 4.1.0-alpha.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.
Files changed (42) hide show
  1. package/lib/adapters/adapter.d.ts +20 -3
  2. package/lib/adapters/adapter.js +55 -2
  3. package/lib/adapters/adapter.js.map +1 -1
  4. package/lib/adapters/editorAdapter.d.ts +74 -0
  5. package/lib/adapters/editorAdapter.js +53 -0
  6. package/lib/adapters/editorAdapter.js.map +1 -0
  7. package/lib/adapters/index.d.ts +3 -0
  8. package/lib/adapters/index.js +6 -0
  9. package/lib/adapters/index.js.map +1 -0
  10. package/lib/adapters/tracker.d.ts +106 -0
  11. package/lib/adapters/tracker.js +175 -0
  12. package/lib/adapters/tracker.js.map +1 -0
  13. package/lib/connection_manager.d.ts +11 -5
  14. package/lib/connection_manager.js +10 -0
  15. package/lib/connection_manager.js.map +1 -1
  16. package/lib/feature.d.ts +7 -2
  17. package/lib/feature.js +17 -4
  18. package/lib/feature.js.map +1 -1
  19. package/lib/index.d.ts +1 -1
  20. package/lib/index.js +1 -1
  21. package/lib/index.js.map +1 -1
  22. package/lib/lsp.d.ts +1 -0
  23. package/lib/lsp.js.map +1 -1
  24. package/lib/tokens.d.ts +132 -10
  25. package/lib/tokens.js +17 -0
  26. package/lib/tokens.js.map +1 -1
  27. package/lib/virtual/document.d.ts +7 -3
  28. package/lib/virtual/document.js +51 -13
  29. package/lib/virtual/document.js.map +1 -1
  30. package/package.json +12 -10
  31. package/src/adapters/adapter.ts +87 -6
  32. package/src/adapters/editorAdapter.ts +131 -0
  33. package/src/adapters/index.ts +6 -0
  34. package/src/adapters/tracker.ts +222 -0
  35. package/src/connection_manager.ts +23 -7
  36. package/src/feature.ts +20 -5
  37. package/src/index.ts +1 -1
  38. package/src/lsp.ts +2 -0
  39. package/src/tokens.ts +155 -13
  40. package/src/virtual/document.ts +62 -16
  41. package/style/index.css +2 -0
  42. package/style/index.js +2 -0
@@ -85,7 +85,7 @@ export class VirtualDocumentInfo {
85
85
  * No dependency on editor implementation (such as CodeMirrorEditor)
86
86
  * is allowed for VirtualEditor.
87
87
  */
88
- class VirtualDocument {
88
+ export class VirtualDocument {
89
89
  constructor(options) {
90
90
  /**
91
91
  * Number of blank lines appended to the virtual document between
@@ -112,7 +112,6 @@ class VirtualDocument {
112
112
  VirtualDocument.instancesCount += 1;
113
113
  this.unusedStandaloneDocuments = new DefaultMap(() => new Array());
114
114
  this._remainingLifetime = 6;
115
- this.unusedDocuments = new Set();
116
115
  this.documentInfo = new VirtualDocumentInfo(this);
117
116
  this.updateManager = new UpdateManager(this);
118
117
  this.updateManager.updateBegan.connect(this._updateBeganSlot, this);
@@ -221,7 +220,6 @@ class VirtualDocument {
221
220
  // clear all the maps
222
221
  this.foreignDocuments.clear();
223
222
  this.sourceLines.clear();
224
- this.unusedDocuments.clear();
225
223
  this.unusedStandaloneDocuments.clear();
226
224
  this.virtualLines.clear();
227
225
  // just to be sure - if anything is accessed after disposal (it should not) we
@@ -234,12 +232,14 @@ class VirtualDocument {
234
232
  * Clear the virtual document and all related stuffs
235
233
  */
236
234
  clear() {
235
+ this.unusedStandaloneDocuments.clear();
237
236
  for (let document of this.foreignDocuments.values()) {
238
237
  document.clear();
238
+ if (document.standalone) {
239
+ let set = this.unusedStandaloneDocuments.get(document.language);
240
+ set.push(document);
241
+ }
239
242
  }
240
- // TODO - deep clear (assure that there is no memory leak)
241
- this.unusedStandaloneDocuments.clear();
242
- this.unusedDocuments = new Set();
243
243
  this.virtualLines.clear();
244
244
  this.sourceLines.clear();
245
245
  this.lastVirtualLine = 0;
@@ -441,7 +441,7 @@ class VirtualDocument {
441
441
  console.log('Failure in foreign code extraction: `range` is null but `foreign_code` is not!');
442
442
  continue;
443
443
  }
444
- let foreignDocument = this.chooseForeignDocument(extractor);
444
+ let foreignDocument = this._chooseForeignDocument(extractor);
445
445
  foreignDocumentsMap.set(result.range, {
446
446
  virtualLine: foreignDocument.lastVirtualLine,
447
447
  virtualDocument: foreignDocument,
@@ -495,10 +495,30 @@ class VirtualDocument {
495
495
  * Close all expired documents.
496
496
  */
497
497
  closeExpiredDocuments() {
498
- for (let document of this.unusedDocuments.values()) {
498
+ const usedDocuments = new Set();
499
+ for (const line of this.sourceLines.values()) {
500
+ for (const block of line.foreignDocumentsMap.values()) {
501
+ usedDocuments.add(block.virtualDocument);
502
+ }
503
+ }
504
+ const documentIDs = new Map();
505
+ for (const [id, document] of this.foreignDocuments.entries()) {
506
+ const ids = documentIDs.get(document);
507
+ if (typeof ids !== 'undefined') {
508
+ documentIDs.set(document, [...ids, id]);
509
+ }
510
+ documentIDs.set(document, [id]);
511
+ }
512
+ const allDocuments = new Set(documentIDs.keys());
513
+ const unusedVirtualDocuments = new Set([...allDocuments].filter(x => !usedDocuments.has(x)));
514
+ for (let document of unusedVirtualDocuments.values()) {
499
515
  document.remainingLifetime -= 1;
500
516
  if (document.remainingLifetime <= 0) {
501
517
  document.dispose();
518
+ const ids = documentIDs.get(document);
519
+ for (const id of ids) {
520
+ this.foreignDocuments.delete(id);
521
+ }
502
522
  }
503
523
  }
504
524
  }
@@ -550,6 +570,19 @@ class VirtualDocument {
550
570
  line: line
551
571
  };
552
572
  }
573
+ /**
574
+ * Compute the position in root document from the position of
575
+ * a virtual document.
576
+ */
577
+ transformVirtualToRoot(position) {
578
+ var _a;
579
+ const editor = (_a = this.virtualLines.get(position.line)) === null || _a === void 0 ? void 0 : _a.editor;
580
+ const editorPosition = this.transformVirtualToEditor(position);
581
+ if (!editor || !editorPosition) {
582
+ return null;
583
+ }
584
+ return this.root.transformFromEditorToRoot(editor, editorPosition);
585
+ }
553
586
  /**
554
587
  * Get the corresponding editor of the virtual line.
555
588
  */
@@ -581,7 +614,7 @@ class VirtualDocument {
581
614
  }
582
615
  /**
583
616
  * When this counter goes down to 0, the document will be destroyed and the associated connection will be closed;
584
- * This is meant to reduce the number of open connections when a a foreign code snippet was removed from the document.
617
+ * This is meant to reduce the number of open connections when a foreign code snippet was removed from the document.
585
618
  *
586
619
  * Note: top level virtual documents are currently immortal (unless killed by other means); it might be worth
587
620
  * implementing culling of unused documents, but if and only if JupyterLab will also implement culling of
@@ -601,7 +634,7 @@ class VirtualDocument {
601
634
  /**
602
635
  * Get the foreign document that can be opened with the input extractor.
603
636
  */
604
- chooseForeignDocument(extractor) {
637
+ _chooseForeignDocument(extractor) {
605
638
  let foreignDocument;
606
639
  // if not standalone, try to append to existing document
607
640
  let foreignExists = this.foreignDocuments.has(extractor.language);
@@ -611,7 +644,13 @@ class VirtualDocument {
611
644
  else {
612
645
  // if (previous document does not exists) or (extractor produces standalone documents
613
646
  // and no old standalone document could be reused): create a new document
614
- foreignDocument = this.openForeign(extractor.language, extractor.standalone, extractor.fileExtension);
647
+ let unusedStandalone = this.unusedStandaloneDocuments.get(extractor.language);
648
+ if (extractor.standalone && unusedStandalone.length > 0) {
649
+ foreignDocument = unusedStandalone.pop();
650
+ }
651
+ else {
652
+ foreignDocument = this.openForeign(extractor.language, extractor.standalone, extractor.fileExtension);
653
+ }
615
654
  }
616
655
  return foreignDocument;
617
656
  }
@@ -623,7 +662,7 @@ class VirtualDocument {
623
662
  * @param fileExtension - File extension.
624
663
  */
625
664
  openForeign(language, standalone, fileExtension) {
626
- let document = new VirtualDocument({
665
+ let document = new this.constructor({
627
666
  ...this.options,
628
667
  parent: this,
629
668
  standalone: standalone,
@@ -675,7 +714,6 @@ class VirtualDocument {
675
714
  }
676
715
  }
677
716
  VirtualDocument.instancesCount = 0;
678
- export { VirtualDocument };
679
717
  /**
680
718
  * Create foreign documents if available from input virtual documents.
681
719
  * @param virtualDocument - the virtual document to be collected
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/virtual/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/virtual/document.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/lsp",
3
- "version": "4.1.0-alpha.1",
3
+ "version": "4.1.0-alpha.3",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,28 +41,30 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/apputils": "^4.2.0-alpha.1",
45
- "@jupyterlab/codeeditor": "^4.1.0-alpha.1",
46
- "@jupyterlab/coreutils": "^6.1.0-alpha.1",
47
- "@jupyterlab/docregistry": "^4.1.0-alpha.1",
48
- "@jupyterlab/services": "^7.1.0-alpha.1",
49
- "@jupyterlab/translation": "^4.1.0-alpha.1",
44
+ "@jupyterlab/apputils": "^4.2.0-alpha.3",
45
+ "@jupyterlab/codeeditor": "^4.1.0-alpha.3",
46
+ "@jupyterlab/codemirror": "^4.1.0-alpha.3",
47
+ "@jupyterlab/coreutils": "^6.1.0-alpha.3",
48
+ "@jupyterlab/docregistry": "^4.1.0-alpha.3",
49
+ "@jupyterlab/services": "^7.1.0-alpha.3",
50
+ "@jupyterlab/translation": "^4.1.0-alpha.3",
50
51
  "@lumino/coreutils": "^2.1.2",
51
52
  "@lumino/disposable": "^2.1.2",
52
53
  "@lumino/signaling": "^2.1.2",
54
+ "@lumino/widgets": "^2.3.1-alpha.0",
53
55
  "lodash.mergewith": "^4.6.1",
54
56
  "vscode-jsonrpc": "^6.0.0",
55
57
  "vscode-languageserver-protocol": "^3.17.0",
56
58
  "vscode-ws-jsonrpc": "~1.0.2"
57
59
  },
58
60
  "devDependencies": {
59
- "@jupyterlab/testing": "^4.1.0-alpha.1",
61
+ "@jupyterlab/testing": "^4.1.0-alpha.3",
60
62
  "@types/jest": "^29.2.0",
61
63
  "@types/lodash.mergewith": "^4.6.1",
62
64
  "jest": "^29.2.0",
63
65
  "json-schema-to-typescript": "^8.0.0",
64
- "rimraf": "~3.0.0",
65
- "typescript": "~5.0.4"
66
+ "rimraf": "~5.0.5",
67
+ "typescript": "~5.1.6"
66
68
  },
67
69
  "publishConfig": {
68
70
  "access": "public"
@@ -25,6 +25,7 @@ import {
25
25
  ISocketConnectionOptions
26
26
  } from '../tokens';
27
27
  import { VirtualDocument } from '../virtual/document';
28
+ import { EditorAdapter } from './editorAdapter';
28
29
 
29
30
  type IButton = Dialog.IButton;
30
31
  const createButton = Dialog.createButton;
@@ -74,8 +75,9 @@ export interface IAdapterOptions {
74
75
  * as this would make the logic of inspections caching impossible to maintain, thus the WidgetAdapter
75
76
  * has to handle that, keeping multiple connections and multiple virtual documents.
76
77
  */
77
- export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
78
- implements IDisposable
78
+ export abstract class WidgetLSPAdapter<
79
+ T extends IDocumentWidget = IDocumentWidget
80
+ > implements IDisposable
79
81
  {
80
82
  // note: it could be using namespace/IOptions pattern,
81
83
  // but I do not know how to make it work with the generic type T
@@ -91,6 +93,18 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
91
93
  this.widget.context.saveState.connect(this.onSaveState, this);
92
94
  this.connectionManager.closed.connect(this.onConnectionClosed, this);
93
95
  this.widget.disposed.connect(this.dispose, this);
96
+
97
+ this._editorToAdapter = new WeakMap();
98
+ this.editorAdded.connect(this._onEditorAdded, this);
99
+ this.editorRemoved.connect(this._onEditorRemoved, this);
100
+ this._connectionManager.languageServerManager.sessionsChanged.connect(
101
+ this._onLspSessionOrFeatureChanged,
102
+ this
103
+ );
104
+ this.options.featureManager.featureRegistered.connect(
105
+ this._onLspSessionOrFeatureChanged,
106
+ this
107
+ );
94
108
  }
95
109
 
96
110
  /**
@@ -263,6 +277,16 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
263
277
  if (this._isDisposed) {
264
278
  return;
265
279
  }
280
+ this.editorAdded.disconnect(this._onEditorAdded, this);
281
+ this.editorRemoved.disconnect(this._onEditorRemoved, this);
282
+ this._connectionManager.languageServerManager.sessionsChanged.disconnect(
283
+ this._onLspSessionOrFeatureChanged,
284
+ this
285
+ );
286
+ this.options.featureManager.featureRegistered.disconnect(
287
+ this._onLspSessionOrFeatureChanged,
288
+ this
289
+ );
266
290
  this._isDisposed = true;
267
291
  this.disconnect();
268
292
  this._virtualDocument = null;
@@ -339,8 +363,8 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
339
363
 
340
364
  /**
341
365
  * Get the index of editor from the cursor position in the virtual
342
- * document. Since there is only one editor, this method always return
343
- * 0
366
+ * document.
367
+ * @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
344
368
  *
345
369
  * @param position - the position of cursor in the virtual document.
346
370
  * @return - index of the virtual editor
@@ -523,10 +547,9 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
523
547
  * Create the virtual document using current path and language.
524
548
  */
525
549
  protected initVirtual(): void {
526
- const { model } = this.widget.context;
527
550
  this._virtualDocument?.dispose();
528
551
  this._virtualDocument = this.createVirtualDocument();
529
- model.contentChanged.connect(this._onContentChanged, this);
552
+ this._onLspSessionOrFeatureChanged();
530
553
  }
531
554
 
532
555
  /**
@@ -592,6 +615,30 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
592
615
  private _isConnected: boolean;
593
616
  private _updateFinished: Promise<void>;
594
617
  private _virtualDocument: VirtualDocument | null = null;
618
+ private _editorToAdapter: WeakMap<Document.IEditor, EditorAdapter>;
619
+
620
+ private _onEditorAdded(
621
+ sender: WidgetLSPAdapter<T>,
622
+ change: IEditorChangedData
623
+ ): void {
624
+ const { editor } = change;
625
+ const editorAdapter = new EditorAdapter({
626
+ editor: editor,
627
+ widgetAdapter: this,
628
+ extensions: this.options.featureManager.extensionFactories()
629
+ });
630
+ this._editorToAdapter.set(editor, editorAdapter);
631
+ }
632
+
633
+ private _onEditorRemoved(
634
+ sender: WidgetLSPAdapter<T>,
635
+ change: IEditorChangedData
636
+ ): void {
637
+ const { editor } = change;
638
+ const adapter = this._editorToAdapter.get(editor);
639
+ adapter?.dispose();
640
+ this._editorToAdapter.delete(editor);
641
+ }
595
642
 
596
643
  /**
597
644
  * Callback called when a foreign document is closed,
@@ -686,4 +733,38 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
686
733
  this._updateFinished = promise.catch(console.warn);
687
734
  await this.updateFinished;
688
735
  }
736
+
737
+ /**
738
+ * Check if the virtual document should be updated on content
739
+ * changed signal. Returns `true` if two following conditions are
740
+ * are satisfied:
741
+ * - The LSP feature is enabled.
742
+ * - The LSP features list is not empty.
743
+ */
744
+ private _shouldUpdateVirtualDocument(): boolean {
745
+ const { languageServerManager } = this.connectionManager;
746
+ return (
747
+ languageServerManager.isEnabled &&
748
+ this.options.featureManager.features.length > 0
749
+ );
750
+ }
751
+
752
+ /**
753
+ * Connect the virtual document update handler with the content
754
+ * updated signal.This method is invoked at startup and when
755
+ * the LSP server status changed or when a LSP feature is registered.
756
+ */
757
+ private _onLspSessionOrFeatureChanged(): void {
758
+ if (!this._virtualDocument) {
759
+ return;
760
+ }
761
+
762
+ const { model } = this.widget.context;
763
+
764
+ if (this._shouldUpdateVirtualDocument()) {
765
+ model.contentChanged.connect(this._onContentChanged, this);
766
+ } else {
767
+ model.contentChanged.disconnect(this._onContentChanged, this);
768
+ }
769
+ }
689
770
  }
@@ -0,0 +1,131 @@
1
+ // Copyright (c) Jupyter Development Team.
2
+ // Distributed under the terms of the Modified BSD License.
3
+
4
+ import {
5
+ IConfigurableExtension,
6
+ IEditorExtensionFactory
7
+ } from '@jupyterlab/codemirror';
8
+
9
+ import { IDisposable } from '@lumino/disposable';
10
+
11
+ import { Signal } from '@lumino/signaling';
12
+
13
+ import { WidgetLSPAdapter } from './adapter';
14
+ import { Document } from '../tokens';
15
+
16
+ /**
17
+ * The CodeEditor.IEditor adapter.
18
+ */
19
+ export class EditorAdapter implements IDisposable {
20
+ /**
21
+ * Instantiate a new EditorAdapter.
22
+ *
23
+ * @param options The instantiation options for a EditorAdapter.
24
+ */
25
+ constructor(options: EditorAdapter.IOptions) {
26
+ this._widgetAdapter = options.widgetAdapter;
27
+ this._extensions = options.extensions;
28
+
29
+ void options.editor.ready().then(editor => {
30
+ this._injectExtensions(options.editor);
31
+ });
32
+ }
33
+
34
+ /**
35
+ * Whether the handler is disposed.
36
+ */
37
+ isDisposed: boolean;
38
+
39
+ /**
40
+ * Dispose the handler.
41
+ */
42
+ dispose(): void {
43
+ if (this.isDisposed) {
44
+ return;
45
+ }
46
+ this.isDisposed = true;
47
+ Signal.clearData(this);
48
+ }
49
+
50
+ /**
51
+ * Setup the editor.
52
+ */
53
+ private _injectExtensions(editor: Document.IEditor): void {
54
+ const codeEditor = editor.getEditor()!;
55
+ if (codeEditor.isDisposed) {
56
+ return;
57
+ }
58
+
59
+ this._extensions.forEach(factory => {
60
+ const ext = factory.factory({
61
+ path: this._widgetAdapter.widget.context.path,
62
+ editor: editor,
63
+ widgetAdapter: this._widgetAdapter,
64
+ model: codeEditor.model,
65
+ inline: true
66
+ });
67
+
68
+ if (!ext) {
69
+ return;
70
+ }
71
+
72
+ codeEditor.injectExtension(ext.instance(codeEditor));
73
+ });
74
+ }
75
+
76
+ private _widgetAdapter: WidgetLSPAdapter<any>;
77
+ private _extensions: EditorAdapter.ILSPEditorExtensionFactory[];
78
+ }
79
+
80
+ /**
81
+ * A namespace for EditorAdapter `statics`.
82
+ */
83
+ export namespace EditorAdapter {
84
+ /**
85
+ * Instantiation options for `EditorAdapter`.
86
+ */
87
+ export interface IOptions {
88
+ /**
89
+ * Editor wrapper enabling revealing the editor when detached (out of view).
90
+ */
91
+ editor: Document.IEditor;
92
+
93
+ /**
94
+ * The widget lsp adapter.
95
+ */
96
+ widgetAdapter: WidgetLSPAdapter;
97
+
98
+ /**
99
+ * The list of CodeMirror extension factories
100
+ */
101
+ extensions: ILSPEditorExtensionFactory[];
102
+ }
103
+
104
+ export interface ILSPEditorExtensionFactory
105
+ extends Omit<IEditorExtensionFactory<any>, 'factory'> {
106
+ /**
107
+ * Extension factory.
108
+ *
109
+ * @param options
110
+ * @returns The extension builder or null if the extension is not active for that document
111
+ */
112
+ readonly factory: (
113
+ options: IFactoryOptions
114
+ ) => IConfigurableExtension<any> | null;
115
+ }
116
+
117
+ export interface IFactoryOptions extends IEditorExtensionFactory.IOptions {
118
+ /**
119
+ * A path to a source file.
120
+ */
121
+ path: string;
122
+ /**
123
+ * The code editor.
124
+ */
125
+ editor: Document.IEditor;
126
+ /**
127
+ * The widget lsp adapter.
128
+ */
129
+ widgetAdapter: WidgetLSPAdapter<any>;
130
+ }
131
+ }
@@ -0,0 +1,6 @@
1
+ // Copyright (c) Jupyter Development Team.
2
+ // Distributed under the terms of the Modified BSD License.
3
+
4
+ export * from './adapter';
5
+ export * from './editorAdapter';
6
+ export * from './tracker';