anchor.diff:          messageSpan.classes.add('message');
           messageSpan.text = issue.message;
           e.children.add(messageSpan);
  +        if (issue.hasFixes) {
  +          e.classes.add("hasFix");
  +          e.onClick.listen((e) {
  +            // This is a bit of a hack to make sure quick fixes popup
  +            // is only shown if the wrench is clicked,
  +            // and not if the text or label is clicked.
  +            if ((e.target as Element).className == "issue hasFix") {
  +              // codemiror only shows completions if there is no selected text
  +              _jumpTo(issue.line, issue.charStart, 0, focus: true);
  +              editor.showCompletions(onlyShowFixes: true);
  +            }
  +          });
  +        }
         }
   
         _errorsToast.show();
  
positive.code:     _dartDoc = editor.document;
      _htmlDoc = editor.createDocument(content: '', mode: 'html');
      _cssDoc = editor.createDocument(content: '', mode: 'css');
  
      _dartDoc.onChange.listen((_) => _dartDirtyController.add(null));
      _htmlDoc.onChange.listen((_) => _htmlDirtyController.add(null));
      _cssDoc.onChange.listen((_) => _cssDirtyController.add(null));
  
      _createReconciler(_cssDoc, _cssReconcileController, 250);
      _createReconciler(_dartDoc, _dartReconcileController, 1250);
  
negative.code:       ..listen();
    }
  
    _handleAutoCompletion(KeyboardEvent e) {
      if (context.focusedEditor == 'dart' && editor.hasFocus) {
        if (e.keyCode == KeyCode.PERIOD) {
          editor.showCompletions(autoInvoked: true);
        }
      }
  
      if (!options.getValueBool('autopopup_code_completion') ||
          _isCompletionActive ||
          !editor.hasFocus) {
        return;
      }
  
      if (context.focusedEditor == 'dart') {
        RegExp exp = new RegExp(r"[A-Z]");
        if (exp.hasMatch(new String.fromCharCode(e.keyCode))) {
          editor.showCompletions(autoInvoked: true);
        }
      } else if (context.focusedEditor == "html") {
        // TODO: Autocompletion for attributes.
        if (printKeyEvent(e) == "shift-,") {
          editor.showCompletions(autoInvoked: true);
        }
      } else if (context.focusedEditor == "css") {
        RegExp exp = new RegExp(r"[A-Z]");
        if (exp.hasMatch(new String.fromCharCode(e.keyCode))) {
          editor.showCompletions(autoInvoked: true);
        }
      }
    }
    
    void _handleRun() {
      _clearOutput();
      ga.sendEvent('main', 'run');
  