Commit Graph

77 Commits

Author SHA1 Message Date
Nathan Sobo
1bbb954239 EditSession specs passing after converting Selection to use markers
Still a bit of a mess though...
2013-01-31 18:26:29 -07:00
Nathan Sobo
628701fd3a Finish converting cursors to use markers.
The model layer works at least… haven't tested the view. Will test out
the view once I get the selection model working.
2013-01-31 15:52:28 -07:00
Nathan Sobo
ec521b3fd3 Add ability to cancel marker head position observations 2013-01-31 14:11:28 -07:00
Nathan Sobo
bc44540b10 Start adding ability to observe marker head positions 2013-01-31 14:00:01 -07:00
Nathan Sobo
1d1c613f5b Allow buffer marker head and tail positions to be manipulated 2013-01-30 22:16:08 -07:00
Nathan Sobo
5dd142b966 Allow markers to be created in a reverse orientation
This means that the head of the marker precedes its tail in the buffer.
This will be important if we want to build selections on top of markers.
2013-01-30 21:44:57 -07:00
Nathan Sobo
d8ffdcd6bd Allow markers to be created with just a position
When a marker is created with just a position, it only gets a head
position and has no tail position.
2013-01-30 21:37:57 -07:00
Nathan Sobo
e02f9cd830 Rename Buffer.createMarker to markRange 2013-01-30 17:41:04 -07:00
Nathan Sobo
dfe0cad217 Replace anchor point/range with a single concept: markers
A "marker" is basically like a persistent selection/cursor composite,
having a head and a tail. The "head" is like the cursor in a selection,
and the "tail" is like the part of the selection that doesn't move. My
goal is for markers to be the only construct used to track regions
in the buffer. I want to replace anchors with them.
2013-01-30 16:52:09 -07:00
Nathan Sobo
bcd9d5d2b9 Rename addAnchorPoint to createAnchorPoint 2013-01-30 13:57:39 -07:00
Nathan Sobo
113a8fa279 Merge remote-tracking branch 'origin/dev' into better-anchors
Conflicts:
	src/app/cursor.coffee
	src/app/editor.coffee
2013-01-30 12:59:04 -07:00
Nathan Sobo
ec3a1a80cd Restore invalidated anchor points on undo/redo of a change 2013-01-30 12:48:29 -07:00
Nathan Sobo
30909a8e8f Move anchor points to buffer; restore invalidated points on undo 2013-01-30 12:23:42 -07:00
Kevin Sawicki
1a04fa31d1 Clip range specified to Buffer.getTextInRange() 2013-01-29 15:35:14 -08:00
Kevin Sawicki & Nathan Sobo
98614592af Store line endings on a per-line basis in Buffer
The line ending for each line is recorded and reused
when lines are modified or inserted.

Closes #166
2013-01-27 16:01:22 -08:00
Kevin Sawicki
bc3646f180 💄 2013-01-23 16:24:40 -08:00
Kevin Sawicki
39fd4f7059 Remove extra subscribeToFile() call
This was causing an event listener to leak
on each call to save()

Closes #152
2013-01-22 14:44:34 -08:00
Nathan Sobo
0a08d03c68 Rename Buffer, TokenizedBuffer, and Selection events 2013-01-04 13:59:11 -07:00
Kevin Sawicki & Nathan Sobo
428900fdba Rename File 'remove' & 'move' events to passive voice
'remove' -> 'removed'
'move' -> 'moved'
2013-01-04 11:25:46 -07:00
Kevin Sawicki & Nathan Sobo
8e835acea4 Rename Buffer 'will-save' event to 'will-be-saved' 2013-01-04 11:25:45 -07:00
Nathan Sobo
5a409dde3c Rename File and Directory 'contents-change' to 'contents-changed' 2013-01-03 18:16:19 -07:00
Nathan Sobo
6d9402b5c9 Rename Anchor and Buffer events to passive-voice scheme 2013-01-02 13:48:10 -07:00
Nathan Sobo
bb710d0ae0 Buffer.save only writes to disk if the buffer is modified
This prevents autosave from writing unmodified buffers to disk, which
was causing the tree view to rebuild directory contents based on the
write event just when switching tabs.
2013-01-02 04:23:03 -07:00
Nathan Sobo
acc0503684 Merge remote-tracking branch 'origin/master' into config
Conflicts:
	src/app/keymap.coffee
	src/extensions/outline-view/src/keymap.coffee
	src/extensions/outline-view/src/tag-reader.coffee
	src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee
	src/packages/fuzzy-finder/src/fuzzy-finder.coffee
2012-12-18 20:32:05 -07:00
Corey Johnson
69485724cd Buffer emits a contents-modified event when it's contents differ from disk.
Including when the Buffer's file is removed via another process.
2012-11-29 12:05:05 -08:00
Corey Johnson
ae00e888fd un-f buffer spec 2012-11-29 10:36:56 -08:00
Corey Johnson
04c4c45190 💄 2012-11-29 08:53:39 -08:00
Corey Johnson & Nathan Sobo
e98b4f9a9b Use file contents instead of md5 to determine disk change 2012-11-28 17:16:44 -08:00
Corey Johnson & Nathan Sobo
ac84a8ab0a Destroy buffer to avoid leaking a path watch 2012-11-28 17:13:32 -07:00
Corey Johnson & Nathan Sobo
d6009df44e Buffers retain path when file is deleted and can be re-saved
Path watching resumes once the file is saved again. This commit allows files to be created for as-yet nonexistent paths. We won't call `$native.watchPath` until we have at least 1 subscription to the file in JS and the file exists on disk.

Also, we moved execution of the path watcher callbacks until after the callbacks data structure is updated in order to avoid confusing behavior in specs.
2012-11-28 16:55:10 -07:00
Corey Johnson & Nathan Sobo
eb0414f4e7 Emit a contents-conflicted` event instead of contents-change-on-disk 2012-11-28 15:21:12 -07:00
Corey Johnson & Nathan Sobo
d5d4751776 Don't set Buffer's file to null when the file is deleted (retain path) 2012-11-28 13:40:37 -07:00
Corey Johnson & Nathan Sobo
f9563f5e55 Fix PathWatcher failures
Now when a file is removed, we always remove its subscriptions and its kevent.
2012-11-19 13:16:14 -07:00
Corey Johnson
d9a3fbd910 BufferSpec doesn't double release buffers 2012-11-15 13:16:12 -08:00
Nathan Sobo
4a84c5f8f9 Add 'stopped-changing' event to buffer. Fires 300ms after last change.
This will be used by the status bar and other expensive code that needs to respond to the buffer changing, but that we don't want running on every single keystroke when the user is typing quickly.
2012-11-14 15:33:44 -07:00
Nathan Sobo
632bba5609 Kill dead code in spec 2012-11-14 15:13:50 -07:00
Corey Johnson
dbf8639375 Rename anchor.ignoreEqual to anchor.ignoreChangesStartingOnAnchor 2012-10-31 14:27:31 -07:00
Corey Johnson
84ea1017f4 Anchor.ignoreEqual works properly
The anchor ignores buffer changes when ignoreEqual is true and the oldRange.start == anchor.position
2012-10-31 14:27:21 -07:00
Corey Johnson
7793a04172 Filled in anchor specs 2012-10-31 14:27:07 -07:00
Kevin Sawicki
2531665570 Add Buffer.isEmpty()
To be used by Buffer.isModified() for when the
buffer has no backing file
2012-10-27 08:57:55 -07:00
Kevin Sawicki
acb5207d28 Treat file-less buffers as unmodified when empty 2012-10-26 13:56:21 -07:00
Corey Johnson & Nathan Sobo
adf00b60f3 Detect softTabs/hardTabs when an EditSession is created 2012-10-26 12:20:14 -06:00
Nathan Sobo
d310297fe7 Radically simplify the definition of "modified" for buffers
Now, we maintain md5 signatures for the on-disk and in-memory contents of the buffer. Whenever either contents change, we recompute the signature and store it on the buffer. We can tell if the buffer is modified by comparing these signatures. When the disk contents change, we compare the memory and disk signatures *before* recomputing the disk signature to determine whether to update the buffer or mark it as a conflict.
2012-10-25 13:08:38 -06:00
Corey Johnson
533ad84d03 Buffer.scanInRange can do a case-insensitive search 2012-09-25 16:30:44 -07:00
Corey Johnson & Nathan Sobo
12b06ddf0c Get spec suite running (lots of failures) 2012-08-27 17:36:36 -05:00
Nathan Sobo
c2c8724ad0 Initial commit 2012-08-10 13:32:19 -06:00
Nathan Sobo
1886b2a48e Merge branch 'master' of github.com:github/atom into global-find
Conflicts:
	spec/app/buffer-spec.coffee
	spec/extensions/command-panel-spec.coffee
	spec/extensions/tree-view-spec.coffee
	src/app/buffer.coffee
	src/extensions/command-panel/command-panel.coffee
	src/extensions/command-panel/keymap.coffee
2012-07-25 13:38:12 -06:00
Nathan Sobo
454557b502 Merge branch 'master' into global-find
Conflicts:
	spec/extensions/command-panel-spec.coffee
	src/app/buffer.coffee
	src/extensions/command-panel/command-panel.coffee
	src/extensions/command-panel/keymap.coffee
2012-07-24 17:59:49 -06:00
Corey Johnson
e491fe7bb7 Clean up after tests 2012-07-24 10:52:42 -07:00
Corey Johnson & Nathan Sobo
239fd2f9e6 buffer triggers a 'path-change' event when a file is moved or removed 2012-07-24 10:34:30 -07:00