pegkit icon indicating copy to clipboard operation
pegkit copied to clipboard

Save deletes undo history in ParseGenApp

Open yepher opened this issue 8 years ago • 1 comments

BUG

When clicking File->Saveor Generate in ParseGenApp the undo history is lost.

This makes it hard to quickly test a new grammar entry and then rollback to pre-edit condition.

The app should maintain undo history while it is running in the same document.

Some research notes on issue

  • NSTextView is bound to grammar as KVO in interface builder
  • NSTextView editable is bound to busy as KVO in interface builder
  • Saving doc caret jumps to top of doc
  • When saving NSTextView looses focus
  • Disable busy logic keeps undo history after generate but still broken for File->Save
- (void)done {
    ...
//    self.busy = NO;
//    [self focusTextView];
    ...
}

- (IBAction)generate:(id)sender {
    ...
   //self.busy = YES;
    ...
}

yepher avatar Nov 19 '16 15:11 yepher

Looking through the code there are defensive copies of NSString which does not make sense to me since NSString is immutable anyway.

I am not exactly clear why there is KVO for grammar<->NSTextView.

yepher avatar Nov 19 '16 16:11 yepher