Skip to content

Commit 65e6d16

Browse files
committed
Use in razor document mapping service
1 parent 4f409a1 commit 65e6d16

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

src/Compiler/Microsoft.AspNetCore.Razor.Language/src/IRazorGeneratedDocument.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ internal interface IRazorGeneratedDocument
1010
string GeneratedCode { get; }
1111
RazorCodeGenerationOptions Options { get; }
1212
ImmutableArray<SourceMapping> SourceMappings { get; }
13+
ImmutableArray<SourceSpan> ComponentMappings { get; }
1314
RazorCodeDocument? CodeDocument { get; }
1415
}

src/Compiler/Microsoft.AspNetCore.Razor.Language/src/RazorHtmlDocument.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ internal abstract class RazorHtmlDocument : IRazorGeneratedDocument
1616

1717
public abstract ImmutableArray<SourceMapping> SourceMappings { get; }
1818

19+
public ImmutableArray<SourceSpan> ComponentMappings => ImmutableArray<SourceSpan>.Empty;
20+
1921
public abstract RazorCodeDocument CodeDocument { get; }
2022

2123
public static RazorHtmlDocument Create(RazorCodeDocument codeDocument, string generatedHtml, RazorCodeGenerationOptions options, ImmutableArray<SourceMapping> sourceMappings)

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,19 @@ public bool TryMapToHostDocumentPosition(IRazorGeneratedDocument generatedDocume
332332
return true;
333333
}
334334

335+
foreach (var mapping in generatedDocument.ComponentMappings)
336+
{
337+
var generatedAbsoluteIndex = mapping.AbsoluteIndex;
338+
var distanceIntoGeneratedSpan = generatedDocumentIndex - generatedAbsoluteIndex;
339+
if (generatedAbsoluteIndex <= generatedDocumentIndex &&
340+
distanceIntoGeneratedSpan <= mapping.Length)
341+
{
342+
hostDocumentIndex = 0;
343+
hostDocumentPosition = new LinePosition(0, 0);
344+
return true;
345+
}
346+
}
347+
335348
hostDocumentPosition = default;
336349
hostDocumentIndex = default;
337350
return false;

0 commit comments

Comments
 (0)