Пример #1
0
        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]);
        }