@@ -149,12 +149,11 @@ type internal FsiValuePrinterMode =
149149 | PrintExpr
150150 | PrintDecl
151151
152- type EvaluationEventArgs ( name : string , displaycontext : FSharpDisplayContext , range : range , fsivalue : FsiValue ) =
152+ type EvaluationEventArgs ( name : string , fsivalue : FsiValue , symbolUse : FSharpSymbolUse ) =
153153 inherit EventArgs()
154154 member x.Name = name
155- member x.DisplayContext = displaycontext
156- member x.Range = range
157155 member x.FsiValue = fsivalue
156+ member x.SymbolUse = symbolUse
158157
159158[<AbstractClass>]
160159type public FsiEvaluationSessionHostConfig () =
@@ -226,8 +225,8 @@ type public FsiEvaluationSessionHostConfig () =
226225
227226 /// Hook for listening for evaluation bindings
228227 member x.OnEvaluation = evaluationEvent.Publish
229- member internal x.TriggerEvaluation ( name , context , range , value ) =
230- evaluationEvent.Trigger ( EvaluationEventArgs ( name, context , range , value ) )
228+ member internal x.TriggerEvaluation ( name , value , symbolUse ) =
229+ evaluationEvent.Trigger ( EvaluationEventArgs ( name, value , symbolUse ) )
231230
232231/// Used to print value signatures along with their values, according to the current
233232/// set of pretty printers installed in the system, and default printing rules.
@@ -1120,23 +1119,23 @@ type internal FsiDynamicCompiler
11201119
11211120 let filteredByVal =
11221121 allNames
1123- |> List.choose ( function
1122+ |> List.choose ( fun i ->
1123+ match i with
11241124 | Nameres.Item.Value vref -> Some ( vref, i)
11251125 | _ -> None)
11261126
11271127 let actualValues =
1128- filteredByVal|> List.choose ( fun ( vref , _ ) ->
1128+ filteredByVal |> List.choose ( fun ( vref , i ) ->
11291129 let optValue = newState.ilxGenerator.LookupGeneratedValue( valuePrinter.GetEvaluationContext( newState.emEnv), vref.Deref)
11301130 match optValue with
11311131 | Some ( res, typ) ->
1132- //let symbol = FSharpSymbol.Create(newState.tcGlobals, newState.tcState.Ccu, newState.tcImports, i)
1133- let displayEnv = newState.tcState.TcEnvFromImpls.DisplayEnv
1134- let displayContext = FSharpDisplayContext( fun _ -> displayEnv)
1135- Some( vref.DisplayName, displayContext, vref.Range, FsiValue( res, typ, FSharpType( tcGlobals, newState.tcState.Ccu, newState.tcImports, vref.Type)))
1132+ let symbol = FSharpSymbol.Create( newState.tcGlobals, newState.tcState.Ccu, newState.tcImports, i)
1133+ let symbolUse = FSharpSymbolUse( tcGlobals, newState.tcState.TcEnvFromImpls.DisplayEnv, symbol, ItemOccurence.Binding, vref.Range)
1134+ Some( vref.DisplayName, FsiValue( res, typ, FSharpType( tcGlobals, newState.tcState.Ccu, newState.tcImports, vref.Type)), symbolUse)
11361135 | None -> None )
11371136
1138- for ( name, displayContext , range , fsiValue ) in actualValues do
1139- fsiConfig.TriggerEvaluation ( name, displayContext , range , fsiValue )
1137+ for ( name, fsiValue , symbolUse ) in actualValues do
1138+ fsiConfig.TriggerEvaluation ( name, fsiValue , symbolUse )
11401139
11411140 newState
11421141
0 commit comments