anchor.diff:  }
   
   main() async {
  -  var client = new AnalysisClient(new ProcessAnalysisConnection());
  +  var client = new AnalysisClient(new ProcessAnalysisChannel());
     await client.initialize();
   
     var version = await client.getServerVersion();
     print("Server Version: ${version}");
   
  -  var rscript = new File(Platform.script.toFilePath()).absolute;
  -  var root = rscript.parent.parent;
  -
  -  client.onAnalysisErrors.listen((e) {
  -    var errors = e.errors;
  -    for (var error in errors) {
  -      print("Analysis Error in ${e.file}");
  -      print("- Type: ${error.type.name}");
  -      print("- Severity: ${error.severity.name}");
  -      print("- Location: ${error.location}");
  -      print("- Message: ${error.message}");
  -    }
  +  var root = new Directory("/Users/alex/DirectCode/Atom");
  +
  +  await client.setAnalysisRoots(included: [root.path]);
  +
  +  (await client.getCompletionSuggestions("${root.path}/test/badger.pkg.dart", 53)).listen((CompletionResults results) {
  +    for (var r in results.results) {
  +      print("${r.completion}");
  +    }
  +  }).onDone(() {
  +    print("Completions Done");
     });
  -
  -  await client.setAnalysisRoots(included: [root.path]);
  -}
  +}
  
positive.code: import "dart:io";
  import "package:path/path.dart" as pathlib;
  
  abstract class AnalysisConnection {
    Future initialize();
    void send(Map<String, dynamic> json);
    Stream<Map<String, dynamic>> stream();
  
negative.code:   String toString() {
      var msg = "${message}\nError Code: ${code}";
      if (stacktrace != null) {
        msg += "\n\nServer Stacktrace:\n${stacktrace}";
      }
  
      return msg;
  