Skip to content

Add ServiceHub implementation of IDocumentTrackingService#52976

Merged
sharwell merged 3 commits intodotnet:mainfrom
sharwell:oop-document-tracking
Apr 30, 2021
Merged

Add ServiceHub implementation of IDocumentTrackingService#52976
sharwell merged 3 commits intodotnet:mainfrom
sharwell:oop-document-tracking

Conversation

@sharwell
Copy link
Contributor

This implementation helps identify problematic uses of transient state in remote invocations that are intended to be stateless.

@sharwell sharwell requested a review from a team as a code owner April 27, 2021 21:27
@ghost ghost added the Area-IDE label Apr 27, 2021
Copy link
Contributor

@CyrusNajmabadi CyrusNajmabadi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great idea :)

@sharwell sharwell force-pushed the oop-document-tracking branch 2 times, most recently from 203d533 to 74e4dc9 Compare April 28, 2021 21:36
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this is correct, but still problematic :-/ we do want a system whereby a user touches a document, and we update the 'designable' state for it in VS asap. Do we have any thoughts on how we might accomplish that moving forward?

Copy link
Contributor Author

@sharwell sharwell Apr 28, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diagnostic incremental analyzer handles this by running the solution crawler portion in devenv.exe and delegating the individual document/project analysis operations to OOP. For designer attribute discovery, we have a few options:

  1. Rely on Solution Crawler to minimize the number of document analysis operations that are requested following a document change. Analysis operations would directly prioritize open documents, but open documents would scan quickly following changes by nature of work being added to a short queue.
  2. Move designer attribute solution crawling to devenv.exe, and delegate to OOP similar to diagnostics.
  3. Leave this analyzer unchanged (essentially option 1), but add a parallel API that can perform targeted updates of a document following context switches (roughly a work-stealing approach).

This implementation helps identify problematic uses of transient state
in remote invocations that are intended to be stateless.
…lable

Incremental analyzers running in Solution Crawler out-of-process must
not set 'HighPriorityForActiveFile'. Active file information is not
available out-of-process, so these analyzers will never take the active
files into account.

Lower priority incremental analyzers do not explicitly request
prioritized processing for active files, but the Solution Crawler still
prioritized processing of these items when the information was
available. This change automatically disables the prioritization feature
for Solution Crawler running out-of-process.
@sharwell sharwell force-pushed the oop-document-tracking branch from 74e4dc9 to 318b50b Compare April 28, 2021 21:46
@dotnet dotnet deleted a comment from azure-pipelines bot Apr 30, 2021
@sharwell sharwell merged commit 7f76171 into dotnet:main Apr 30, 2021
@sharwell sharwell deleted the oop-document-tracking branch April 30, 2021 15:05
@ghost ghost added this to the Next milestone Apr 30, 2021
@RikkiGibson RikkiGibson modified the milestones: Next, 17.0.P2 Jun 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants