コード例 #1
0
        public async Task Hover_Success()
        {
            await Connect();

            const int line   = 5;
            const int column = 5;
            var       expectedHoverContent = new MarkedStringsOrMarkupContent("123", "456", "789");

            ServerDispatcher.HandleRequest <TextDocumentPositionParams, Hover>(DocumentNames.Hover, (request, cancellationToken) =>
            {
                Assert.NotNull(request.TextDocument);

                Assert.Equal(AbsoluteDocumentPath,
                             DocumentUri.GetFileSystemPath(request.TextDocument.Uri)
                             );

                Assert.Equal(line, request.Position.Line);
                Assert.Equal(column, request.Position.Character);

                return(Task.FromResult(new Hover
                {
                    Contents = expectedHoverContent,
                    Range = new Range
                    {
                        Start = request.Position,
                        End = request.Position
                    }
                }));
            });

            var hover = await LanguageClient.TextDocument.Hover(AbsoluteDocumentPath, line, column);

            Assert.NotNull(hover.Range);
            Assert.NotNull(hover.Range.Start);
            Assert.NotNull(hover.Range.End);

            Assert.Equal(line, hover.Range.Start.Line);
            Assert.Equal(column, hover.Range.Start.Character);

            Assert.Equal(line, hover.Range.End.Line);
            Assert.Equal(column, hover.Range.End.Character);

            Assert.NotNull(hover.Contents);
            Assert.True(expectedHoverContent.HasMarkedStrings);
            Assert.Equal(expectedHoverContent.MarkedStrings
                         .Select(markedString => markedString.Value),
                         hover.Contents.MarkedStrings.Select(
                             markedString => markedString.Value
                             )
                         );
        }
コード例 #2
0
        public async Task Hover_Success()
        {
            const int line   = 5;
            const int column = 5;
            var       expectedHoverContent = new MarkedStringsOrMarkupContent("123", "456", "789");

            var(client, server) = await Initialize(
                client => {
                client.WithCapability(
                    new HoverCapability {
                    ContentFormat = new Container <MarkupKind>(MarkupKind.Markdown, MarkupKind.PlainText),
                }
                    );
            },
                server => {
                server.OnHover(
                    (request, token) => {
                    Assert.NotNull(request.TextDocument);

                    Assert.Equal(
                        AbsoluteDocumentPath,
                        DocumentUri.GetFileSystemPath(request.TextDocument.Uri)
                        );

                    Assert.Equal(line, request.Position.Line);
                    Assert.Equal(column, request.Position.Character);

                    return(Task.FromResult(
                               new Hover {
                        Contents = expectedHoverContent,
                        Range = new Range {
                            Start = request.Position,
                            End = request.Position
                        }
                    }
                               ));
                }, new HoverRegistrationOptions()
                    );
            }
                );

            var hover = await client.TextDocument.RequestHover(
                new HoverParams {
                TextDocument = AbsoluteDocumentPath,
                Position     = (line, column)
            }