A few months ago, we introduced a preview of F# hints – the type and parameter name hints. Since then, we’ve fine-tuned them, added return type hints, and incorporated tooltips for all of them.
Explore the entire experience here:
Code
type Song = {
Artist: string
Title: string
}
type Playlist(songs) =
member _.Add(artist, title) =
{ Artist = artist; Title = title } :: songs
member _.Shuffle() =
Algorithms.randomize songs
Overview
In this code, you can spot type hints, return type hints, and parameter name hints.
Note that all hints now feature tooltips:
Also, we refrain from displaying hints for certain obvious scenarios:
Enabling the Hints
These hints remain in preview and off by default.
You can configure each of them separately in options (Go to Tools -> Options -> Text Editor -> Advanced):
Looking Forward and Getting Involved
In the long run, we aim to implement a hotkey for toggling hints, make them less intrusive, and include signature hints. You can find the full roadmap in this issue, and all related tickets are available using this query. Many of them are good first issues, and we warmly welcome any contributions!
I’ve been trying the type hints and they are helpful, but they can get in the way and make things look too complicated. I think type hints would be more valuable if there was a keyboard combo to quickly turn them off and turn them back on.
Thanks.
Dang, I just read to the end of the article. Lol.
There is an issue that the editor counts hints into line length. Can this be fixed?
Hi, that’s interesting. I created a ticket for this and did some brief investigation. TLDR not clear if it’s a bug or a feature, we’ll look further.
Hotkey for toggling type hints sounds like a very good idea. I personally don’t like having them enabled all the time but I see the benefit to toggle them on for a short while every now and then.
thanks Petr! What about format F# code in Visual Studio? Is there any functions in Visual Studio like Ionide for F# for VSCode to format code??
Hi Jake.
For F#, there is a community project called Fantomas.
It can be triggered via a CLI global dotnet tool, integrated into CI pipelines and there is a Visual Studio plugin for controlling it as well: https://marketplace.visualstudio.com/items?itemName=asti.fantomas-vs22&ssr=false#overview
That is great news, thanks Petr!