anchor.diff:      if (forceOpen || replaceCurrent) {
         EditorTab tab;
   
  +      if ((selectedTab is AceEditorTab) &&
  +          !(selectedTab as AceEditorTab).canBeReplaced) {
  +        replaceCurrent = false;
  +      }
  +
         Editor editor = editorProvider.createEditorForFile(file);
         if (editor is ace.TextEditor) {
           tab = new AceEditorTab(this, editorProvider, editor, file);
  
positive.code:   void focus() => editor.focus();
  
    void resize() => editor.resize();
  
    void fileContentsChanged() => editor.fileContentsChanged();
  }
  
negative.code: class AceEditorTab extends EditorTab {
    final Editor editor;
    final EditorProvider provider;
    bool _canBeReplaced = true;
  
    AceEditorTab(EditorArea parent, this.provider, this.editor, Resource file)
      : super(parent, file) {
      page = editor.element;
      editor.onModification.listen((_) => _canBeReplaced = false);
    }
  
    void activate() {
  