public async Task FindsCommandForParamHintsWithSpaces() { ParameterSetSignatures paramSignatures = await GetParamSetSignatures(FindsParameterSetsOnCommandWithSpacesData.SourceDetails).ConfigureAwait(true); Assert.NotNull(paramSignatures); Assert.Equal("Write-Host", paramSignatures.CommandName); Assert.Single(paramSignatures.Signatures); }
public async Task FindsParameterHintsOnCommand() { ParameterSetSignatures paramSignatures = await GetParamSetSignatures(FindsParameterSetsOnCommandData.SourceDetails).ConfigureAwait(true); Assert.NotNull(paramSignatures); Assert.Equal("Get-Process", paramSignatures.CommandName); Assert.Equal(6, paramSignatures.Signatures.Length); }
public async Task LanguageServiceFindsCommandForParamHintsWithSpaces() { ParameterSetSignatures paramSignatures = await this.GetParamSetSignatures( FindsParameterSetsOnCommandWithSpaces.SourceDetails); Assert.NotNull(paramSignatures); Assert.Equal("Write-Host", paramSignatures.CommandName); Assert.Equal(1, paramSignatures.Signatures.Count()); }
public async Task LanguageServiceFindsParameterHintsOnCommand() { ParameterSetSignatures paramSignatures = await this.GetParamSetSignatures( FindsParameterSetsOnCommand.SourceDetails); Assert.NotNull(paramSignatures); Assert.Equal("Get-Process", paramSignatures.CommandName); Assert.Equal(6, paramSignatures.Signatures.Count()); }
protected async Task HandleSignatureHelpRequest( TextDocumentPosition textDocumentPosition, EditorSession editorSession, RequestContext <SignatureHelp, object> requestContext) { ScriptFile scriptFile = editorSession.Workspace.GetFile( textDocumentPosition.Uri); ParameterSetSignatures parameterSets = await editorSession.LanguageService.FindParameterSetsInFile( scriptFile, textDocumentPosition.Position.Line + 1, textDocumentPosition.Position.Character + 1); SignatureInformation[] signatures = null; int?activeParameter = null; int?activeSignature = 0; if (parameterSets != null) { signatures = parameterSets .Signatures .Select(s => { return(new SignatureInformation { Label = parameterSets.CommandName + " " + s.SignatureText, Documentation = null, Parameters = s.Parameters .Select(CreateParameterInfo) .ToArray() }); }) .ToArray(); } else { signatures = new SignatureInformation[0]; } await requestContext.SendResult( new SignatureHelp { Signatures = signatures, ActiveParameter = activeParameter, ActiveSignature = activeSignature }); }
public async Task <SignatureHelp> Handle(SignatureHelpParams request, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { _logger.LogDebug("SignatureHelp request canceled for file: {0}", request.TextDocument.Uri); return(new SignatureHelp()); } ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri); ParameterSetSignatures parameterSets = await _symbolsService.FindParameterSetsInFileAsync( scriptFile, (int)request.Position.Line + 1, (int)request.Position.Character + 1, _powerShellContextService).ConfigureAwait(false); if (parameterSets == null) { return(new SignatureHelp()); } var signatures = new SignatureInformation[parameterSets.Signatures.Length]; for (int i = 0; i < signatures.Length; i++) { var parameters = new List <ParameterInformation>(); foreach (ParameterInfo param in parameterSets.Signatures[i].Parameters) { parameters.Add(CreateParameterInfo(param)); } signatures[i] = new SignatureInformation { Label = parameterSets.CommandName + " " + parameterSets.Signatures[i].SignatureText, Documentation = null, Parameters = parameters, }; } return(new SignatureHelp { Signatures = signatures, ActiveParameter = null, ActiveSignature = 0 }); }
public async Task <SignatureHelp> Handle(SignatureHelpParams request, CancellationToken cancellationToken) { ScriptFile scriptFile = _workspaceService.GetFile( request.TextDocument.Uri.ToString()); ParameterSetSignatures parameterSets = await _symbolsService.FindParameterSetsInFileAsync( scriptFile, (int)request.Position.Line + 1, (int)request.Position.Character + 1, _powerShellContextService); SignatureInformation[] signatures = s_emptySignatureResult; if (parameterSets != null) { signatures = new SignatureInformation[parameterSets.Signatures.Length]; for (int i = 0; i < signatures.Length; i++) { var parameters = new ParameterInformation[parameterSets.Signatures[i].Parameters.Count()]; int j = 0; foreach (ParameterInfo param in parameterSets.Signatures[i].Parameters) { parameters[j] = CreateParameterInfo(param); j++; } signatures[i] = new SignatureInformation { Label = parameterSets.CommandName + " " + parameterSets.Signatures[i].SignatureText, Documentation = null, Parameters = parameters, }; } } return(new SignatureHelp { Signatures = signatures, ActiveParameter = null, ActiveSignature = 0 }); }