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