Skip to content

Commit 2e83de0

Browse files
committed
fixed hover values keeping a dead session alive
1 parent b9f48d4 commit 2e83de0

1 file changed

Lines changed: 6 additions & 8 deletions

File tree

src/hover-values.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as vscode from 'vscode';
22
import type { NodeId } from '@eagleoutice/flowr/r-bridge/lang-4.x/ast/model/processing/node-id';
33
import { getFlowrSession } from './extension';
4-
import type { FlowrSession } from './flowr/utils';
54
import { makeSlicingCriteria } from './flowr/utils';
65
import { Bottom, Top } from '@eagleoutice/flowr/abstract-interpretation/domains/lattice';
76
import { isTop, stringifyValue } from '@eagleoutice/flowr/dataflow/eval/values/r-value';
@@ -38,7 +37,6 @@ class FlowrHoverProvider implements vscode.HoverProvider {
3837
private readonly updateEvent = new vscode.EventEmitter<void>();
3938
public onDidChangeInlayHints = this.updateEvent.event;
4039
private readonly cache = new Map<NodeId, ValueInfo[]>();
41-
private session: FlowrSession | undefined;
4240
private readonly refresher: ConfigurableRefresher;
4341

4442

@@ -52,8 +50,8 @@ class FlowrHoverProvider implements vscode.HoverProvider {
5250
adaptiveBreak: 20,
5351
interval: 500
5452
},
55-
refreshCallback: async() => {
56-
await this.update();
53+
refreshCallback: () => {
54+
this.update();
5755
},
5856
clearCallback: () => {
5957
this.cache.clear();
@@ -68,16 +66,16 @@ class FlowrHoverProvider implements vscode.HoverProvider {
6866
this.refresher.dispose();
6967
}
7068

71-
async update(): Promise<void> {
72-
this.session ??= await getFlowrSession();
69+
update() {
7370
this.output.appendLine('[Hover Values] Clearing hover value cache');
7471
this.cache.clear();
7572
this.updateEvent.fire();
7673
}
7774

7875

7976
async provideHover(document: vscode.TextDocument, pos: vscode.Position, _token: vscode.CancellationToken): Promise<vscode.Hover | undefined> {
80-
if(!this.session || !(getConfig().get<boolean>(Settings.ValuesOnHover))) {
77+
const session = await getFlowrSession();
78+
if(!session || !(getConfig().get<boolean>(Settings.ValuesOnHover))) {
8179
return undefined;
8280
}
8381

@@ -96,7 +94,7 @@ class FlowrHoverProvider implements vscode.HoverProvider {
9694
if(getConfig().get<boolean>(Settings.ValuesHoverDataFrames, true)) {
9795
query.push({ type: 'df-shape', criterion: criteria } as const);
9896
}
99-
const valQuer = await this.session.retrieveQuery(document, query);
97+
const valQuer = await session.retrieveQuery(document, query);
10098
const results = Object.values(valQuer.result['resolve-value'].results).flatMap(r => r.values);
10199
const values: ValueInfo[] = results.filter(v => !isTop(v)).map(r => {
102100
return {

0 commit comments

Comments
 (0)