[Sonic] Completion support for multiple C# documents - #84222
Merged
davidwengier merged 6 commits intoJun 24, 2026
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR moves Razor completion implementation into Microsoft.CodeAnalysis.Remote.Razor and extends delegated C# completion/resolve to be aware of multiple generated C# documents (declaration vs implementation) via an InDeclDocument flow-through.
Changes:
- Add
InDeclDocumenttoDelegatedCompletionResolutionContextand thread it through Remote completion request/resolve and C# formatting so the correct generated C# document is used. - Consolidate/export completion services/providers in
Microsoft.CodeAnalysis.Remote.Razor(removing OOP wrapper types) and update unit tests accordingly. - Move HTML completion schema/resources to Remote.Razor (generator output namespaces, embedded resource logical names) and update localization/resources.
Reviewed changes
Copilot reviewed 95 out of 124 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Razor/src/Razor/tools/HtmlCompletionDataGenerator/README.md | Updates generator usage path to Remote.Razor output. |
| src/Razor/src/Razor/tools/HtmlCompletionDataGenerator/CodeEmitter.cs | Emits Remote.Razor namespaces/resource base names for generated HTML completion code. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Microsoft.CodeAnalysis.Remote.Razor.UnitTests.csproj | Adds global using aliases for LSP completion protocol types in tests. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/TagHelperCompletionProviderTest.cs | Updates namespace and word-boundary helper usage for moved completion code. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/RazorCompletionListProviderTest.cs | Switches to new facts service implementation and Remote.Razor namespace. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/MarkupTransitionCompletionItemProviderTest.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/LocalHtmlCompletionProviderTest.cs | Updates namespace and HTML completion provider namespace usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/LanguageServerTagHelperCompletionServiceTest.cs | Updates namespace to Remote.Razor completion. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveVerifier.cs | Updates namespace to Remote.Razor completion. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveCompletionItemProviderTest.cs | Updates namespace; still validates directive completion behavior. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveAttributeTransitionCompletionItemProviderTest.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveAttributeEventParameterCompletionItemProviderTest.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveAttributeCompletionItemProviderTest.ParameterNames.cs | Updates namespace and completion facts service usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveAttributeCompletionItemProviderTest.AttributeNames.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveAttributeCompletionItemProviderBaseTest.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DefaultRazorCompletionFactsServiceTest.cs | Updates test to use new RazorCompletionFactsService and removes test-only derived type. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/CSharpRazorKeywordCompletionItemProviderTests.cs | Updates namespace and word-boundary helper usage for moved completion code. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/BlazorDataAttributeCompletionItemProviderTest.cs | Updates namespace and word-boundary helper usage. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Razor.CohostingShared.UnitTests/Endpoints/CohostDocumentCompletionResolveEndpointTest.cs | Updates resolve context construction to include InDeclDocument. |
| src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Razor.CohostingShared.UnitTests/Endpoints/CohostDocumentCompletionEndpointTest.cs | Adds/updates cohosting completion tests and enables previously skipped scenarios. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.zh-Hant.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.zh-Hans.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.tr.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.ru.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.pt-BR.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.pl.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.ko.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.ja.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.it.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.fr.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.es.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.de.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/xlf/SR.cs.xlf | Adds new Remote.Razor localized entries for completion-related resources. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Resources/SR.resx | Adds completion-related resource strings into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Microsoft.CodeAnalysis.Remote.Razor.csproj | Embeds HtmlDescriptions.resx with Remote.Razor logical name. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/TagHelperCompletionService.cs | Moves/exports tag helper completion service into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/TagHelperCompletionProvider.cs | Moves/exports tag helper completion provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RemoteCompletionService.cs | Threads InDeclDocument through completion and resolve, and uses correct generated C# document. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RazorCompletionResolveContext.cs | Updates namespace for resolve context type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RazorCompletionListProvider.cs | Exports list provider and updates word-boundary helper usage. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RazorCompletionItemResolver.cs | Updates namespace/imports for moved resolver. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RazorCompletionFactsService.cs | Replaces abstract facts service with exported sealed implementation using ImportMany. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/RazorCompletionContext.cs | Updates namespace/imports for moved context record. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/OOPTagHelperCompletionService.cs | Removes OOP wrapper service type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/OOPRazorCompletionListProvider.cs | Removes OOP wrapper list provider type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/OOPRazorCompletionItemProviders.cs | Removes OOP wrapper completion provider exports. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/OOPRazorCompletionFactsService.cs | Removes OOP wrapper facts service type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/MarkupTransitionCompletionItemProvider.cs | Moves/exports markup transition completion provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/ITagHelperCompletionService.cs | Updates namespace for completion service interface. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/IRazorCompletionItemProvider.cs | Updates namespace for completion provider interface. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/IRazorCompletionFactsService.cs | Updates namespace for completion facts interface. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionResolveContext.cs | Updates namespace for HTML resolve context. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionProvider.PositionKind.cs | Updates namespace for HTML completion helper type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionProvider.PositionContext.cs | Updates namespace for HTML completion helper type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionProvider.EntityCompletion.cs | Updates namespace for HTML completion helper type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionProvider.cs | Updates namespace/imports; uses Remote.Razor SR resources for tooltip/baseline text. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/LocalHtmlCompletionProvider_Fallback.cs | Updates namespace for HTML completion helper type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/HtmlCompletionImageMonikers.cs | Updates namespace for HTML completion image monikers. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlElements.All.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlElementKind.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlElementInfo.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlElementGroups.Unique.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlElementGroups.Shared.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlDescriptions.g.cs | Generated resource accessor updated for Remote.Razor resource base name. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlCompletionData.g.cs | Generated HTML schema entry point namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeValueGroups.Unique.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeValueGroups.Shared.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributes.Unique.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributes.Shared.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeKind.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeInfo.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeGroups.Unique.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/Html/Generated/HtmlAttributeGroups.Shared.g.cs | Generated HTML schema code namespace updated to Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/ElementCompletionResult.cs | Updates namespace for element completion result type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/ElementCompletionContext.cs | Updates namespace for element completion context type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveCompletionItemProvider.cs | Moves/exports directive completion provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeTransitionCompletionItemProvider.cs | Moves/exports directive attribute transition provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeEventParameterCompletionItemProvider.cs | Moves/exports directive attribute event parameter provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeCompletionItemProviderBase.cs | Updates namespace for directive attribute base provider. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeCompletionItemProvider.cs | Moves/exports directive attribute provider; updates commit character helper reference. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeCompletionItemProvider.AttributeCompletionDetails.cs | Updates namespace for attribute completion details nested type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/DirectiveAttributeCompletionContext.cs | Updates namespace for directive attribute completion context. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/CSharpRazorKeywordCompletionItemProvider.cs | Moves/exports C# keyword completion provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/CompletionSortTextHelper.cs | Updates namespace/imports for sort text helper. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/CompletionReason.cs | Updates namespace for completion reason enum. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/CompletionItemResolver.cs | Updates namespace for completion item resolver base type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/CompletionContextHelper.cs | Updates namespace for context helper. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/BlazorDataAttributeCompletionItemProvider.cs | Moves/exports Blazor data-* completion provider into Remote.Razor. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/AttributeCompletionResult.cs | Updates namespace for attribute completion result. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/AttributeCompletionContext.cs | Updates namespace for attribute completion context. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Remote.Razor/Completion/AggregateCompletionItemResolver.cs | Updates namespace for aggregated resolver type. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.zh-Hant.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.zh-Hans.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.tr.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.ru.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.pt-BR.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.pl.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.ko.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.ja.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.it.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.fr.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.es.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.de.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Resources/xlf/SR.cs.xlf | Resets several completion-related translations to state=\"new\" (Workspaces). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Protocol/DelegatedCompletionResolutionContext.cs | Adds InDeclDocument to serialized completion resolve context. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Microsoft.CodeAnalysis.Razor.Workspaces.csproj | Removes Workspaces embedding override for HtmlDescriptions.resx. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Completion/LspRazorCompletionFactsService.cs | Removes LSP-specific facts service type (now consolidated elsewhere). |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Completion/Delegation/DelegatedCompletionHelper.cs | Formats delegated C# completion edits using correct generated C# document (decl/impl) and URI mapping. |
| src/Razor/src/Razor/src/Microsoft.CodeAnalysis.Razor.CohostingShared/Completion/CohostDocumentCompletionEndpoint.cs | Populates InDeclDocument when caching delegated completion resolution context. |
| src/Razor/src/Razor/benchmarks/Microsoft.AspNetCore.Razor.Microbenchmarks/Serialization/CompletionListSerializationBenchmark.cs | Updates benchmark namespace imports to Remote.Razor completion types. |
Comments suppressed due to low confidence (2)
src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/DirectiveCompletionItemProviderTest.cs:17
- This test still aliases
SRfromMicrosoft.CodeAnalysis.Razor.Workspaces.Resources. Since the completion implementation in this PR has been moved underMicrosoft.CodeAnalysis.Remote.Razor(and Remote.Razor now has its own SR.resx), referencing the Workspaces resource set here can mask resource-move mistakes and keeps the old resource keys “alive” unintentionally. Prefer using the Remote.Razor resource SR so tests validate the same resources the product code uses.
src/Razor/src/Razor/test/Microsoft.CodeAnalysis.Remote.Razor.UnitTests/Completion/CSharpRazorKeywordCompletionItemProviderTests.cs:14 - This test still aliases
SRfromMicrosoft.CodeAnalysis.Razor.Workspaces.Resources, but the completion implementation/resources in this PR live underMicrosoft.CodeAnalysis.Remote.Razor. Using the Workspaces SR here can let resource-move issues slip through and creates unnecessary coupling to the Workspaces resource set. Prefer usingMicrosoft.CodeAnalysis.Remote.Razor.Resources.SRso the test validates the same resources the product code uses.
Member
Author
|
@dotnet/razor-tooling PTAL, one of the last two sonic tooling PRs |
chsienki
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review commit-at-a-time is thoroughly recommended because, like others, I moved the code to Remote.Razor. First 4 commits are purely mechanical changes because of that. There are a lot of completion files.
The actual sonic work here is pretty slim.
Microsoft Reviewers: Open in CodeFlow