anchor.diff:  
   import 'package:analysis_server_lib/analysis_server_lib.dart'
       hide Position, Location;
  +import 'package:logging/logging.dart';
   
   import 'apply_change.dart';
   import 'args.dart';
  
positive.code:   final _files = new FileCache();
  
    final _fileVersions = <String, int>{};
  
    AnalysisServerAdapter(this._server, this._args) {
      _listeners();
  
negative.code:   Future<Null> textDocumentDidChange(VersionedTextDocumentIdentifier documentId,
        List<TextDocumentContentChangeEvent> changes) async {
      var path = _filePath(documentId.uri);
      if (_fileVersions[path] > documentId.version) {
        _log.warning('Ignoring file change for $path at version '
            '${documentId.version} since last seen in ${_fileVersions[path]}');
        return;
      }
      _fileVersions[path] = documentId.version;
      if (changes.length == 1 && changes.first.range == null) {
        _files[path] = findLineLengths(changes.single.text);
  