F1 Help in VS taking to old version of F# library documentation
- Dominant language
- F#
- Stars
- 4.3k
- Forks
- 876
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 131
Description
We need to do an end-to-end sweep over what F1 Help is doing.
* [x] For .NET Library things like `System.String` we seem to go to the correct documentation
* [x] For F# keywords we sort of do the right thing, e.g. F1 on "open" goes to https://msdn.microsoft.com/query/dev16.query?appId=Dev16IDEF1&l=EN-US&k=k(open_FS);k(SolutionItemsProject);k(DevLang-FSharp)&rd=true which re-routes to the F# docs. See [why](https://github.com/dotnet/fsharp/issues/12253#issuecomment-954981858)
* [ ] For F# Library things (e.g. `Async`) F1 on open in VS2022 goes to https://msdn.microsoft.com/query/dev16.query?appId=Dev16IDEF1&l=EN-US&k=k(Microsoft.FSharp.Control.FSharpAsync`1);k(SolutionItemsProject);k(DevLang-FSharp)&rd=true which is the same as for keywords but with a different ID `Microsoft.FSharp.Control.FSharpAsync`1`. However the query service then resolves this to [very old documentation for Visual Studio 2013](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/ee370518(v=vs.120)?f1url=%3FappId%3DDev16IDEF1%26l%3DEN-US%26k%3Dk(Microsoft.FSharp.Control.FSharpAsync%601);k(SolutionItemsProject);k(DevLang-FSharp)%26rd%3Dtrue).
The fix appears to be to adjust the query service so that we do this:
Microsoft.FSharp.Control.FSharpAsync`1 --> https://fsharp.github.io/fsharp-core-docs/reference/fsharp-control-fsharpasync.html
and in general like this (putting aside some issues with the `` `1 `` and so on)
Microsoft.AAA.BBB.CCC --> https://fsharp.github.io/fsharp-core-docs/reference/aaa-bbb-ccc.html
If necesary fsdocs/FSharp.Formatting can be modified to generate additional redirecting target pages
Contributor guide
Assessment
This issue has not been assessed yet.