public async Task TestGetDocumentSymbolsAsync__WithoutHierarchicalSupport() { var markup = @"class {|class:A|} { void {|method:M|}() { } }"; var(solution, locations) = CreateTestSolution(markup); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Class, "A", locations["class"].Single()), CreateSymbolInformation(LSP.SymbolKind.Method, "M()", locations["method"].Single(), "A") }; var results = await RunGetDocumentSymbolsAsync(solution, false); AssertJsonEquals(expected, results); }
// TODO - Remove skip & modify once GetWorkspaceSymbolsAsync is updated to support all symbols. // https://github.com/dotnet/roslyn/projects/45#card-20033822 public async Task TestGetWorkspaceSymbolsAsync_Local() { var markup = @"class A { void M() { int {|local:i|} = 1; } }"; using var workspace = CreateTestWorkspace(markup, out var locations); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Variable, "i", locations["local"].Single()) }; var results = await RunGetWorkspaceSymbolsAsync(workspace.CurrentSolution, "i").ConfigureAwait(false); AssertJsonEquals(expected, results); }
public async Task TestGetWorkspaceSymbolsAsync_Method() { var markup = @"class A { void {|method:M|}() { } }"; using var testLspServer = await CreateTestLspServerAsync(markup); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Method, "M", testLspServer.GetLocations("method").Single(), Glyph.MethodPrivate, GetContainerName(testLspServer.GetCurrentSolution(), "A")) }; var results = await RunGetWorkspaceSymbolsAsync(testLspServer, "M").ConfigureAwait(false); AssertSetEquals(expected, results); }
public async Task TestGetWorkspaceSymbolsAsync_Class() { var markup = @"class {|class:A|} { void M() { } }"; using var testLspServer = await CreateTestLspServerAsync(markup); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Class, "A", testLspServer.GetLocations("class").Single(), Glyph.ClassInternal, GetContainerName(testLspServer.GetCurrentSolution())) }; var results = await RunGetWorkspaceSymbolsAsync(testLspServer, "A").ConfigureAwait(false); AssertSetEquals(expected, results); }
// TODO - Remove skip & modify once GetWorkspaceSymbolsAsync is updated to support all symbols. // https://github.com/dotnet/roslyn/projects/45#card-20033822 public async Task TestGetWorkspaceSymbolsAsync_Local() { var markup = @"class A { void M() { int {|local:i|} = 1; } }"; using var testLspServer = await CreateTestLspServerAsync(markup); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Variable, "i", testLspServer.GetLocations("local").Single(), Glyph.Local, GetContainerName(testLspServer.GetCurrentSolution(), "A.M.i")) }; var results = await RunGetWorkspaceSymbolsAsync(testLspServer, "i").ConfigureAwait(false); AssertSetEquals(expected, results); }
public async Task TestGetDocumentSymbolsAsync__WithoutHierarchicalSupport() { var markup = @"class {|class:A|} { void {|method:M|}() { } }"; using var testLspServer = await CreateTestLspServerAsync(markup); var expected = new LSP.SymbolInformation[] { CreateSymbolInformation(LSP.SymbolKind.Class, "A", testLspServer.GetLocations("class").Single(), Glyph.ClassInternal), CreateSymbolInformation(LSP.SymbolKind.Method, "M()", testLspServer.GetLocations("method").Single(), Glyph.MethodPrivate, "A") }; var results = await RunGetDocumentSymbolsAsync <LSP.SymbolInformation[]>(testLspServer); AssertJsonEquals(expected, results); }