Skip to content

Commit

Permalink
Improve VirtualDocument
Browse files Browse the repository at this point in the history
  • Loading branch information
trungleduc committed Oct 12, 2023
1 parent b9168b5 commit d42850b
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions packages/lsp/src/virtual/document.ts
Original file line number Diff line number Diff line change
Expand Up @@ -461,9 +461,6 @@ export class VirtualDocument implements IDisposable {
* Clear the virtual document and all related stuffs
*/
clear(): void {
this.unusedStandaloneDocuments.forEach(item =>
item.forEach(doc => doc.dispose())
);
this.unusedStandaloneDocuments.clear();

for (let document of this.foreignDocuments.values()) {
Expand Down Expand Up @@ -745,7 +742,7 @@ export class VirtualDocument implements IDisposable {
);
continue;
}
let foreignDocument = this.chooseForeignDocument(extractor);
let foreignDocument = this._chooseForeignDocument(extractor);
foreignDocumentsMap.set(result.range, {
virtualLine: foreignDocument.lastVirtualLine,
virtualDocument: foreignDocument,
Expand Down Expand Up @@ -800,8 +797,6 @@ export class VirtualDocument implements IDisposable {
* Close all foreign documents.
*/
closeAllForeignDocuments(): void {
console.log('closing');

for (let document of this.foreignDocuments.values()) {
this.closeForeign(document);
}
Expand Down Expand Up @@ -896,6 +891,16 @@ export class VirtualDocument implements IDisposable {
} as ISourcePosition;
}

/**
* Compute the position in root document from the position of
* a virtual document.
*/
transformVirtualToRoot(position: IVirtualPosition): IRootPosition | null {
let editor = this.virtualLines.get(position.line)!.editor;
let editorPosition = this.transformVirtualToEditor(position);
return this.root.transformFromEditorToRoot(editor, editorPosition!);
}

/**
* Get the corresponding editor of the virtual line.
*/
Expand Down Expand Up @@ -973,7 +978,7 @@ export class VirtualDocument implements IDisposable {
/**
* Get the foreign document that can be opened with the input extractor.
*/
private chooseForeignDocument(
private _chooseForeignDocument(
extractor: IForeignCodeExtractor
): VirtualDocument {
let foreignDocument: VirtualDocument;
Expand Down Expand Up @@ -1012,13 +1017,16 @@ export class VirtualDocument implements IDisposable {
standalone: boolean,
fileExtension: string
): VirtualDocument {
let document = new VirtualDocument({
let document = new (this.constructor as new (
...args: ConstructorParameters<typeof VirtualDocument>
) => VirtualDocument)({
...this.options,
parent: this,
standalone: standalone,
fileExtension: fileExtension,
language: language
});

const context: Document.IForeignContext = {
foreignDocument: document,
parentHost: this
Expand Down

0 comments on commit d42850b

Please sign in to comment.