public async Task <CompletionResult[]> GetMemberNamesAsync(string text, CancellationToken ct) { if (_activeEvaluator != null) { return(await _activeEvaluator.GetMemberNamesAsync(text, ct)); } else if (CustomDebugAdapterProtocolExtension.CanUseExperimental()) { var expression = string.Format(CultureInfo.InvariantCulture, "':'.join(dir({0}))", text ?? ""); var tid = _serviceProvider.GetDTE().Debugger.CurrentThread.ID; (bool isSuccessful, string message)result = CustomDebugAdapterProtocolExtension.EvaluateReplRequest(text, tid); if (result.isSuccessful) { var completionResults = result.message .Split(':') .Where(r => !string.IsNullOrEmpty(r)) .Select(r => new CompletionResult(r, PythonMemberType.Generic)) .ToArray(); return(completionResults); } } return(new CompletionResult[0]); }