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 ) ); }
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) }