1. 27 10月, 2018 2 次提交
  2. 26 10月, 2018 5 次提交
  3. 25 10月, 2018 5 次提交
  4. 24 10月, 2018 2 次提交
  5. 20 10月, 2018 7 次提交
  6. 19 10月, 2018 18 次提交
    • M
      Merge pull request #30593 from mavasani/PerfIssues · 30102839
      Manish Vasani 提交于
      Fix for perf issues in CompilationWithAnalyzers found from perf traces
      30102839
    • C
      Set null state on dereference (#30564) · 5bb48dbd
      Charles Stoner 提交于
      5bb48dbd
    • M
      Remove a redundant cancellation check · 488b634e
      Manish Vasani 提交于
      488b634e
    • A
      Handle fake indexers for Index and Range on string · 26923316
      Andy Gocke 提交于
      26923316
    • A
      Generate fake indexer code for arrays · 3e9297b7
      Andy Gocke 提交于
      Generates fake indexers for arrays that take System.Index and
      System.Range.
      3e9297b7
    • J
      Merge pull request #26931 from jasonmalinowski/free-threaded-project-system-api · c20eae14
      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.
      
      This also introduces a proper batching API: any consumer of VisualStudioProject
      may call CreateBatchScope() which means all future operations are put a single
      batch that will be applied at once in a single workspace change. Multiple calls
      to CreateBatchScope just stack: it only applies when all scopes are closed. You
      could think of the behavior as roughly analogous to an SQL transaction, except
      with no rollback capabilities. A batch is only per-project: a batch started on
      one project doesn't impact another project. There is no concept of a
      cross-project batch, short of just starting two independent batches and
      completing them at the same time (which creates two workspace changes.)
      
      The inheritance 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 AbstractProject will go away.
      
      AbstractLegacyProject (which is used for csproj and vbproj) still is tied to the
      UI thread, but the ties should now be more limited and better understood. The
      primary tangles right now are having to fetch a few things from IVsHierarchies,
      namely some project properties and the folder structure. The plan for now is
      AbstractLegacyProject-derived projects will still be called on the UI thread,
      and we'll determine a new API to remove those remaining issues for them (or just
      move them onto VisualStudioProject.)
      
      The threading guarantee given to all consumers of VisualStudioProject is it can
      be called from any thread, and no synchronous calls to the UI thread may be done
      at that time. There are a few places where we asynchronously kick off work to
      inspect the running document table, but those are async and should never block.
      
      There is a lock hierarchy now instituted: each VisualStudioProject has a lock
      which it takes when any method is called on it, this is to ensure
      straightforward synchronization of it's data for things like batch
      start/stopping, what's in the batch, etc. There is also a lock in
      VisualStudioWorkspaceImpl that is acquired when actually modifying the
      workspace, which is done through an internal ApplyChangeToWorkspace method so it
      can be called from VisualStudioProject more easily. It is permissible for a
      VisualStudioProject to call ApplyChangeToWorkspace to acquire the
      VisualStudioWorkspaceImpl lock. It is _not_ permissible for a lock holder of
      VisualStudioWorkspaceImpl's lock to acquire any project lock. To this end, some
      project-to-project tracking information is held in VisualStudioWorkspaceImpl to
      avoid mistakes -- although the data is a "per project" concept, putting it in
      the project would cause people to take a project lock and risk deadlocks.
      c20eae14
    • C
      2bf9edc6
    • H
      Add APIs for adding dynamic files to IWorkspaceProjectContext · 2e8351a0
      Heejae Chang 提交于
      This adds an API for the project system to notify us about files that
      can generate .cs files in the workspace. The rest of the implementation
      is still coming but this unblocks the project system side of things.
      2e8351a0
    • J
      Skip test that's going to need more work to make pass again · 58c91c0a
      Jason Malinowski 提交于
      This test was broken prior to my change: it never waited for CPS to
      have completed design time builds before it asserted that everything
      was done. But before, there was no window where the UI thread was idle
      and the file wasn't associated with Miscellaneous Files. Now that we're
      more async, I think it is the case where it can be, and that trips
      things up.
      58c91c0a
    • J
    • M
      Add comment · 056c5121
      Manish Vasani 提交于
      056c5121
    • C
      Merge pull request #30594 from cston/merge-nullable · d59020f8
      Charles Stoner 提交于
      Merge 'features/NullableReferenceTypes' into 'dev16.0.x'
      d59020f8
    • J
      Allow NavigationBarController to handle background thread changes · 6c4173ff
      Jason Malinowski 提交于
      We might disconnect/reconnect on background threads now, so
      be ready for that.
      6c4173ff
    • J
      Add a Workspace async operation around us queueing stuff to the UI thread · 41dda865
      Jason Malinowski 提交于
      Since we're checking the RDT asynchronously, we need a way for
      integration tests to confirm that.
      41dda865
    • C
    • M
      Use SemaphoseSlim · 5e3a34e2
      Manish Vasani 提交于
      5e3a34e2
    • C
      c9c6309c
    • M
      Fix for perf issues in CompilationWithAnalyzers found from perf traces · 2e8656bf
      Manish Vasani 提交于
      1. Check cancellation at multiple places.
      2. Run partial tree completion logic sequentially when `AnalysisOptions.ConcurrentAnalysis = false`
      2e8656bf
  7. 18 10月, 2018 1 次提交