anchor.diff:     * be sent.
      */
     final ServerCommunicationChannel channel;
  +
  +  /**
  +   * The object used to manage sending a subset of notifications to the client.
  +   * The subset of notifications are those to which plugins may contribute.
  +   * This field is `null` when the new plugin support is disabled.
  +   */
  +  final NotificationManager notificationManager = null;
   
     /**
      * The [ResourceProvider] using which paths are converted into [Resource]s.
  
positive.code:     hide AnalysisOptions, Element;
  import 'package:analysis_server/src/analysis_logger.dart';
  import 'package:analysis_server/src/channel/channel.dart';
  import 'package:analysis_server/src/computer/new_notifications.dart';
  import 'package:analysis_server/src/context_manager.dart';
  import 'package:analysis_server/src/operation/operation.dart';
  import 'package:analysis_server/src/operation/operation_analysis.dart';
  import 'package:analysis_server/src/operation/operation_queue.dart';
  import 'package:analysis_server/src/plugin/server_plugin.dart';
  import 'package:analysis_server/src/server/diagnostic_server.dart';
  import 'package:analysis_server/src/services/correction/namespace.dart';
  import 'package:analysis_server/src/services/index/index.dart';
  
negative.code:     analysisServer.schedulePerformAnalysisOperation(context);
    }
  
    List<server.HighlightRegion> _computeHighlightRegions(CompilationUnit unit) {
      if (analysisServer.options.useAnalysisHighlight2) {
        return new DartUnitHighlightsComputer2(unit).compute();
      } else {
        return new DartUnitHighlightsComputer(unit).compute();
      }
    }
  
    String _computeLibraryName(CompilationUnit unit) {
      for (Directive directive in unit.directives) {
        if (directive is LibraryDirective && directive.name != null) {
          return directive.name.name;
        }
      }
      for (Directive directive in unit.directives) {
        if (directive is PartOfDirective && directive.libraryName != null) {
          return directive.libraryName.name;
        }
      }
      return null;
    }
  
    server.AnalysisNavigationParams _computeNavigationParams(
        String path, CompilationUnit unit) {
      NavigationCollectorImpl collector = new NavigationCollectorImpl();
      computeDartNavigation(collector, unit, null, null);
      collector.createRegions();
      return new server.AnalysisNavigationParams(
          path, collector.regions, collector.targets, collector.files);
    }
  
    List<Occurrences> _computeOccurrences(CompilationUnit unit) {
      OccurrencesCollectorImpl collector = new OccurrencesCollectorImpl();
      addDartOccurrences(collector, unit);
      return collector.allOccurrences;
    }
  
    server.AnalysisOutlineParams _computeOutlineParams(
        String path, CompilationUnit unit, LineInfo lineInfo) {
      // compute FileKind
      SourceKind sourceKind = unit.directives.any((d) => d is PartOfDirective)
          ? SourceKind.PART
          : SourceKind.LIBRARY;
      server.FileKind fileKind = server.FileKind.LIBRARY;
      if (sourceKind == SourceKind.LIBRARY) {
        fileKind = server.FileKind.LIBRARY;
      } else if (sourceKind == SourceKind.PART) {
        fileKind = server.FileKind.PART;
      }
      // compute library name
      String libraryName = _computeLibraryName(unit);
      // compute Outline
      DartUnitOutlineComputer computer =
          new DartUnitOutlineComputer(path, lineInfo, unit);
      server.Outline outline = computer.compute();
      return new server.AnalysisOutlineParams(path, fileKind, outline,
          libraryName: libraryName);
    }
  
    /**
     * Run [f] in a new [Future].
     *
  