dotnet / dotnet/fsharp

F1 Help in VS taking to old version of F# library documentation

Open
#12,253 2 comments 0 reactions 0 assignees View on GitHub
AI-thinks-windows-only Area-LangService-Navigation Area-VS Bug Impact-Medium Theme-Simple-F#
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.