public async Task HighlightBasic() { const string code = @" x = 1 def func(x): return x y = func(x) x = 2 "; var analysis = await GetAnalysisAsync(code); var dhs = new DocumentHighlightSource(Services); // Test global scope var highlights1 = await dhs.DocumentHighlightAsync(analysis.Document.Uri, new SourceLocation(8, 1)); highlights1.Should().HaveCount(3); highlights1[0].range.Should().Be(1, 0, 1, 1); highlights1[0].kind.Should().Be(DocumentHighlightKind.Write); highlights1[1].range.Should().Be(6, 9, 6, 10); highlights1[1].kind.Should().Be(DocumentHighlightKind.Read); highlights1[2].range.Should().Be(7, 0, 7, 1); // Test local scope in func() var highlights2 = await dhs.DocumentHighlightAsync(analysis.Document.Uri, new SourceLocation(4, 10)); highlights2.Should().HaveCount(2); highlights2[0].range.Should().Be(3, 9, 3, 10); highlights2[0].kind.Should().Be(DocumentHighlightKind.Write); highlights2[1].range.Should().Be(4, 11, 4, 12); highlights2[1].kind.Should().Be(DocumentHighlightKind.Read); }
public async Task HighlightEmptyDocument() { await GetAnalysisAsync(string.Empty); var dhs = new DocumentHighlightSource(Services); var references = await dhs.DocumentHighlightAsync(null, new SourceLocation(1, 1)); references.Should().BeEmpty(); }