-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Move EnC OOP - part 1 #45599
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
Move EnC OOP - part 1 #45599
Conversation
|
@sharwell Should should semi-work (other than tracking the active statements). |
src/Features/Core/Portable/EditAndContinue/EditAndContinueWorkspaceService.cs
Outdated
Show resolved
Hide resolved
...VisualStudio/Core/Def/Implementation/EditAndContinue/VisualStudioDebugStateChangeListener.cs
Outdated
Show resolved
Hide resolved
...ualStudio/Core/Def/Implementation/EditAndContinue/VisualStudioManagedModuleUpdateProvider.cs
Outdated
Show resolved
Hide resolved
src/EditorFeatures/Core/Implementation/EditAndContinue/EditAndContinueDiagnosticAnalyzer.cs
Outdated
Show resolved
Hide resolved
src/EditorFeatures/Core/Implementation/EditAndContinue/EditAndContinueDiagnosticAnalyzer.cs
Outdated
Show resolved
Hide resolved
src/EditorFeatures/Core/Implementation/EditAndContinue/EditAndContinueSaveFileCommandHandler.cs
Outdated
Show resolved
Hide resolved
src/EditorFeatures/Core/Implementation/EditAndContinue/EditAndContinueSaveFileCommandHandler.cs
Outdated
Show resolved
Hide resolved
src/EditorFeatures/Core/Implementation/EditAndContinue/EditAndContinueSaveFileCommandHandler.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueDiagnosticUpdateSource.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueDiagnosticUpdateSource.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueDiagnosticUpdateSource.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueWorkspaceService.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueWorkspaceService.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueWorkspaceService.cs
Outdated
Show resolved
Hide resolved
src/Features/Core/Portable/EditAndContinue/EditAndContinueWorkspaceService.cs
Outdated
Show resolved
Hide resolved
beaa1d9 to
ae971e6
Compare
2fc9f18 to
46c804a
Compare
46c804a to
74955db
Compare
8220551 to
e884786
Compare
davidwengier
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sense, though its largely moving around bits of code I don't understand :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a nit, because naming is hard, but I feel like Proxy is not ideal given the logic here and in other methods, and perhaps could be renamed in a follow up.
It feels like this class is the real EnC service, and using just the service on its own would be surprising because callers would have to know what extra work to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think using the real service would be surprising because that service does not have any side-effects. It returns the diagnostics and the caller then is responsible for reporting them. The diagnostic handling here is just a workaround for not having pull diagnostics model and will go away once we remove solution crawler.
That said, I'm open to suggestions of a better name.
src/Workspaces/Remote/Core/Serialization/RoslynJsonConverter.RoslynOnly.cs
Outdated
Show resolved
Hide resolved
3d5d72a to
529f518
Compare
529f518 to
68b2ad4
Compare
68b2ad4 to
3f72db5
Compare
553ab2a to
3bbddc7
Compare
3bbddc7 to
7413d12
Compare
|
Superseded by #50410 |
Moves EnC workspace service OOP.
The services that remain in-proc are ActiveStatementTrackingService and EditAndContinueDiagnosticAnalyzer. The former needs to be in-proc due to dependency on the editor tracking spans. Once the editor provides remote syncing capabilities we'll be able to move it OOP. The latter is a simple analyzer proxy that calls to OOP to perform the actual analysis. We'll be able to remove this once we move to diagnostic pull model.
EditAndContinueWorkspaceService is called via RemoteEditAndContinueServiceProxy. The proxy either calls the local service (if Roslyn runs w/o OOP) or serializes calls to RemoteEditAndContinueService, which in turn deserializes the inputs and calls remote instance of EditAndContinueWorkspaceService.
Fixes #42179
Includes #46826
Blocked on RPS regressions:
microsoft.servicehub.client.ni!Server.Disposeshould not blockFurther possible improvements: