string[] RunTabExpansionInternal(TabExpansionParams message) { string script = @"$__pc_args=@();$input|%{$__pc_args+=$_};if(Test-Path Function:\TabExpansion2){(TabExpansion2 $__pc_args[0] $__pc_args[0].length).CompletionMatches|%{$_.CompletionText}}else{TabExpansion $__pc_args[0] $__pc_args[1]};Remove-Variable __pc_args -Scope 0;"; var input = new object[] { message.Line, message.LastWord }; Collection <PSObject> results = InvokePowerShellNoOutput(script, input); if (results != null) { return(results.Select(item => item?.ToString()) .ToArray()); } return(Array.Empty <string> ()); }
public async Task <string[]> GetExpansionsAsync( string line, string lastWord, CancellationToken token) { var message = new TabExpansionParams { Line = line, LastWord = lastWord }; TabExpansionResult result = await rpc.InvokeWithParameterObjectAsync <TabExpansionResult> ( Methods.TabExpansionName, message, token); return(result.Expansions); }