Skip to content
This repository has been archived by the owner on Oct 31, 2021. It is now read-only.

ProjectProvider & ProjectFactory -> FSharp.Editing #1411

Open
cloudRoutine opened this issue Jul 13, 2016 · 5 comments
Open

ProjectProvider & ProjectFactory -> FSharp.Editing #1411

cloudRoutine opened this issue Jul 13, 2016 · 5 comments

Comments

@cloudRoutine
Copy link
Contributor

cloudRoutine commented Jul 13, 2016

Dependent upon completion of Open Documents Tracker #1410

IProjectProvider interface will be defined and the ProjectProvider type will be implemented in VFPT.Core. (Logic may still need to have a VsProjectProvider that implements the IProjectProvider interface). The ProjectProvider implementation can probably be changed to acquire compilation flags, project contents and configurations settings,

Most of the ProjectFactory business logic can be changed to respond to events sent from the logic side.
Any data that requires the DTE for acquisition should be sent from Logic to Core

  • VirtualProjectProvider should be passed the FSharpCompilerVersion as a parameter instead of the VisualStudioVersion

WIP - Need to review further to layout how to split roles between ProjectFactory in Core and Logic

Code Located @
https://github.com/fsprojects/VisualFSharpPowerTools/blob/master/src/FSharp.Editing.VisualStudio/ProjectSystem/ProjectProvider.fs
https://github.com/fsprojects/VisualFSharpPowerTools/blob/master/src/FSharp.Editing.VisualStudio/ProjectSystem/ProjectFactory.fs

@cloudRoutine cloudRoutine added this to the VFPT.Core Refactoring milestone Jul 13, 2016
@vasily-kirichenko
Copy link
Contributor

I'd like to rename it to ISolution/Solution.

@smoothdeveloper
Copy link
Contributor

smoothdeveloper commented Jul 13, 2016

@cloudRoutine having IProjectProvider moved to core would simplify work I'm doing on GoToDefinitionFilter as i'd need not to get rid of it / ISolution.

So for now, I won't move stuff to Core but focus on other remaining dependencies.

@smoothdeveloper
Copy link
Contributor

@vasily-kirichenko I agree we should have something for Solution but we can't just rename it I believe, for example GetReferencedProjects doesn't make sense on Solution and probably other inconsistencies.

I think we can start define Solution and move the "identified once for all projects in solution" aspects to that interface when they become identified.

What do you all think?

@vasily-kirichenko
Copy link
Contributor

Solution concept for us is just "set of projects", nothing more. I don't think it should do anything beyond simple operations like "opened", "closed", "project loaded", "project updated", etc.

@cloudRoutine cloudRoutine changed the title ProjectProvider & ProjectFactory -> VFPT.Core ProjectProvider & ProjectFactory -> FSharp.Editing Jul 15, 2016
@smoothdeveloper
Copy link
Contributor

We can split out ProjectDescriptor (a record with the same member as the get properties in current IProjectProvider) as I was (kind of) describing in #1440, I think this should be done disregarding the fact that #1410 is done or not.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants