ionide / FsAutoComplete

F# language server using Language Server Protocol
Other
412 stars 154 forks source link

#1097 incoming call hierarchy #1164

Closed TheAngryByrd closed 11 months ago

TheAngryByrd commented 1 year ago

Definitely need a parsing/typed expert here.


WHAT

πŸ€– Generated by Copilot at c68553f

This pull request enhances the F# language server by adding the call hierarchy feature and by refactoring the file management logic. It modifies the AdaptiveFSharpLspServer type to keep track of both open and closed files and to use this information for various language features. It also updates the Common.fs file to enable the CallHierarchyProvider capability.

πŸ€– Generated by Copilot at c68553f

CallHierarchyProvider Enhances language server Autumn of refactor

πŸ“žβ™»οΈπŸ”Ž

WHY

HOW

πŸ€– Generated by Copilot at c68553f

TheAngryByrd commented 12 months ago

I confess that I have a hard time reasoning about the 'directions' (incoming/outgoing) and matching them to the FCS calls going on here.

Incoming is like walking the call tree back to its roots. (So a recursive fine all references essentially).

Outgoing is like walking the call tree to its leaves. (So a recursive find all functions called).

I might actually punt on the Outgoing for the moment because it isn’t really possible without the typed tree (as far as I can tell), As that disables partial type checking.

TheAngryByrd commented 12 months ago