Skip to content

Commit ef0eff7

Browse files
authored
Merge pull request #22903 from dotnet/dev/toddgrun/NoMoreLineTrackingStringBuffer
Get rid of LineTrackingStringBuffer class and instead use the line in…
2 parents dc3398c + 56374ab commit ef0eff7

File tree

5 files changed

+80
-283
lines changed

5 files changed

+80
-283
lines changed

src/Razor/Microsoft.AspNetCore.Razor.Language/src/DefaultRazorSourceLineCollection.cs

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -75,45 +75,31 @@ private int[] GetLineStarts()
7575
// We always consider a document to have at least a 0th line, even if it's empty.
7676
starts.Add(0);
7777

78-
var unprocessedCR = false;
79-
80-
// Length - 1 because we don't care if there was a linebreak as the last character.
8178
var length = _document.Length;
82-
for (var i = 0; i < length - 1; i++)
79+
for (var i = 0; i < length; i++)
8380
{
8481
var c = _document[i];
85-
var isLineBreak = false;
8682

8783
switch (c)
8884
{
8985
case '\r':
90-
unprocessedCR = true;
91-
continue;
86+
if (i + 1 < length && _document[i + 1] == '\n')
87+
{
88+
i++;
89+
}
90+
91+
starts.Add(i + 1);
92+
break;
9293

9394
case '\n':
94-
unprocessedCR = false;
95-
isLineBreak = true;
95+
starts.Add(i + 1);
9696
break;
9797

9898
case '\u0085':
9999
case '\u2028':
100100
case '\u2029':
101-
isLineBreak = true;
101+
starts.Add(i + 1);
102102
break;
103-
104-
}
105-
106-
if (unprocessedCR)
107-
{
108-
// If we get here it means that we had a CR followed by something other than an LF.
109-
// Add the CR as a line break.
110-
starts.Add(i);
111-
unprocessedCR = false;
112-
}
113-
114-
if (isLineBreak)
115-
{
116-
starts.Add(i + 1);
117103
}
118104
}
119105

src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/LineTrackingStringBuffer.cs

Lines changed: 0 additions & 216 deletions
This file was deleted.

src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/ParserContext.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ public ParserContext(RazorSourceDocument source, RazorParserOptions options)
1818
}
1919

2020
SourceDocument = source;
21-
var chars = new char[source.Length];
22-
source.CopyTo(0, chars, 0, source.Length);
2321

24-
Source = new SeekableTextReader(chars, source.FilePath);
22+
Source = new SeekableTextReader(SourceDocument);
2523
DesignTimeMode = options.DesignTime;
2624
FeatureFlags = options.FeatureFlags;
2725
ParseLeadingDirectives = options.ParseLeadingDirectives;

0 commit comments

Comments
 (0)