diff --git a/TODO.md b/TODO.md index 7a068f5..0bf33e0 100644 --- a/TODO.md +++ b/TODO.md @@ -25,8 +25,10 @@ - Only re-analyze .fsx when # directives are changed - Analyze project.assets.json lazily - Only show progress bars once 1s has passed +- Try erasing source after cursor to speed up incremental re-compilation # Features - When build fails, create default options with incomplete context - Run-test code lens -- Source dep on C# project \ No newline at end of file +- Source dep on C# project +- Allow emitting obj/FscArgs.txt as a project-cracker backup \ No newline at end of file diff --git a/src/FSharpLanguageServer/Conversions.fs b/src/FSharpLanguageServer/Conversions.fs index f8ba809..0676808 100644 --- a/src/FSharpLanguageServer/Conversions.fs +++ b/src/FSharpLanguageServer/Conversions.fs @@ -69,7 +69,7 @@ let asHover(FSharpToolTipText tips): Hover = match t with | FSharpToolTipElement.CompositionError(e) -> dprintfn "Error rendering tooltip: %s" e | FSharpToolTipElement.None -> () - | FSharpToolTipElement.Group elements -> + | FSharpToolTipElement.Group(elements) -> yield! elements ] let contents = match elements with @@ -78,14 +78,22 @@ let asHover(FSharpToolTipText tips): Hover = [ yield HighlightedString(one.MainDescription, "fsharp") match TipFormatter.docComment(one.XmlDoc) with | None -> () - | Some(markdown) -> yield PlainString(markdown) ] + | Some(markdown) -> yield PlainString(markdown + "\n\n") + match one.Remarks with + | None | Some("") -> () + | Some(remarks) -> + yield PlainString("*" + remarks + "*\n\n") ] | many -> let last = List.last(many) [ for e in many do yield HighlightedString(e.MainDescription, "fsharp") match TipFormatter.docSummaryOnly(last.XmlDoc) with | None -> () - | Some(markdown) -> yield PlainString(markdown) ] + | Some(markdown) -> yield PlainString(markdown) + match last.Remarks with + | None | Some("") -> () + | Some(remarks) -> + yield PlainString("*" + remarks + "*\n\n") ] {contents=contents; range=None} /// Convert an F# `FSharpGlyph` to an LSP `CompletionItemKind`