public async Task <Hover> Handle(HoverParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile( request.TextDocument.Uri.ToString()); SymbolDetails symbolDetails = await _symbolsService.FindSymbolDetailsAtLocationAsync( scriptFile, (int)request.Position.Line + 1, (int)request.Position.Character + 1); List <MarkedString> symbolInfo = new List <MarkedString>(); Range symbolRange = null; if (symbolDetails != null) { symbolInfo.Add(new MarkedString("PowerShell", symbolDetails.DisplayString)); if (!string.IsNullOrEmpty(symbolDetails.Documentation)) { symbolInfo.Add(new MarkedString("markdown", symbolDetails.Documentation)); } symbolRange = GetRangeFromScriptRegion(symbolDetails.SymbolReference.ScriptRegion); } return(new Hover { Contents = new MarkedStringsOrMarkupContent(symbolInfo), Range = symbolRange }); }
public async Task FindsDetailsForBuiltInCommand() { SymbolDetails symbolDetails = await symbolsService.FindSymbolDetailsAtLocationAsync( GetScriptFile(FindsDetailsForBuiltInCommandData.SourceDetails), FindsDetailsForBuiltInCommandData.SourceDetails.StartLineNumber, FindsDetailsForBuiltInCommandData.SourceDetails.StartColumnNumber).ConfigureAwait(true); Assert.NotNull(symbolDetails.Documentation); Assert.NotEqual("", symbolDetails.Documentation); }
public override async Task <Hover> Handle(HoverParams request, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { _logger.LogDebug("Hover request canceled for file: {0}", request.TextDocument.Uri); return(null); } ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri); SymbolDetails symbolDetails = await _symbolsService.FindSymbolDetailsAtLocationAsync( scriptFile, request.Position.Line + 1, request.Position.Character + 1).ConfigureAwait(false); if (symbolDetails == null) { return(null); } List <MarkedString> symbolInfo = new List <MarkedString>(); symbolInfo.Add(new MarkedString("PowerShell", symbolDetails.DisplayString)); if (!string.IsNullOrEmpty(symbolDetails.Documentation)) { symbolInfo.Add(new MarkedString("markdown", symbolDetails.Documentation)); } Range symbolRange = GetRangeFromScriptRegion(symbolDetails.SymbolReference.ScriptRegion); return(new Hover { Contents = new MarkedStringsOrMarkupContent(symbolInfo), Range = symbolRange }); }