anchor.diff:    final Directory directory;
   
     Sdk(this.directory);
  +  Sdk.fromPath(String path) : this(new Directory.fromPath(path));
   
     bool get isValidSdk =>
         directory.getFile('version').existsSync() &&
  
positive.code: 
  final Version _minSdkVersion = new Version.parse('1.11.0');
  
  // TODO: We should not try and auto-locate the sdk when the value’s bad, only
  // when it’s empty.
  
  class SdkManager implements Disposable {
    StreamController<Sdk> _controller = new StreamController.broadcast(sync: true);
  
    Sdk _sdk;
    Disposable _prefObserve;
  
    SdkManager() {
      // Load the existing setting and initiate auto-discovery if necessary.
      _setSdkPath(atom.config.getValue(_prefPath));
      if (!hasSdk) tryToAutoConfigure(complainOnFailure: false);
  
      _prefObserve = atom.config.observe(_prefPath, null, (value) {
        _setSdkPath(value, verbose: true);
      });
    }
  
  
negative.code: 
    Future run() {
      sdkManager.tryToAutoConfigure(complainOnFailure: true);
      return new Future.delayed(new Duration(milliseconds: 500));
    }
  }
  