-
Notifications
You must be signed in to change notification settings - Fork 802
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What does Visual F# IDE Tools using Roslyn Workspaces mean for the future Visual F# Powertools and Ionide #925
Comments
Yes (unless they join forces)
Not that I can think of. Cross language
I'm no longer involved with Omnisharp stuff so can't speak for the others
The last I knew, different features could be implemented for different languages. Paging @david-driscoll for clarification. |
@cloudRoutine, it is very early to answer these questions, we don't have a firm design, we do however, understand how the integration with Roslyn will look, because that was the purpose of the prototype. Obviously the Roslyn Team are in fact our team mates therefore we are in a good position to ensure that the APIs exposed by Roslyn will work well for us. Roslyn committed to OmniSharp at the time that VSCode was announced. We expect to be able to leverage that work for the F# Tooling it's not that we think one way is better or worse than any other, it's just that a decision has been made and we intend to leverage the work of other members of our team. to make roslyn workspaces and Omni sharp work. Our expectation is that the VFPT team will continue to develop the power tools separately from us. We do not want to get in the way of the great work that they are currently doing. However their integration into VS will be different from how it is now. Because the language service underneath the editor will be completely different. It would be fair to say that as of right now we have no design for how these pieces are going to be integrated, or what the issues are going to look like after they are integrated. But once we have a better understanding we will be able to itterate on designs. It is not our goal to undermine the great work done by the VFPT team, Xamarin or anyone else. What we do intend ensuring is that our tooling gets unstuck from the unsupportable mire that it is currently in. |
AFAIK VFPT has very few dependencies on VFT.
So I suspect there will be ways to just keep VFPT working. |
I suggest we put aside all talk of multiple editors when discussing this work, at least for the next few months. This is about revamping the Visual F# Tools using the Roslyn Workspace APIs for Visual Studio, period. And taking a community-oriented approach to it right from the start. Whether this can be reused in other future editing contexts is somewhat irrelevant: the work is worth doing simply to make the Visual F# Tools better. F# has existing strong support and momentum in a whole range of editing tools. That should continue exactly as is. And this effort will leverage the shared components coming out of that work (e.g. the FCS APIs and likely FSharpVSPowerTools.Core). So for this work let's just focus on Visual Studio for now. It's just as if the Xamarin F# support was reimplemented on some new Xamarin API, or the Atom F# support was implemented on some new Atom API. |
As far as I understand all "problems" and "confusion" in Ionide part were prompted by information about adding F# support to Omnisharp, what has nothing to do with VS, and would have huge implications for F# plugins for other editors. But I would love to get "official" point on that - since it's another thread where Don is saying focus on VS, while Kevin is also mentioning Omnisharp. Also, if F#/Omnisharp integration is planned, we should not ignore it right now and figure out later, after few months since it's important to ensure that all those LEGO pieces will work well together. To the VS topic: |
My understanding is that the mention of Omnisharp was aspirational, in the sense of "if we do this perhaps we could do that later" sense. It seems an awfully long way off if you ask me: there is no active work in this space. @otawfik-ms is only just getting up to speed and there's a long way ahead for just the VS tooling alone. Re the VS topic: Yes, I think bringing FPT.Core into FCS would be appropriate. My understanding is that FPT.Core is effectively used as an add-on to FCS. @otawfik-ms has said he is studying the relevant designs. |
What we need is simply an agnostic editor core, if work is furthered on that front then everyone will benefit. What tends to happen is everyone says yeah lets do that, then goes ahead with separate solutions which patch around the bugs/issues/caveats in the compiler etc. I think a reasonably thorough discussion of what a reusable agnostic editor core is would be useful, especially getting feedback from current major users like ionide, emacs, monodevelop, vs, vfpt. A formal RFC discussion like what happens for rust may be useful, organisation around any compiler related tooling advancement has always been rather fuzzy. |
@7sharp9 Commonality is very useful, and may continue to arise naturally out of projects like this. However I think it's very important to realize that this is not what this work is about. Microsoft have limited resources and the immediate task is to lift the Visual F# Tools off the VS COM interfaces (and the ancient FSharp.LanguageService.Base) and onto the Roslyn workspace APIs. This doesn't need a common editor core since it nearly all sits directly on FCS (plus some of the implementation of FSharp.LanguageService which must presumably be brought over). @otawfik-ms and contributors will need to focus on that engineering rather than being faced with the much larger and more daunting prospect of redesigning and coordinating a common core right across all editors. So I guess I'm asking that for now we allow this work to focus on the localized needs of the Visual F# IDE Tools, rather than becoming a cross-editor design discussion. |
Closing old discussion |
As per the discussion in #913 there seems to be a lot of confusion over what this shift means for the future of the community based F# tooling
Now the architecture that seems to have a lot of community support behind it (long advocated by @7sharp9)
also referred to by @dsyme in
I think another long term benefit of taking this approach would be merging the cross-platform editor agnostic power tools into the compiler service to make by far the most powerful language service out of the many functional programming languages.
I think some of the pertinent issues to address are -
Microsoft.Diagnostics
APIs be implemented? Will they be baked into the VS integration or exposed in a manner that can be consumed by other services, e.g. as a part of theFSharp.Powertools.Core
model or something else?@tpetricek has suggested it might be fruitful to have a google hangout (or skype) discussion about this to hash out a plan for the future of F# tooling moving forward
@KevinRansom @NumberByColors @dungpa @vasily-kirichenko @Krzysztof-Cieslak @forki @nosami @rneatherway
The text was updated successfully, but these errors were encountered: