Skip to content

Commit 91211e9

Browse files
committed
Update logic for callers to the mapping service
1 parent be18200 commit 91211e9

File tree

3 files changed

+22
-38
lines changed

3 files changed

+22
-38
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/DocumentHighlighting/DocumentHighlightEndpoint.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,16 @@ public void ApplyCapabilities(VSInternalServerCapabilities serverCapabilities, V
7373
return null;
7474
}
7575

76-
var codeDocument = await documentContext.GetCodeDocumentAsync(cancellationToken).ConfigureAwait(false);
77-
78-
var generatedDocument = codeDocument.GetGeneratedDocument(positionInfo.LanguageKind);
79-
foreach (var highlight in response)
76+
if (positionInfo.LanguageKind is RazorLanguageKind.CSharp)
8077
{
81-
if (_documentMappingService.TryMapToHostDocumentRange(generatedDocument, highlight.Range, out var mappedRange))
78+
var codeDocument = await documentContext.GetCodeDocumentAsync(cancellationToken).ConfigureAwait(false);
79+
var csharpDocument = codeDocument.GetRequiredCSharpDocument();
80+
foreach (var highlight in response)
8281
{
83-
highlight.Range = mappedRange;
82+
if (_documentMappingService.TryMapToHostDocumentRange(csharpDocument, highlight.Range, out var mappedRange))
83+
{
84+
highlight.Range = mappedRange;
85+
}
8486
}
8587
}
8688

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/LspDocumentMappingService.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,7 @@ internal sealed class LspDocumentMappingService(
4747
}
4848

4949
var codeDocument = await documentContext.GetCodeDocumentAsync(cancellationToken).ConfigureAwait(false);
50-
51-
if (!codeDocument.TryGetGeneratedDocument(generatedDocumentUri, _filePathService, out var generatedDocument))
52-
{
53-
return Assumed.Unreachable<(Uri, LinePositionSpan)>();
54-
}
55-
56-
if (TryMapToHostDocumentRange(generatedDocument, generatedDocumentRange, MappingBehavior.Strict, out var mappedRange))
50+
if (TryMapToHostDocumentRange(codeDocument.GetRequiredCSharpDocument(), generatedDocumentRange, MappingBehavior.Strict, out var mappedRange))
5751
{
5852
return (razorDocumentUri, mappedRange);
5953
}

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Mapping/RazorMapToDocumentRangesEndpoint.cs

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,10 @@
1414
namespace Microsoft.AspNetCore.Razor.LanguageServer.Mapping;
1515

1616
[RazorLanguageServerEndpoint(LanguageServerConstants.RazorMapToDocumentRangesEndpoint)]
17-
internal sealed class RazorMapToDocumentRangesEndpoint :
18-
IRazorDocumentlessRequestHandler<RazorMapToDocumentRangesParams, RazorMapToDocumentRangesResponse?>,
19-
ITextDocumentIdentifierHandler<RazorMapToDocumentRangesParams, Uri>
17+
internal sealed class RazorMapToDocumentRangesEndpoint(IDocumentMappingService documentMappingService)
18+
: IRazorDocumentlessRequestHandler<RazorMapToDocumentRangesParams, RazorMapToDocumentRangesResponse?>, ITextDocumentIdentifierHandler<RazorMapToDocumentRangesParams, Uri>
2019
{
21-
private readonly IDocumentMappingService _documentMappingService;
22-
23-
public RazorMapToDocumentRangesEndpoint(IDocumentMappingService documentMappingService)
24-
{
25-
_documentMappingService = documentMappingService;
26-
}
20+
private readonly IDocumentMappingService _documentMappingService = documentMappingService;
2721

2822
public bool MutatesSolutionState { get; } = false;
2923

@@ -46,29 +40,23 @@ public Uri GetTextDocumentIdentifier(RazorMapToDocumentRangesParams request)
4640
}
4741

4842
var codeDocument = await documentContext.GetCodeDocumentAsync(cancellationToken).ConfigureAwait(false);
49-
IRazorGeneratedDocument? generatedDocument = request.Kind switch
50-
{
51-
RazorLanguageKind.CSharp => codeDocument.GetRequiredCSharpDocument(),
52-
RazorLanguageKind.Html => codeDocument.GetHtmlDocument(),
53-
_ => throw new NotSupportedException($"Unsupported language kind '{request.Kind}'."),
54-
};
55-
56-
if (generatedDocument is null)
57-
{
58-
return null;
59-
}
43+
var csharpDocument = codeDocument.GetRequiredCSharpDocument();
6044

6145
var ranges = new LspRange[request.ProjectedRanges.Length];
6246
var spans = new RazorTextSpan[request.ProjectedRanges.Length];
6347

6448
for (var i = 0; i < request.ProjectedRanges.Length; i++)
6549
{
66-
var projectedRange = request.ProjectedRanges[i];
67-
if (!_documentMappingService.TryMapToHostDocumentRange(generatedDocument, projectedRange, request.MappingBehavior, out var originalRange))
50+
var originalRange = request.ProjectedRanges[i];
51+
if (request.Kind is RazorLanguageKind.CSharp)
6852
{
69-
// All language queries on unsupported documents return Html. This is equivalent to what pre-VSCode Razor was capable of.
70-
ranges[i] = LspFactory.UndefinedRange;
71-
continue;
53+
var projectedRange = request.ProjectedRanges[i];
54+
if (!_documentMappingService.TryMapToHostDocumentRange(csharpDocument, projectedRange, request.MappingBehavior, out originalRange))
55+
{
56+
// All language queries on unsupported documents return Html. This is equivalent to what pre-VSCode Razor was capable of.
57+
ranges[i] = LspFactory.UndefinedRange;
58+
continue;
59+
}
7260
}
7361

7462
ranges[i] = originalRange;

0 commit comments

Comments
 (0)