I suggest you ...

Make go-to-definition and find-references work between F# and C# projects

This suggestion is migrated to Developer Community. Please use below link to view the current status.
https://developercommunity.visualstudio.com/content/idea/351087/make-go-to-definition-and-find-references-work-bet.html
In a solution containing a mixture of C# and F# projects, go-to-definition does not work when your starting point is, say, C# and the target function/value/type definition is in F#. (And vice versa.) The same is true for find-all-references.

This is a major inconvenience when working on this kind of mixed codebase. It would be great if it could work in both directions but even go-to-definition would be a great start.

324 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Kit Eason shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    5 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • Ken Smith commented  ·   ·  Flag as inappropriate

        Now that the F# tooling has started to improve, this is probably the main reason that I'm holding back on starting to mix F# into my existing projects. I'd love to play around with F# more, and see if it's really as helpful in a real-world projects as its advocates keep claiming. But I'm simply not going to rewrite everything in F#, and until C# and F# work together more-or-less seamlessly, I just can't give up the quality of the C# dev experience, whatever the values of F# might be as a language.

      • Philippe commented  ·   ·  Flag as inappropriate

        This is also a problem between C++/CLI and C#. What we really need is that whenever the target assembly is part of the projet that the appropriate source code (not metadata nor object browser) is displayed.

        It should not be that hard as the debugger is able to figure out which line to display when one debug an application built using multiple languages.

        I think that part of the problem is that presently each source language decide which target it support for that command. Obviously, it should be the target assembly language that should find the definition.

        By the way not only "Find reference" should works across language but also refactoring like renaming a property.

      • Kit Eason commented  ·   ·  Flag as inappropriate

        @Joerg. Interesting point. The main source of pain for myself and people I have discussed this with is F#/C#. But a more general solution would obviously be great for the zillions of VB.NET devs out there (and being more general might well be better engineered).

      Feedback and Knowledge Base