Commit Graph

37 Commits

Author SHA1 Message Date
Corey Johnson & Nathan Sobo
c3fe9aa0b3 Implement refcounting scheme on Buffer 2012-07-17 14:24:33 -06:00
Corey Johnson & Nathan Sobo
926067164d Buffer updates anchors when it changes instead of EditSession 2012-07-13 17:42:41 -06:00
Corey Johnson & Nathan Sobo
9eae88e97b Anchors and AnchorRanges are added to the buffer.
Also: Destroying an AnchorRange removes it from the EditSession / Buffer.
2012-07-13 17:18:10 -06:00
Corey Johnson & Nathan Sobo
9f9c636883 When snippet expansion is undone, the snippet is destroyed
This is still in progress. You can't *redo* snippet expansion and restore tab stops. Also, this commit performs all changes associated with snippet expansion in a transaction.
2012-07-06 12:10:14 -06:00
Corey Johnson & Nathan Sobo
6177b46cf9 Restore selection on active edit session when undoing/redoing
The `do`, `undo`, and `redo` methods on operations take an optional editSession argument, which can be used to determine the context in which they are being run. We restore selections on that edit session instead of the session where the operations originally occurred.
2012-07-06 11:42:07 -06:00
Nathan Sobo
42eefb49a9 Add UndoManager.prototype.transact
The `transact` method takes a function and batches all operations within that function as a single transaction to be undone and redone. The edit session now uses generic operations to restore selection state around transactions. The `undo` and `do` methods on operations are now optional. In addition, the undo manager now supports an optional `redo` method on an operation for code that should *only* be run on redo, and not when the operation is initially pushed. This is used by edit session to restore selection state after redo.
2012-07-05 20:04:16 -06:00
David Graham & Nathan Sobo
c053be3394 Rename UndoManager.perform -> pushOperation
I'm about to expand the types of operations so that some don't always have a `do` method. Therefore `perform` is a misnomer.
2012-07-05 19:46:08 -06:00
David Graham & Nathan Sobo
6fbd019b1d Pull out a BufferChangeOperation, which Buffer.change sends to UndoManager 2012-07-05 19:07:12 -06:00
David Graham & Nathan Sobo
822b85a8be Make @probablycorey happier 2012-07-05 17:18:11 -06:00
Nathan Sobo
2ddd5820f7 💄 Rename lastLine -> getLastLine 2012-07-04 12:59:54 -06:00
Corey Johnson & Nathan Sobo
b59bd4bc7b Saving a buffer does not trigger a "contents-change" event 2012-07-02 17:48:30 -07:00
Corey Johnson
10bfc56624 When a Buffer is created, the initial call to setText is not treated as an undoable change. 2012-07-02 11:39:22 -07:00
Corey Johnson
ae34611d2a Changes to buffer (via external process) do set buffer as modified. 2012-07-02 09:13:05 -07:00
Corey Johnson
c3d7d3566f Buffer listens for changes to file and triggers 'contents-change' event 2012-06-29 15:09:31 -07:00
Corey Johnson
3dd9253bc5 When Buffer's path changes, stop listening for events on former path 2012-06-29 15:09:01 -07:00
Corey Johnson
8e7a8836cd Unmodified buffer updates contents when file changes outside of atom. 2012-06-29 15:09:01 -07:00
Nathan Sobo
4c8aeb16bb Merge branch 'master' into snippets
Conflicts:
	src/app/window.coffee
2012-06-20 17:11:25 -06:00
Corey Johnson & Nathan Sobo
4659fd7dc3 Project.open returns an editSession instead of a buffer.
First step in removing the coupling of Editor and Buffer. Editor should get all information about the active buffer from the activeEditSession.
2012-06-20 09:28:22 -07:00
David Graham & Nathan Sobo
5b8cc8a6b6 Snippets matching the cursor's word prefix are inserted on 'tab' events 2012-06-19 17:47:09 -06:00
Nathan Sobo
5f20b09284 Remove Buffer.proto.getMode. All ace interaction should be mediated by LanguageMode 2012-06-13 18:09:28 -06:00
Corey Johnson
b841a04093 Don't serialize pathless buffer text 2012-06-12 15:12:58 -07:00
Corey Johnson
1fb8852fc3 Saving a buffer sets its modified flag to false 2012-06-12 11:29:38 -07:00
Corey Johnson
9339791260 Set modified flag to true when there is a buffer change. 2012-06-12 10:52:11 -07:00
Kevin Sawicki
f890b326e2 Use xml mode when extension is xml 2012-06-11 14:48:52 -07:00
Kevin Sawicki
9172b23e8f Use java mode when extension is java 2012-06-11 14:48:52 -07:00
Corey Johnson
30d07fd1a0 Rename Buffer.numLines to Buffer.getLineCount 2012-06-01 11:25:58 -07:00
Corey Johnson & Nathan Sobo
13416bd6f2 Add Buffer.logLines() 2012-05-22 18:58:11 -07:00
Corey Johnson & Nathan Sobo
5e1d7c774c Serialized Editor state no longer contains Buffer objects 2012-04-18 15:57:58 -07:00
Nathan Sobo
0a9e14a408 Buffers emit 'before-save' and 'after-save' events during save 2012-04-17 17:45:40 -06:00
Corey Johnson & Nathan Sobo
95a2be5fa5 scanInRange does not call positionForCharacterIndex for a match until the given iterator visits it.
Optimization to speed up buffer scanning in large files.
2012-04-09 16:30:32 -07:00
Corey Johnson & Nathan Sobo
6db9360c5f Make scanInRange iterative instead of recursive 2012-04-09 12:03:55 -07:00
Corey Johnson & Nathan Sobo
a21082395d 💄 2012-04-09 11:41:04 -07:00
Nathan Sobo
9da86982a8 WIP: Set cursor position correctly after inserting a hard tab.
Tests pass but still some issues on repeated tab insertion.
2012-04-06 13:03:30 -06:00
Nathan Sobo
cbeb351de4 Restore selections after undo
This only restores changes made via the CompositeSelection… this makes sense because this is the only way to make changes interactively. Any other changes are made via the api or a command line and should not modify selections when they are undone. Still need to test restoration after redo.
2012-04-04 18:04:32 -06:00
Corey Johnson & Nathan Sobo
48b4008cab Changes made with multiple cursors are undone/redone in parallel 2012-04-04 14:21:03 -06:00
Nathan Sobo
fb915f9c1c 💄 2012-04-03 15:24:11 -06:00
Corey Johnson
1efb712fd3 Rename App.coffee to Atom.coffee. This also required moving src/atom,spec/atom to src/app,spec/app 2012-04-03 10:33:24 -07:00