ionide / ionide/FsAutoComplete

General better support for signature files in tooling

Open
#779 1 comment 1 reaction 0 assignees View on GitHub
enhancement help wanted
Dominant language
F#
Stars
486
Forks
169
Avg merge
2d 8h
Merged PRs (30d)
5

Description

Right now we have some gaps in our support for signature files:

* Tooltips don't always resolve the xml docs on signature declarations when inside the same project (#739)
* Go-To Definition/Declaration doesn't know how to find definitions in signature files
* Find References doesn't know how to cover signature files
* Project Tree/results views may not show signatures correctly/may want to logically group the signature and its implementation file

All of these have a common logical operation that we need to be able to do:

* for a 'find declaration' operation, we need to be able to say if we want to implementation or the declaration
* some use cases will always prefer declaration (tooltips/go to declaration), while some may prefer implementation, or even both ranges
* if the declaration is requested, but the given symbol range is in an implementation file,
* try to find the declaration in a signature file of the same name and proceed from there

The [Visual Studio integration](https://github.com/dotnet/fsharp/blob/main/vsintegration/src/FSharp.Editor/Navigation/GoToDefinition.fs) for concepts like go-to-def can serve as a good scaffolding for how we can tackle this.

The primary motivation for this work is an increased amount of tooling support for deriving performance benefits when signature files are present, which I think will naturally lead to an increased usage of them in the ecosystem.

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.