anchor.diff:    String _createImportedSymbolKey(String name, Uri declaringUri) =>
         '$name/$declaringUri';
   
  -  Future<ErrorOr<List<CompletionItem>>> _getItems(
  +  Future<ErrorOr<List<CompletionItem>>> _getPluginResults(
  +    TextDocumentClientCapabilitiesCompletion completionCapabilities,
  +    HashSet<CompletionItemKind> clientSupportedCompletionKinds,
  +    LineInfo lineInfo,
  +    String path,
  +    int offset,
  +  ) async {
  +    final requestParams = plugin.CompletionGetSuggestionsParams(path, offset);
  +    final pluginResponses = await requestFromPlugins(path, requestParams);
  +
  +    final pluginResults = pluginResponses
  +        .map((e) => plugin.CompletionGetSuggestionsResult.fromResponse(e))
  +        .toList();
  +
  +    return success(_pluginResultsToItems(
  +      completionCapabilities,
  +      clientSupportedCompletionKinds,
  +      lineInfo,
  +      pluginResults,
  +    ).toList());
  +  }
  +
  +  Future<ErrorOr<List<CompletionItem>>> _getServerItems(
       TextDocumentClientCapabilitiesCompletion completionCapabilities,
       HashSet<CompletionItemKind> clientSupportedCompletionKinds,
       bool includeSuggestionSets,
  
positive.code:     }
    }
  
    Future<ErrorOr<List<CompletionItem>>> _getItemsFromPluginsOnly(
      TextDocumentClientCapabilitiesCompletion completionCapabilities,
      HashSet<CompletionItemKind> clientSupportedCompletionKinds,
      LineInfo lineInfo,
      String path,
      int offset,
      CancellationToken token,
    ) async {
      final pluginResults = await _getPluginSuggestions(path, offset);
  
      if (token.isCancellationRequested) {
        return cancelled();
      }
  
      return success(_pluginResultsToItems(
        completionCapabilities,
        clientSupportedCompletionKinds,
        lineInfo,
        pluginResults,
      ).toList());
    }
  
    Future<List<plugin.CompletionGetSuggestionsResult>> _getPluginSuggestions(
      String path,
      int offset,
    ) async {
      final requestParams = plugin.CompletionGetSuggestionsParams(path, offset);
      final responses = await requestFromPlugins(path, requestParams);
  
      return responses
          .map((e) => plugin.CompletionGetSuggestionsResult.fromResponse(e))
          .toList();
    }
  
    Iterable<CompletionItem> _pluginResultsToItems(
      TextDocumentClientCapabilitiesCompletion completionCapabilities,
      HashSet<CompletionItemKind> clientSupportedCompletionKinds,
  
negative.code:               item,
                completionRequest.replacementOffset,
                completionRequest.replacementLength,
              ),
            )
            .toList();
  