Skip to content

Commit ed0be57

Browse files
committed
Fix going out of range in details view
1 parent 5fcf223 commit ed0be57

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

Syndiesis/Core/RoslynExtensions.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public static SyntaxToken DeepestTokenContainingPosition(this SyntaxNode parent,
4949

5050
public static SyntaxToken DeepestTokenContainingSpan(this SyntaxNode parent, TextSpan span)
5151
{
52-
if (!parent.FullSpan.Contains(span))
52+
if (!parent.FullSpan.ContainsStrict(span))
5353
return default;
5454

5555
var current = parent;
@@ -71,7 +71,7 @@ public static SyntaxToken DeepestTokenContainingSpan(this SyntaxNode parent, Tex
7171

7272
public static SyntaxTrivia DeepestTriviaContainingSpan(this SyntaxNode parent, TextSpan span)
7373
{
74-
if (!parent.FullSpan.Contains(span))
74+
if (!parent.FullSpan.ContainsStrict(span))
7575
return default;
7676

7777
var current = parent;
@@ -155,18 +155,22 @@ private static SyntaxTrivia AtPosition(this SyntaxTriviaList list, int position)
155155
}
156156
}
157157

158+
public static bool ContainsStrict(this TextSpan span, TextSpan other)
159+
{
160+
return span.Contains(other.Start)
161+
&& span.Contains(other.End)
162+
;
163+
}
164+
158165
public static SyntaxNodeOrToken ChildThatContainsSpan(this SyntaxNode node, TextSpan span)
159166
{
160167
var fullSpan = node.FullSpan;
161-
if (!fullSpan.Contains(span))
168+
if (!fullSpan.ContainsStrict(span))
162169
return null;
163170

164171
var start = span.Start;
165172
var end = span.End;
166173

167-
if (!fullSpan.Contains(start))
168-
return null;
169-
170174
var startingChild = node.ChildThatContainsPosition(start);
171175
if (startingChild == default)
172176
return default;
@@ -230,7 +234,7 @@ public static SyntaxNodeOrToken ChildThatContainsSpan(this SyntaxNode node, Text
230234
public static SyntaxNode? DeepestNodeContainingSpanIncludingStructuredTrivia(
231235
this SyntaxNode parent, TextSpan span)
232236
{
233-
if (!parent.FullSpan.Contains(span))
237+
if (!parent.FullSpan.ContainsStrict(span))
234238
return null;
235239

236240
var current = parent;

0 commit comments

Comments
 (0)