1. 21 5月, 2019 1 次提交
  2. 16 5月, 2019 1 次提交
  3. 13 4月, 2019 1 次提交
  4. 15 2月, 2019 1 次提交
    • J
      Add a test for https://github.com/dotnet/roslyn/issues/33080 · f0d8a919
      Jason Malinowski 提交于
      We never actually had any tests that tested Code Model and our project
      system shims at the same time. To fix this required pulling
      RoslynVisualStudioWorkspace.GetFileCodeModel down to
      VisualStudioWorkspaceImpl, and fixing up some mocks we have to be
      (every so) slightly more accurate.
      f0d8a919
  5. 10 12月, 2018 1 次提交
  6. 04 12月, 2018 1 次提交
  7. 28 11月, 2018 1 次提交
  8. 02 11月, 2018 1 次提交
  9. 06 10月, 2018 2 次提交
    • J
      Add back some compatibility shims for TypeScript · e8e52d99
      Jason Malinowski 提交于
      TypeScript uses the AbstractProject and VisualStudioProjectTracker to
      add and remove projects; this adds back a minimal shim for them to use.
      e8e52d99
    • J
      Introduce a new free-threaded project system API and update shims · 7e10f449
      Jason Malinowski 提交于
      This produces a new free-threaded, well factored API for adding projects
      to the VisualStudioWorkspace. The core type is the VisualStudioProject
      which is a free-threaded API that you can use to push information over.
      CSharpProjectShim, VisualBasicProject and CPSProject each have an
      instance of VisualStudioProject that they push things through.
      
      The inheritence model here is now smaller. CSharpProjectShim and
      VisualBasicProject inherit from AbstractLegacyProject, but that's it.
      CPSProject now inherits nothing, and AbstractProject is here purely
      for TypeScript back-compat until they're moved onto the new APIs. The
      expectation is F# and TypeScript both move to VisualStudioProject, which
      we make public in some form. Then that type will go away.
      7e10f449
  10. 21 3月, 2018 1 次提交
  11. 10 3月, 2018 5 次提交
    • J
      Remove virtual method that we can now write directly · 2b470697
      Jason Malinowski 提交于
      VisualStudioWorkspace had a virtual method to send a call over to
      the code model logic. Since we now have the requisite interface callable
      directly, we should just call it directly. It also saves us the trouble
      of passing a DocumentId only to re-decompose the type again.
      2b470697
    • J
      Rid ourselves of IProjectCodeModelProvider, and collapse some method hierarchies · 1373b3ed
      Jason Malinowski 提交于
      Our CodeModel implementation would go to AbstractProjects and then
      see if the implemented a special interface IProjectCodeModelProvider
      to fetch their ProjectCodeModel. This abstraction was pretty leaky:
      since we're already assuming carnal knowledge of AbstractProject,
      we can just make it a property that might be null and be done with it.
      This means we can push some code that is in very derived types (and
      duplicated) down into a single shared type.
      
      At this point, all project system calls flow through IProjectCodeModel,
      and the only tangling back to AbstractProject is just to do the lookup
      from project -> IProjectCodeModel. We can now introduce an interface
      IProjectCodeModelFactory that just maintains that mapping and then
      suddenly things are really clean.
      1373b3ed
    • J
      Introduce an interface IProjectCodeModel for ProjectCodeModel · af4996d8
      Jason Malinowski 提交于
      This interface is able to live in our ServicesVisualStudio project
      and that's what the project systems are able to interact with. This
      makes the API more like an "optional service" that they can create.
      Down the road, we can just have an IProjectCodeModelFactory that
      keeps the implementation entirely separated out.
      af4996d8
    • J
      Remove abstract methods in AbstractProjectCodeModel · 1a34774a
      Jason Malinowski 提交于
      Rather than using inheritence, we only need one factory method. By
      favoring composition here this will set us up to remove a bunch
      of derived types.
      
      This commit is admittedly strange, as in some cases we now have a
      child type being created in derived types of AbstractProjectCodeModel.
      This is just to move things around, and it'll get better in the next
      commit.
      1a34774a
    • J
      Make AbstractProjectCodeModel.GetCodeModelCache private · 606f0397
      Jason Malinowski 提交于
      This was being used directly in a lot of places, but I think it's a bit
      eaiser to follow object relationships if all creation methods go
      through AbstractProjectCodeModel, and from there might get forwarded.
      
      A fair number of checks were being made of whether the CodeModelCache
      was null; I don't believe these make sense. Once the underlying
      _codeModelCache type is made non-null, it is never set to null, and the
      only way it could fail to create in the first place is if the project
      was never in the ProjectTracker. Given we only produce these once we
      already have a live AbstractProject, that's not possible.
      606f0397
  12. 23 8月, 2017 1 次提交
  13. 15 7月, 2017 1 次提交
  14. 29 6月, 2017 2 次提交
  15. 01 6月, 2017 1 次提交
  16. 20 4月, 2017 2 次提交
  17. 14 3月, 2017 2 次提交
  18. 13 3月, 2017 1 次提交
  19. 20 11月, 2016 3 次提交
  20. 19 11月, 2016 1 次提交
  21. 18 11月, 2016 5 次提交
  22. 15 11月, 2016 1 次提交
    • J
      Defer the initialization of a VisualStudioWorkspace until necessary · 5e1831af
      Jason Malinowski 提交于
      Previously, when a VisualStudioWorkspace was constructed we were
      doing a bunch of work in the constructor talking to the UI thread. This
      was dangerous because we might get composed on a background thread.
      This moves the dangerous initialization until we're creating a project
      when we know we have a UI thread available.
      
      In this refactoring I moved the project tracker and a few other fields
      into a private class so it's more obvious what's dangerous to touch.
      I also do a pass through all consumers of the property and either
      update it to use the deferred state directly (because we're only
      consuming projects, so it's fine if we don't have anything) or to the
      factory method if we actually are creating projects.
      
      This does temporarily regress the ability to create projects on
      background threads, but it was unclear if that was generally safe to
      start with.
      5e1831af
  23. 10 11月, 2016 1 次提交
  24. 22 9月, 2016 1 次提交
  25. 26 7月, 2016 1 次提交
  26. 25 7月, 2016 1 次提交