11import * as vscode from 'vscode' ;
22import type { NodeId } from '@eagleoutice/flowr/r-bridge/lang-4.x/ast/model/processing/node-id' ;
33import { getFlowrSession } from './extension' ;
4- import type { FlowrSession } from './flowr/utils' ;
54import { makeSlicingCriteria } from './flowr/utils' ;
65import { Bottom , Top } from '@eagleoutice/flowr/abstract-interpretation/domains/lattice' ;
76import { 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