-
Notifications
You must be signed in to change notification settings - Fork 196
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
Use Roslyn project info in cohost endpoints #9805
Conversation
src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Cohost/DocumentSnapshotFactory.cs
Outdated
Show resolved
Hide resolved
src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Cohost/CohostProjectSnapshot.cs
Outdated
Show resolved
Hide resolved
src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Cohost/CohostProjectSnapshot.cs
Outdated
Show resolved
Hide resolved
return ImmutableArray<IDocumentSnapshot>.Empty; | ||
} | ||
|
||
using var _ = ArrayBuilderPool<IDocumentSnapshot>.GetPooledObject(out var builder); |
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.
Consider using a PooledArrayBuilder
if the result will regularly be larger than 4 items.
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.
Do you mean if it will be less than 4 items? If it's more than 4, doesn't the PooledArrayBuilder
just switch to using the ArrayBuilderPool
anyway?
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.
Having said that, I just copied this code as is, and it can be improved slightly by specifying a capacity at least
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.
Yes, sorry - I meant "less than 4 items". PooledArrayBuilder
can help avoid starvation of the ArrayBuilderPool
and is useful when smaller arrays are expected. I'm not 100% sure what GetRelatedDocuments
means. Based on the code and the name of the map, I would guess it means, "the documents that use this import"? If so, ArrayBuilderPool
is probably the way to go.
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.
Yep, that's my reading too, and I agree. Thanks for confirming
Part of #9519
This PR is the very first baby step towards using the Roslyn project system in cohosting.
What it does:
CohostDocumentSnapshot.GetGeneratedOutput
) and host outputs (various places inCohostProjectSnapshot
)What it doesn't do:
Very much a stepping stone. Next steps is to work out how to get RazorCustomMessageTarget onto using roslyn types, or remove it, or just skip synchronization if cohosting is turned on.