anchor.diff:    void missingElementKindTableFor(String completionLocation) {
       missingCompletionLocationTable = completionLocation;
     }
  +}
  +
  +extension on protocol.CompletionSuggestion {
  +  /// A shorter description of the suggestion than [toString] provides.
  +  String get description =>
  +      json.encode(toJson()..remove('docSummary')..remove('docComplete'));
   }
   
   extension AvailableSuggestionsExtension on protocol.AvailableSuggestion {
  
positive.code:       print('');
        print('  Rank: $rank');
        print('  Location: ${expected.location}');
        print('  Suggestion: $suggestion');
        print('  Features: $features');
        print('  Top $topSuggestionCount suggestions:');
        for (var i = 0; i < topSuggestionCount; i++) {
          var topSuggestion = topSuggestions[i];
          print('  $i Suggestion: $topSuggestion');
          if (result.listener != null) {
            var feature = result.listener.featureMap[topSuggestion];
            if (feature.isEmpty) {
  
negative.code: // BSD-style license that can be found in the LICENSE file.
  
  import 'dart:async';
  import 'dart:convert';
  import 'dart:io' as io;
  import 'dart:math' as math;
  
  