@jupyterlab/lsp 4.0.5 → 4.0.7

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.
@@ -151,8 +151,8 @@ export declare abstract class WidgetLSPAdapter<T extends IDocumentWidget> implem
151
151
  protected abstract createVirtualDocument(): VirtualDocument;
152
152
  /**
153
153
  * Get the index of editor from the cursor position in the virtual
154
- * document. Since there is only one editor, this method always return
155
- * 0
154
+ * document.
155
+ * @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
156
156
  *
157
157
  * @param position - the position of cursor in the virtual document.
158
158
  * @return - index of the virtual editor
package/lib/tokens.d.ts CHANGED
@@ -499,9 +499,11 @@ export declare namespace Method {
499
499
  }
500
500
  /** Client requests */
501
501
  enum ClientRequest {
502
+ CODE_ACTION = "textDocument/codeAction",
502
503
  COMPLETION = "textDocument/completion",
503
504
  COMPLETION_ITEM_RESOLVE = "completionItem/resolve",
504
505
  DEFINITION = "textDocument/definition",
506
+ DOCUMENT_COLOR = "textDocument/documentColor",
505
507
  DOCUMENT_HIGHLIGHT = "textDocument/documentHighlight",
506
508
  DOCUMENT_SYMBOL = "textDocument/documentSymbol",
507
509
  HOVER = "textDocument/hover",
@@ -510,7 +512,14 @@ export declare namespace Method {
510
512
  REFERENCES = "textDocument/references",
511
513
  RENAME = "textDocument/rename",
512
514
  SIGNATURE_HELP = "textDocument/signatureHelp",
513
- TYPE_DEFINITION = "textDocument/typeDefinition"
515
+ TYPE_DEFINITION = "textDocument/typeDefinition",
516
+ LINKED_EDITING_RANGE = "textDocument/linkedEditingRange",
517
+ INLINE_VALUE = "textDocument/inlineValue",
518
+ INLAY_HINT = "textDocument/inlayHint",
519
+ WORKSPACE_SYMBOL = "workspace/symbol",
520
+ WORKSPACE_SYMBOL_RESOLVE = "workspaceSymbol/resolve",
521
+ FORMATTING = "textDocument/formatting",
522
+ RANGE_FORMATTING = "textDocument/rangeFormatting"
514
523
  }
515
524
  }
516
525
  /**
@@ -556,9 +565,11 @@ export interface IServerResult {
556
565
  * Interface describing the request sent to the client.
557
566
  */
558
567
  export interface IClientRequestParams {
568
+ [Method.ClientRequest.CODE_ACTION]: lsp.CodeActionParams;
559
569
  [Method.ClientRequest.COMPLETION_ITEM_RESOLVE]: lsp.CompletionItem;
560
570
  [Method.ClientRequest.COMPLETION]: lsp.CompletionParams;
561
571
  [Method.ClientRequest.DEFINITION]: lsp.TextDocumentPositionParams;
572
+ [Method.ClientRequest.DOCUMENT_COLOR]: lsp.DocumentColorParams;
562
573
  [Method.ClientRequest.DOCUMENT_HIGHLIGHT]: lsp.TextDocumentPositionParams;
563
574
  [Method.ClientRequest.DOCUMENT_SYMBOL]: lsp.DocumentSymbolParams;
564
575
  [Method.ClientRequest.HOVER]: lsp.TextDocumentPositionParams;
@@ -568,14 +579,22 @@ export interface IClientRequestParams {
568
579
  [Method.ClientRequest.RENAME]: lsp.RenameParams;
569
580
  [Method.ClientRequest.SIGNATURE_HELP]: lsp.TextDocumentPositionParams;
570
581
  [Method.ClientRequest.TYPE_DEFINITION]: lsp.TextDocumentPositionParams;
582
+ [Method.ClientRequest.INLINE_VALUE]: lsp.InlineValueParams;
583
+ [Method.ClientRequest.INLAY_HINT]: lsp.InlayHintParams;
584
+ [Method.ClientRequest.WORKSPACE_SYMBOL]: lsp.WorkspaceSymbolParams;
585
+ [Method.ClientRequest.WORKSPACE_SYMBOL_RESOLVE]: lsp.WorkspaceSymbol;
586
+ [Method.ClientRequest.FORMATTING]: lsp.DocumentFormattingParams;
587
+ [Method.ClientRequest.RANGE_FORMATTING]: lsp.DocumentRangeFormattingParams;
571
588
  }
572
589
  /**
573
590
  * Interface describing the responses received from the client.
574
591
  */
575
592
  export interface IClientResult {
593
+ [Method.ClientRequest.CODE_ACTION]: (lsp.Command | lsp.CodeAction)[] | null;
576
594
  [Method.ClientRequest.COMPLETION_ITEM_RESOLVE]: lsp.CompletionItem;
577
595
  [Method.ClientRequest.COMPLETION]: AnyCompletion;
578
596
  [Method.ClientRequest.DEFINITION]: AnyLocation;
597
+ [Method.ClientRequest.DOCUMENT_COLOR]: lsp.ColorInformation[];
579
598
  [Method.ClientRequest.DOCUMENT_HIGHLIGHT]: lsp.DocumentHighlight[];
580
599
  [Method.ClientRequest.DOCUMENT_SYMBOL]: lsp.DocumentSymbol[];
581
600
  [Method.ClientRequest.HOVER]: lsp.Hover | null;
@@ -585,6 +604,12 @@ export interface IClientResult {
585
604
  [Method.ClientRequest.RENAME]: lsp.WorkspaceEdit;
586
605
  [Method.ClientRequest.SIGNATURE_HELP]: lsp.SignatureHelp;
587
606
  [Method.ClientRequest.TYPE_DEFINITION]: AnyLocation;
607
+ [Method.ClientRequest.INLINE_VALUE]: lsp.InlineValue[] | null;
608
+ [Method.ClientRequest.INLAY_HINT]: lsp.InlayHint[] | null;
609
+ [Method.ClientRequest.WORKSPACE_SYMBOL]: lsp.SymbolInformation[] | lsp.WorkspaceSymbol[] | null;
610
+ [Method.ClientRequest.WORKSPACE_SYMBOL_RESOLVE]: lsp.WorkspaceSymbol[];
611
+ [Method.ClientRequest.FORMATTING]: lsp.TextEdit[] | null;
612
+ [Method.ClientRequest.RANGE_FORMATTING]: lsp.TextEdit[] | null;
588
613
  }
589
614
  /**
590
615
  * Type of server notification handlers, it is a map between the server
package/lib/tokens.js CHANGED
@@ -69,9 +69,11 @@ export var Method;
69
69
  /** Client requests */
70
70
  let ClientRequest;
71
71
  (function (ClientRequest) {
72
+ ClientRequest["CODE_ACTION"] = "textDocument/codeAction";
72
73
  ClientRequest["COMPLETION"] = "textDocument/completion";
73
74
  ClientRequest["COMPLETION_ITEM_RESOLVE"] = "completionItem/resolve";
74
75
  ClientRequest["DEFINITION"] = "textDocument/definition";
76
+ ClientRequest["DOCUMENT_COLOR"] = "textDocument/documentColor";
75
77
  ClientRequest["DOCUMENT_HIGHLIGHT"] = "textDocument/documentHighlight";
76
78
  ClientRequest["DOCUMENT_SYMBOL"] = "textDocument/documentSymbol";
77
79
  ClientRequest["HOVER"] = "textDocument/hover";
@@ -81,6 +83,13 @@ export var Method;
81
83
  ClientRequest["RENAME"] = "textDocument/rename";
82
84
  ClientRequest["SIGNATURE_HELP"] = "textDocument/signatureHelp";
83
85
  ClientRequest["TYPE_DEFINITION"] = "textDocument/typeDefinition";
86
+ ClientRequest["LINKED_EDITING_RANGE"] = "textDocument/linkedEditingRange";
87
+ ClientRequest["INLINE_VALUE"] = "textDocument/inlineValue";
88
+ ClientRequest["INLAY_HINT"] = "textDocument/inlayHint";
89
+ ClientRequest["WORKSPACE_SYMBOL"] = "workspace/symbol";
90
+ ClientRequest["WORKSPACE_SYMBOL_RESOLVE"] = "workspaceSymbol/resolve";
91
+ ClientRequest["FORMATTING"] = "textDocument/formatting";
92
+ ClientRequest["RANGE_FORMATTING"] = "textDocument/rangeFormatting";
84
93
  })(ClientRequest = Method.ClientRequest || (Method.ClientRequest = {}));
85
94
  })(Method || (Method = {}));
86
95
  //# sourceMappingURL=tokens.js.map
package/lib/tokens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAoQ1C,MAAM,KAAW,sBAAsB,CA0CtC;AA1CD,WAAiB,sBAAsB;IACrC;;OAEG;IACU,6BAAM,GAAG,KAAK,CAAC;AAsC9B,CAAC,EA1CgB,sBAAsB,KAAtB,sBAAsB,QA0CtC;AAsPD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,IAAI,KAAK,CACP,+CAA+C,EAC/C,yEAAyE,CAC1E,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,KAAK,CACzC,oCAAoC,EACpC,2GAA2G,CAC5G,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,KAAK,CAChD,2CAA2C,EAC3C,sLAAsL,CACvL,CAAC;AAiBF;;;GAGG;AACH,MAAM,KAAW,MAAM,CA0CtB;AA1CD,WAAiB,MAAM;IACrB,2BAA2B;IAC3B,IAAY,kBAKX;IALD,WAAY,kBAAkB;QAC5B,6EAAuD,CAAA;QACvD,yDAAmC,CAAA;QACnC,8CAAwB,CAAA;QACxB,uDAAiC,CAAA;IACnC,CAAC,EALW,kBAAkB,GAAlB,yBAAkB,KAAlB,yBAAkB,QAK7B;IAED,2BAA2B;IAC3B,IAAY,kBAOX;IAPD,WAAY,kBAAkB;QAC5B,2DAAqC,CAAA;QACrC,mFAA6D,CAAA;QAC7D,uDAAiC,CAAA;QACjC,uDAAiC,CAAA;QACjC,iDAA2B,CAAA;QAC3B,8CAAwB,CAAA;IAC1B,CAAC,EAPW,kBAAkB,GAAlB,yBAAkB,KAAlB,yBAAkB,QAO7B;IAED,sBAAsB;IACtB,IAAY,aAKX;IALD,WAAY,aAAa;QACvB,kEAAiD,CAAA;QACjD,mEAAkD,CAAA;QAClD,sEAAqD,CAAA;QACrD,oEAAmD,CAAA;IACrD,CAAC,EALW,aAAa,GAAb,oBAAa,KAAb,oBAAa,QAKxB;IAED,sBAAsB;IACtB,IAAY,aAaX;IAbD,WAAY,aAAa;QACvB,uDAAsC,CAAA;QACtC,mEAAkD,CAAA;QAClD,uDAAsC,CAAA;QACtC,sEAAqD,CAAA;QACrD,gEAA+C,CAAA;QAC/C,6CAA4B,CAAA;QAC5B,+DAA8C,CAAA;QAC9C,0CAAyB,CAAA;QACzB,uDAAsC,CAAA;QACtC,+CAA8B,CAAA;QAC9B,8DAA6C,CAAA;QAC7C,gEAA+C,CAAA;IACjD,CAAC,EAbW,aAAa,GAAb,oBAAa,KAAb,oBAAa,QAaxB;AACH,CAAC,EA1CgB,MAAM,KAAN,MAAM,QA0CtB"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAoQ1C,MAAM,KAAW,sBAAsB,CA0CtC;AA1CD,WAAiB,sBAAsB;IACrC;;OAEG;IACU,6BAAM,GAAG,KAAK,CAAC;AAsC9B,CAAC,EA1CgB,sBAAsB,KAAtB,sBAAsB,QA0CtC;AAsPD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,IAAI,KAAK,CACP,+CAA+C,EAC/C,yEAAyE,CAC1E,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,KAAK,CACzC,oCAAoC,EACpC,2GAA2G,CAC5G,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,KAAK,CAChD,2CAA2C,EAC3C,sLAAsL,CACvL,CAAC;AAiBF;;;GAGG;AACH,MAAM,KAAW,MAAM,CAmDtB;AAnDD,WAAiB,MAAM;IACrB,2BAA2B;IAC3B,IAAY,kBAKX;IALD,WAAY,kBAAkB;QAC5B,6EAAuD,CAAA;QACvD,yDAAmC,CAAA;QACnC,8CAAwB,CAAA;QACxB,uDAAiC,CAAA;IACnC,CAAC,EALW,kBAAkB,GAAlB,yBAAkB,KAAlB,yBAAkB,QAK7B;IAED,2BAA2B;IAC3B,IAAY,kBAOX;IAPD,WAAY,kBAAkB;QAC5B,2DAAqC,CAAA;QACrC,mFAA6D,CAAA;QAC7D,uDAAiC,CAAA;QACjC,uDAAiC,CAAA;QACjC,iDAA2B,CAAA;QAC3B,8CAAwB,CAAA;IAC1B,CAAC,EAPW,kBAAkB,GAAlB,yBAAkB,KAAlB,yBAAkB,QAO7B;IAED,sBAAsB;IACtB,IAAY,aAKX;IALD,WAAY,aAAa;QACvB,kEAAiD,CAAA;QACjD,mEAAkD,CAAA;QAClD,sEAAqD,CAAA;QACrD,oEAAmD,CAAA;IACrD,CAAC,EALW,aAAa,GAAb,oBAAa,KAAb,oBAAa,QAKxB;IAED,sBAAsB;IACtB,IAAY,aAsBX;IAtBD,WAAY,aAAa;QACvB,wDAAuC,CAAA;QACvC,uDAAsC,CAAA;QACtC,mEAAkD,CAAA;QAClD,uDAAsC,CAAA;QACtC,8DAA6C,CAAA;QAC7C,sEAAqD,CAAA;QACrD,gEAA+C,CAAA;QAC/C,6CAA4B,CAAA;QAC5B,+DAA8C,CAAA;QAC9C,0CAAyB,CAAA;QACzB,uDAAsC,CAAA;QACtC,+CAA8B,CAAA;QAC9B,8DAA6C,CAAA;QAC7C,gEAA+C,CAAA;QAC/C,yEAAwD,CAAA;QACxD,0DAAyC,CAAA;QACzC,sDAAqC,CAAA;QACrC,sDAAqC,CAAA;QACrC,qEAAoD,CAAA;QACpD,uDAAsC,CAAA;QACtC,kEAAiD,CAAA;IACnD,CAAC,EAtBW,aAAa,GAAb,oBAAa,KAAb,oBAAa,QAsBxB;AACH,CAAC,EAnDgB,MAAM,KAAN,MAAM,QAmDtB"}
@@ -369,7 +369,7 @@ export declare class VirtualDocument implements IDisposable {
369
369
  maybeEmitChanged(): void;
370
370
  /**
371
371
  * When this counter goes down to 0, the document will be destroyed and the associated connection will be closed;
372
- * This is meant to reduce the number of open connections when a a foreign code snippet was removed from the document.
372
+ * This is meant to reduce the number of open connections when a foreign code snippet was removed from the document.
373
373
  *
374
374
  * Note: top level virtual documents are currently immortal (unless killed by other means); it might be worth
375
375
  * implementing culling of unused documents, but if and only if JupyterLab will also implement culling of
@@ -383,7 +383,6 @@ export declare class VirtualDocument implements IDisposable {
383
383
  protected virtualLines: Map<number, IVirtualLine>;
384
384
  protected sourceLines: Map<number, ISourceLine>;
385
385
  protected lineBlocks: Array<string>;
386
- protected unusedDocuments: Set<VirtualDocument>;
387
386
  protected unusedStandaloneDocuments: DefaultMap<language, Array<VirtualDocument>>;
388
387
  private _isDisposed;
389
388
  private _remainingLifetime;
@@ -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
@@ -239,7 +237,6 @@ class VirtualDocument {
239
237
  }
240
238
  // TODO - deep clear (assure that there is no memory leak)
241
239
  this.unusedStandaloneDocuments.clear();
242
- this.unusedDocuments = new Set();
243
240
  this.virtualLines.clear();
244
241
  this.sourceLines.clear();
245
242
  this.lastVirtualLine = 0;
@@ -495,10 +492,30 @@ class VirtualDocument {
495
492
  * Close all expired documents.
496
493
  */
497
494
  closeExpiredDocuments() {
498
- for (let document of this.unusedDocuments.values()) {
495
+ const usedDocuments = new Set();
496
+ for (const line of this.sourceLines.values()) {
497
+ for (const block of line.foreignDocumentsMap.values()) {
498
+ usedDocuments.add(block.virtualDocument);
499
+ }
500
+ }
501
+ const documentIDs = new Map();
502
+ for (const [id, document] of this.foreignDocuments.entries()) {
503
+ const ids = documentIDs.get(document);
504
+ if (typeof ids !== 'undefined') {
505
+ documentIDs.set(document, [...ids, id]);
506
+ }
507
+ documentIDs.set(document, [id]);
508
+ }
509
+ const allDocuments = new Set(documentIDs.keys());
510
+ const unusedVirtualDocuments = new Set([...allDocuments].filter(x => !usedDocuments.has(x)));
511
+ for (let document of unusedVirtualDocuments.values()) {
499
512
  document.remainingLifetime -= 1;
500
513
  if (document.remainingLifetime <= 0) {
501
514
  document.dispose();
515
+ const ids = documentIDs.get(document);
516
+ for (const id of ids) {
517
+ this.foreignDocuments.delete(id);
518
+ }
502
519
  }
503
520
  }
504
521
  }
@@ -581,7 +598,7 @@ class VirtualDocument {
581
598
  }
582
599
  /**
583
600
  * 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.
601
+ * This is meant to reduce the number of open connections when a foreign code snippet was removed from the document.
585
602
  *
586
603
  * Note: top level virtual documents are currently immortal (unless killed by other means); it might be worth
587
604
  * implementing culling of unused documents, but if and only if JupyterLab will also implement culling of
@@ -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.0.5",
3
+ "version": "4.0.7",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -44,12 +44,12 @@
44
44
  "vscode-languageserver-protocol": "^3.17.0"
45
45
  },
46
46
  "dependencies": {
47
- "@jupyterlab/apputils": "^4.1.5",
48
- "@jupyterlab/codeeditor": "^4.0.5",
49
- "@jupyterlab/coreutils": "^6.0.5",
50
- "@jupyterlab/docregistry": "^4.0.5",
51
- "@jupyterlab/services": "^7.0.5",
52
- "@jupyterlab/translation": "^4.0.5",
47
+ "@jupyterlab/apputils": "^4.1.7",
48
+ "@jupyterlab/codeeditor": "^4.0.7",
49
+ "@jupyterlab/coreutils": "^6.0.7",
50
+ "@jupyterlab/docregistry": "^4.0.7",
51
+ "@jupyterlab/services": "^7.0.7",
52
+ "@jupyterlab/translation": "^4.0.7",
53
53
  "@lumino/coreutils": "^2.1.2",
54
54
  "@lumino/disposable": "^2.1.2",
55
55
  "@lumino/signaling": "^2.1.2",
@@ -59,7 +59,7 @@
59
59
  "vscode-ws-jsonrpc": "~1.0.2"
60
60
  },
61
61
  "devDependencies": {
62
- "@jupyterlab/testing": "^4.0.5",
62
+ "@jupyterlab/testing": "^4.0.7",
63
63
  "@types/jest": "^29.2.0",
64
64
  "@types/lodash.mergewith": "^4.6.1",
65
65
  "jest": "^29.2.0",
@@ -339,8 +339,8 @@ export abstract class WidgetLSPAdapter<T extends IDocumentWidget>
339
339
 
340
340
  /**
341
341
  * 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
342
+ * document.
343
+ * @deprecated This is error-prone and will be removed in JupyterLab 5.0, use `getEditorIndex()` with `virtualDocument.getEditorAtVirtualLine(position)` instead.
344
344
  *
345
345
  * @param position - the position of cursor in the virtual document.
346
346
  * @return - index of the virtual editor
package/src/tokens.ts CHANGED
@@ -638,9 +638,11 @@ export namespace Method {
638
638
 
639
639
  /** Client requests */
640
640
  export enum ClientRequest {
641
+ CODE_ACTION = 'textDocument/codeAction',
641
642
  COMPLETION = 'textDocument/completion',
642
643
  COMPLETION_ITEM_RESOLVE = 'completionItem/resolve',
643
644
  DEFINITION = 'textDocument/definition',
645
+ DOCUMENT_COLOR = 'textDocument/documentColor',
644
646
  DOCUMENT_HIGHLIGHT = 'textDocument/documentHighlight',
645
647
  DOCUMENT_SYMBOL = 'textDocument/documentSymbol',
646
648
  HOVER = 'textDocument/hover',
@@ -649,7 +651,14 @@ export namespace Method {
649
651
  REFERENCES = 'textDocument/references',
650
652
  RENAME = 'textDocument/rename',
651
653
  SIGNATURE_HELP = 'textDocument/signatureHelp',
652
- TYPE_DEFINITION = 'textDocument/typeDefinition'
654
+ TYPE_DEFINITION = 'textDocument/typeDefinition',
655
+ LINKED_EDITING_RANGE = 'textDocument/linkedEditingRange',
656
+ INLINE_VALUE = 'textDocument/inlineValue',
657
+ INLAY_HINT = 'textDocument/inlayHint',
658
+ WORKSPACE_SYMBOL = 'workspace/symbol',
659
+ WORKSPACE_SYMBOL_RESOLVE = 'workspaceSymbol/resolve',
660
+ FORMATTING = 'textDocument/formatting',
661
+ RANGE_FORMATTING = 'textDocument/rangeFormatting'
653
662
  }
654
663
  }
655
664
 
@@ -700,9 +709,11 @@ export interface IServerResult {
700
709
  * Interface describing the request sent to the client.
701
710
  */
702
711
  export interface IClientRequestParams {
712
+ [Method.ClientRequest.CODE_ACTION]: lsp.CodeActionParams;
703
713
  [Method.ClientRequest.COMPLETION_ITEM_RESOLVE]: lsp.CompletionItem;
704
714
  [Method.ClientRequest.COMPLETION]: lsp.CompletionParams;
705
715
  [Method.ClientRequest.DEFINITION]: lsp.TextDocumentPositionParams;
716
+ [Method.ClientRequest.DOCUMENT_COLOR]: lsp.DocumentColorParams;
706
717
  [Method.ClientRequest.DOCUMENT_HIGHLIGHT]: lsp.TextDocumentPositionParams;
707
718
  [Method.ClientRequest.DOCUMENT_SYMBOL]: lsp.DocumentSymbolParams;
708
719
  [Method.ClientRequest.HOVER]: lsp.TextDocumentPositionParams;
@@ -712,15 +723,23 @@ export interface IClientRequestParams {
712
723
  [Method.ClientRequest.RENAME]: lsp.RenameParams;
713
724
  [Method.ClientRequest.SIGNATURE_HELP]: lsp.TextDocumentPositionParams;
714
725
  [Method.ClientRequest.TYPE_DEFINITION]: lsp.TextDocumentPositionParams;
726
+ [Method.ClientRequest.INLINE_VALUE]: lsp.InlineValueParams;
727
+ [Method.ClientRequest.INLAY_HINT]: lsp.InlayHintParams;
728
+ [Method.ClientRequest.WORKSPACE_SYMBOL]: lsp.WorkspaceSymbolParams;
729
+ [Method.ClientRequest.WORKSPACE_SYMBOL_RESOLVE]: lsp.WorkspaceSymbol;
730
+ [Method.ClientRequest.FORMATTING]: lsp.DocumentFormattingParams;
731
+ [Method.ClientRequest.RANGE_FORMATTING]: lsp.DocumentRangeFormattingParams;
715
732
  }
716
733
 
717
734
  /**
718
735
  * Interface describing the responses received from the client.
719
736
  */
720
737
  export interface IClientResult {
738
+ [Method.ClientRequest.CODE_ACTION]: (lsp.Command | lsp.CodeAction)[] | null;
721
739
  [Method.ClientRequest.COMPLETION_ITEM_RESOLVE]: lsp.CompletionItem;
722
740
  [Method.ClientRequest.COMPLETION]: AnyCompletion;
723
741
  [Method.ClientRequest.DEFINITION]: AnyLocation;
742
+ [Method.ClientRequest.DOCUMENT_COLOR]: lsp.ColorInformation[];
724
743
  [Method.ClientRequest.DOCUMENT_HIGHLIGHT]: lsp.DocumentHighlight[];
725
744
  [Method.ClientRequest.DOCUMENT_SYMBOL]: lsp.DocumentSymbol[];
726
745
  [Method.ClientRequest.HOVER]: lsp.Hover | null;
@@ -730,6 +749,15 @@ export interface IClientResult {
730
749
  [Method.ClientRequest.RENAME]: lsp.WorkspaceEdit;
731
750
  [Method.ClientRequest.SIGNATURE_HELP]: lsp.SignatureHelp;
732
751
  [Method.ClientRequest.TYPE_DEFINITION]: AnyLocation;
752
+ [Method.ClientRequest.INLINE_VALUE]: lsp.InlineValue[] | null;
753
+ [Method.ClientRequest.INLAY_HINT]: lsp.InlayHint[] | null;
754
+ [Method.ClientRequest.WORKSPACE_SYMBOL]:
755
+ | lsp.SymbolInformation[]
756
+ | lsp.WorkspaceSymbol[]
757
+ | null;
758
+ [Method.ClientRequest.WORKSPACE_SYMBOL_RESOLVE]: lsp.WorkspaceSymbol[];
759
+ [Method.ClientRequest.FORMATTING]: lsp.TextEdit[] | null;
760
+ [Method.ClientRequest.RANGE_FORMATTING]: lsp.TextEdit[] | null;
733
761
  }
734
762
 
735
763
  /**
@@ -241,7 +241,6 @@ export class VirtualDocument implements IDisposable {
241
241
  );
242
242
  this._remainingLifetime = 6;
243
243
 
244
- this.unusedDocuments = new Set();
245
244
  this.documentInfo = new VirtualDocumentInfo(this);
246
245
  this.updateManager = new UpdateManager(this);
247
246
  this.updateManager.updateBegan.connect(this._updateBeganSlot, this);
@@ -446,7 +445,6 @@ export class VirtualDocument implements IDisposable {
446
445
 
447
446
  this.foreignDocuments.clear();
448
447
  this.sourceLines.clear();
449
- this.unusedDocuments.clear();
450
448
  this.unusedStandaloneDocuments.clear();
451
449
  this.virtualLines.clear();
452
450
 
@@ -470,7 +468,6 @@ export class VirtualDocument implements IDisposable {
470
468
  // TODO - deep clear (assure that there is no memory leak)
471
469
  this.unusedStandaloneDocuments.clear();
472
470
 
473
- this.unusedDocuments = new Set();
474
471
  this.virtualLines.clear();
475
472
  this.sourceLines.clear();
476
473
  this.lastVirtualLine = 0;
@@ -806,10 +803,34 @@ export class VirtualDocument implements IDisposable {
806
803
  * Close all expired documents.
807
804
  */
808
805
  closeExpiredDocuments(): void {
809
- for (let document of this.unusedDocuments.values()) {
806
+ const usedDocuments = new Set<VirtualDocument>();
807
+ for (const line of this.sourceLines.values()) {
808
+ for (const block of line.foreignDocumentsMap.values()) {
809
+ usedDocuments.add(block.virtualDocument);
810
+ }
811
+ }
812
+
813
+ const documentIDs = new Map<VirtualDocument, string[]>();
814
+ for (const [id, document] of this.foreignDocuments.entries()) {
815
+ const ids = documentIDs.get(document);
816
+ if (typeof ids !== 'undefined') {
817
+ documentIDs.set(document, [...ids, id]);
818
+ }
819
+ documentIDs.set(document, [id]);
820
+ }
821
+ const allDocuments = new Set<VirtualDocument>(documentIDs.keys());
822
+ const unusedVirtualDocuments = new Set(
823
+ [...allDocuments].filter(x => !usedDocuments.has(x))
824
+ );
825
+
826
+ for (let document of unusedVirtualDocuments.values()) {
810
827
  document.remainingLifetime -= 1;
811
828
  if (document.remainingLifetime <= 0) {
812
829
  document.dispose();
830
+ const ids = documentIDs.get(document)!;
831
+ for (const id of ids) {
832
+ this.foreignDocuments.delete(id);
833
+ }
813
834
  }
814
835
  }
815
836
  }
@@ -901,7 +922,7 @@ export class VirtualDocument implements IDisposable {
901
922
 
902
923
  /**
903
924
  * When this counter goes down to 0, the document will be destroyed and the associated connection will be closed;
904
- * This is meant to reduce the number of open connections when a a foreign code snippet was removed from the document.
925
+ * This is meant to reduce the number of open connections when a foreign code snippet was removed from the document.
905
926
  *
906
927
  * Note: top level virtual documents are currently immortal (unless killed by other means); it might be worth
907
928
  * implementing culling of unused documents, but if and only if JupyterLab will also implement culling of
@@ -927,7 +948,6 @@ export class VirtualDocument implements IDisposable {
927
948
  protected sourceLines: Map<number, ISourceLine>;
928
949
  protected lineBlocks: Array<string>;
929
950
 
930
- protected unusedDocuments: Set<VirtualDocument>;
931
951
  protected unusedStandaloneDocuments: DefaultMap<
932
952
  language,
933
953
  Array<VirtualDocument>