private async Task <IEnumerable <CompletionItemGroup> > GetGroupsAsync(ICompletionService completionService, CompletionTriggerInfo triggerInfo, CancellationToken cancellationToken)
 {
     if (_documentOpt == null && completionService is ITextCompletionService)
     {
         var textCompletionService = (ITextCompletionService)completionService;
         return(await textCompletionService.GetGroupsAsync(_text, _subjectBufferCaretPosition, triggerInfo, _completionProviders, _options, cancellationToken).ConfigureAwait(false));
     }
     else if (_documentOpt != null)
     {
         return(await completionService.GetGroupsAsync(_documentOpt, _subjectBufferCaretPosition, triggerInfo, _completionProviders, cancellationToken).ConfigureAwait(false));
     }
     else
     {
         return(null);
     }
 }
 private async Task<IEnumerable<CompletionItemGroup>> GetGroupsAsync(ICompletionService completionService, CompletionTriggerInfo triggerInfo, CancellationToken cancellationToken)
 {
     if (_documentOpt == null && completionService is ITextCompletionService)
     {
         var textCompletionService = (ITextCompletionService)completionService;
         return await textCompletionService.GetGroupsAsync(_text, _subjectBufferCaretPosition, triggerInfo, _completionProviders, _options, cancellationToken).ConfigureAwait(false);
     }
     else if (_documentOpt != null)
     {
         return await completionService.GetGroupsAsync(_documentOpt, _subjectBufferCaretPosition, triggerInfo, _completionProviders, cancellationToken).ConfigureAwait(false);
     }
     else
     {
         return null;
     }
 }