If we do that, how should undo/redo work? Would it undo/redo the changes at the location they were made or at the current cursor location? If we undo/redo at the original location, doesn't that imply a cursor movement? It seems like undo should undo the change at the original location, but redo would make the same change at the new location. Does that sound right?
Can you describe a series of edits and how you would like this to work. I'm sorry if I sound thick, but I want to make sure I precisely understand the behaviors you want so I can file the change and get it right. Obviously, we're missing an important behavior and we must not think it's terribly obvious or we would have added it by version 14.
Ah, I get your question, that had never occurred to me.
I would expect both Undo and Redo to always undo/redo the change in its original location, and move the cursor to whereever it was as of that change.
Overall I am very happy with the SlickEdit Undo model: I have def_undo_with_cursor set to 0, and I found that I actually really like that the cursor movement is in the undo stack.
The trouble comes with the symmetry in the Redo model: if I press Undo and then for example hit End or scroll to see the end of a line (or any other cursor movement) then that cursor movement discards the content redo stack.
I guess that what I'm intuitively expecting is some kind of a partial differentiation between content redo and cursor redo after I've hit Undo, but only until I make a content change.
Here is an example:
1. Type "hello" press Enter
2. Type "big" press Enter
3. Type "world" press Enter
4. Press Undo ("world" disappears cursor moves to after the Enter from step 2)
5. Press Up twice (cursor is now on "hello")
6a. If I press Undo, I want the cursor to go back to where it was after step 4
6b. Or if I press Redo, I really expect "world" to reappear and the cursor to go to where it was after step 3
6c. Or if I type something, then I expect the redo stack to get cleared -- but not until I actually make a content change.
Does that make sense? My reasoning is that content is much more important than cursor movement, and it seems undesirable to discard the more important content redo stack just because I did some kind of cursor movement.
I should soften my original statement -- it's not that SlickEdit has no Redo feature, it's just that my fingers insist on making cursor movements and the Redo stack is almost always empty by the time I decide I need to Redo.