예제 #1
0
        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);
        }
예제 #5
0
        // 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);
        }
예제 #6
0
        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);
        }