anchor.diff:    Disposable onDidSave(Action callback) => new Disposable(obj.callMethod("onDidSave", [(e) => callback()]));
     Disposable onDidDestroy(Action callback) => new Disposable(obj.callMethod("onDidDestroy", [callback]));
   
  +  void save() {
  +    obj.callMethod("save");
  +  }
  +
  +  void saveAs(String path) {
  +    obj.callMethod("saveAs", [path]);
  +  }
  +
     void transpose() {
       obj.callMethod("transpose");
     }
  
positive.code: 
    void cutToEndOfLine() {
      obj.callMethod("cutSelectedText");
    }
  
    void foldCurrentRow() {
  
negative.code:   List<Selection> get selections => obj.callMethod("getSelections").map((it) =>
      new Selection(it)
    ).toList();
  
    Disposable observeDecorations(Consumer<Decoration> callback) {
      return new Disposable(obj.callMethod("observeDecorations", [
        (e) => callback(new Decoration(e))
      ]));
    }
  
    Disposable onDidAddDecoration(Consumer<Decoration> callback) {
      return new Disposable(obj.callMethod("onDidAddDecoration", [
        (e) => callback(new Decoration(e))
      ]));
    }
  
    Disposable onDidRemoveDecoration(Consumer<Decoration> callback) {
      return new Disposable(obj.callMethod("onDidRemoveDecoration", [
          (e) => callback(new Decoration(e))
      ]));
    }
  
    Disposable onDidChangePlaceholderText(Consumer<String> callback) {
      return new Disposable(obj.callMethod("onDidChangePlaceholderText", [
        (e) => callback(e)
      ]));
    }
  }
  
  class Selection {
  