anchor.diff:    static bool get available => js.context['ace'] != null;
   
     StreamSubscription _markerChangeHandler;
  +  workspace.File currentFile;
   
     AceContainer(this.parentElement) {
       _aceEditor = ace.edit(parentElement);
  
positive.code:   }
  
    void _handleMarkerChange(workspace.MarkerChangeEvent event) {
      setMarkers(event.marker);
    }
  
    String _convertMarkerSeverity(int markerSeverity) {
      switch (markerSeverity) {
        case workspace.Marker.SEVERITY_ERROR:
          return ace.Annotation.WARNING;
          break;
        case workspace.Marker.SEVERITY_WARNING:
          return ace.Annotation.WARNING;
          break;
        case workspace.Marker.SEVERITY_INFO:
          return ace.Annotation.WARNING;
          break;
      }
    }
  
negative.code: 
      // Setup the code completion options for the current file type.
      if (file != null) {
        currentFile = file;
        _aceEditor.setOption(
            'enableBasicAutocompletion', path.extension(file.name) != '.dart');
  
        // TODO(ericarnold): Markers aren't shown until file is edited.  Fix.
        setMarkers(currentFile.getMarkers());
  
        if (_markerChangeHandler == null) {
          _markerChangeHandler = file.workspace.onMarkerChange.listen(
              _handleMarkerChange);
  