Kevin Sawicki
3852b7212b
Remove git-status-changed event from Buffer
...
This is now fired as a status-changed event from
the Git class when the checkout completes normally
and the status of the path changes.
2013-03-04 21:43:33 -08:00
Kevin Sawicki
2ec4d558ba
Make project's Git repository a window global
...
This allows it to operate independently of the
project and mirror the availability of the root view
and project.
2013-03-04 21:43:33 -08:00
Kevin Sawicki & Nathan Sobo
5da5bf94b6
Add 'editor:save-debug-snapshot' command. Closes #191 .
...
This saves the state of the rendered lines, the display buffer, the
tokenized buffer, and the buffer to a file. If a problem arises with
rendering, hopefully we can use it to diagnose in which layer things
went awry.
2013-02-22 14:28:04 -07:00
Kevin Sawicki & Nathan Sobo
59d0742c17
Remove Anchor and AnchorRange. They're fully replaced by markers.
...
We're still leaking markers for selections and cursors. We need to
clean that up before merging.
2013-02-05 18:15:48 -07:00
Kevin Sawicki & Nathan Sobo
75e040b73b
Merge remote-tracking branch 'origin/dev' into markers
...
Conflicts:
src/app/editor.coffee
2013-02-05 16:07:05 -07:00
Kevin Sawicki & Nathan Sobo
c893f0c338
Add Buffer.markersForPosition and coerce marker ids to strings
2013-02-05 15:50:54 -07:00
Kevin Sawicki
ad3c18077c
Compare against EOF position when clipping
...
Previously the column could potentially be set to
zero since a Math.min comparison was used for the
length of an already adjusted row.
2013-02-05 12:08:17 -08:00
Nathan Sobo
58450d6a65
Give Buffer only a single observeMarker method
...
It will fire the callback whenever the marker's head or tail position
changes, and it's up to the subscriber to use the information how they
want to.
2013-02-04 20:35:30 -07:00
Nathan Sobo
44e48d42ea
Add Buffer.observeMarkerRange
2013-02-04 11:27:39 -07:00
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
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
30909a8e8f
Move anchor points to buffer; restore invalidated points on undo
2013-01-30 12:23:42 -07:00
Kevin Sawicki
05314ae215
Call delete() from deleteRows()
2013-01-29 17:16:33 -08:00
Kevin Sawicki
4bfa5dd7a0
Remove unneeded Range.fromObject call
2013-01-29 15:40:34 -08:00
Kevin Sawicki
1a04fa31d1
Clip range specified to Buffer.getTextInRange()
2013-01-29 15:35:14 -08:00
Kevin Sawicki
66df860329
💄
2013-01-29 14:58:51 -08:00
Kevin Sawicki & Nathan Sobo
f6fe2bdc97
Don't normalize line endings from Buffer.setText
...
BufferChangeOperation now takes an options hash that
can specify whether line endings should be normalized.
This option is set to false when Buffer.setText is called.
This replaces the previous assignment of lineEndings to []
with a more explicit mechanism.
2013-01-27 16:01:22 -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
a77623c118
Always subscribe to created file
2013-01-22 14:52:08 -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
Kevin Sawicki
62f1155706
Don't prompt to save on close if buffer is opened elsewhere
...
Only prompt to save when the buffer is dirty and the last
open session on it is being destroyed.
2013-01-17 17:25:52 -08:00
Nathan Sobo
b6b8f235fd
Move and rename Buffer's 'anchors-updated' event
2013-01-04 14:03:37 -07:00
Kevin Sawicki & Nathan Sobo
ec13c38c7d
Add EditSession.transact and friends
...
`EditSession.transact` adds more semantics on top of `UndoManager`'s
version pertaining to restoring selections on undo/redo of the
transaction.
2013-01-04 12:42:09 -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
Kevin Sawicki
2971716060
Always use Git instance from project
...
This removes the need to open a new repository
each time a directory-view or file-view is displayed
and also when a status-bar is displayed for a buffer.
2013-01-02 17:21:42 -08: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
Nathan Sobo
4b88a9f5ea
Expanded snippets are destroyed when the cursor leaves a tab stop
...
For this to work, I needed to make the updating of anchors transactional. Now, all anchors are updated and *then* they emit their events. That way when the cursor moves based on the user typing, the tab stop they're in has a chance to expand before we handle the move event. This prevents spurious cancellation of the snippet when typing on a tab stop.
2012-11-29 13:39:00 -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
ada14a1cba
No longer read a File's contents from disk on creation
2012-11-29 11:26:42 -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
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
bfb1742285
ctrl-a on an empty line stays on that same line.
...
Fixes #95
2012-11-19 10:02:31 -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
Kevin Sawicki
3df28ab375
Store Git instance in Buffer
...
Access it from StatusBar for checking
path status and current branch.
2012-11-05 12:03:59 -08:00
Kevin Sawicki
c8258894c7
Add Buffer.checkoutHead()
...
Move implementation from Editor
to Buffer for checking out the
HEAD revision of the current path
2012-11-05 11:52:33 -08:00
Nathan Sobo
aa3405cb2b
Cache the memory contents of Buffer for better performance
2012-11-01 14:09:58 -06:00