This commit is contained in:
nub31
2025-11-03 17:10:15 +01:00
parent 7d49bf43b7
commit 47fef6bc9f
7 changed files with 175 additions and 210 deletions

View File

@@ -16,8 +16,8 @@ public static class AstExtensions
return new Location
{
Uri = node.Tokens.First().Span.FilePath,
Range = new Range(node.Tokens.First().Span.Start.Line - 1, node.Tokens.First().Span.Start.Column - 1, node.Tokens.Last().Span.End.Line - 1, node.Tokens.Last().Span.End.Column - 1)
Uri = node.Tokens.First().Span.SourcePath,
Range = new Range(node.Tokens.First().Span.StartLine - 1, node.Tokens.First().Span.StartColumn - 1, node.Tokens.Last().Span.EndLine - 1, node.Tokens.Last().Span.EndColumn - 1)
};
}
@@ -25,20 +25,17 @@ public static class AstExtensions
{
return new Location
{
Uri = token.Span.FilePath,
Range = new Range(token.Span.Start.Line - 1, token.Span.Start.Column - 1, token.Span.End.Line - 1, token.Span.End.Column - 1)
Uri = token.Span.SourcePath,
Range = new Range(token.Span.StartLine - 1, token.Span.StartColumn - 1, token.Span.EndLine - 1, token.Span.EndColumn - 1)
};
}
public static bool ContainsPosition(this Token token, int line, int character)
{
var start = token.Span.Start;
var end = token.Span.End;
var startLine = start.Line - 1;
var startChar = start.Column - 1;
var endLine = end.Line - 1;
var endChar = end.Column - 1;
var startLine = token.Span.StartLine - 1;
var startChar = token.Span.StartColumn - 1;
var endLine = token.Span.EndLine - 1;
var endChar = token.Span.EndColumn - 1;
if (line < startLine || line > endLine) return false;
@@ -69,13 +66,12 @@ public static class AstExtensions
return false;
}
var start = node.Tokens.First().Span.Start;
var end = node.Tokens.Last().Span.End;
var span = node.Tokens.First().Span;
var startLine = start.Line - 1;
var startChar = start.Column - 1;
var endLine = end.Line - 1;
var endChar = end.Column - 1;
var startLine = span.StartLine - 1;
var startChar = span.StartColumn - 1;
var endLine = span.EndLine - 1;
var endChar = span.EndColumn - 1;
if (line < startLine || line > endLine) return false;
@@ -111,8 +107,8 @@ public static class AstExtensions
return compilationUnit
.SelectMany(x => x.DescendantsAndSelf())
.Where(n => n.ContainsPosition(line, character))
.OrderBy(n => n.Tokens.First().Span.Start.Line)
.ThenBy(n => n.Tokens.First().Span.Start.Column)
.OrderBy(n => n.Tokens.First().Span.StartLine)
.ThenBy(n => n.Tokens.First().Span.StartColumn)
.LastOrDefault();
}
}