@@ -6,32 +6,37 @@ open Microsoft.CodeAnalysis
66open Microsoft.VisualStudio .FSharp .Editor
77open FSharp.Compiler .CodeAnalysis
88open FSharp.Compiler .Symbols
9+ open FSharp.Compiler .Text
910open Hints
1011
1112module HintService =
12- let private getHintsForSymbol parseResults hintKinds ( symbolUse : FSharpSymbolUse ) =
13+ let private getHintsForSymbol parseResults hintKinds ( longIdEndLocations : Position list ) ( symbolUse : FSharpSymbolUse ) =
1314 match symbolUse.Symbol with
1415 | :? FSharpMemberOrFunctionOrValue as symbol
1516 when hintKinds |> Set.contains HintKind.TypeHint
1617 && InlineTypeHints.isValidForHint parseResults symbol symbolUse ->
1718
18- InlineTypeHints.getHints symbol symbolUse
19+ InlineTypeHints.getHints symbol symbolUse,
20+ longIdEndLocations
1921
2022 | :? FSharpMemberOrFunctionOrValue as symbol
2123 when hintKinds |> Set.contains HintKind.ParameterNameHint
2224 && InlineParameterNameHints.isMemberOrFunctionOrValueValidForHint symbol symbolUse ->
2325
24- InlineParameterNameHints.getHintsForMemberOrFunctionOrValue parseResults symbol symbolUse
26+ InlineParameterNameHints.getHintsForMemberOrFunctionOrValue parseResults symbol symbolUse longIdEndLocations,
27+ symbolUse.Range.End :: longIdEndLocations
2528
2629 | :? FSharpUnionCase as symbol
2730 when hintKinds |> Set.contains HintKind.ParameterNameHint
2831 && InlineParameterNameHints.isUnionCaseValidForHint symbol symbolUse ->
2932
30- InlineParameterNameHints.getHintsForUnionCase parseResults symbol symbolUse
33+ InlineParameterNameHints.getHintsForUnionCase parseResults symbol symbolUse,
34+ longIdEndLocations
3135
3236 // we'll be adding other stuff gradually here
3337 | _ ->
34- []
38+ [],
39+ longIdEndLocations
3540
3641 let getHintsForDocument ( document : Document ) hintKinds userOpName cancellationToken =
3742 async {
@@ -44,6 +49,8 @@ module HintService =
4449
4550 return
4651 checkResults.GetAllUsesOfAllSymbolsInFile cancellationToken
52+ |> Seq.mapFold ( getHintsForSymbol parseResults hintKinds) []
53+ |> fst
54+ |> Seq.concat
4755 |> Seq.toList
48- |> List.collect ( getHintsForSymbol parseResults hintKinds)
4956 }
0 commit comments