Nathan Sobo
84bc108fc8
Base LineMap.linesForScreenRows/BufferRows on linesByDelta
2012-02-29 14:06:03 -07:00
Nathan Sobo
78c2ff7801
Express LineMap insertion in terms of spliceByDelta
2012-02-29 13:57:57 -07:00
Corey Johnson & Nathan Sobo
632a2cb64a
Stop listening or trigger events from App
...
It causes DOM errors when you reload.
2012-02-29 12:04:41 -08:00
Nathan Sobo
63ea0baeee
Use position translation to calculate counts
2012-02-29 12:37:47 -07:00
Nathan Sobo
c53438d0e5
Factor position translation into a single method on LineMap
2012-02-29 12:36:04 -07:00
Corey Johnson & Nathan Sobo
be463abe42
Move keymap from app to window
2012-02-29 11:33:15 -08:00
Nathan Sobo
634b90d17a
Remove unused eagerWrap option from position translation
2012-02-29 12:19:16 -07:00
Nathan Sobo
775cc1add2
💄 rename @screenLines to @lineFragments
2012-02-29 12:04:46 -07:00
Nathan Sobo
69531282bf
Remove ability to pass single fragments to LineMap.insertAtBufferRow
2012-02-29 12:00:36 -07:00
Nathan Sobo
7f13f9b946
Folds can start at the same position as their nested folds
2012-02-29 11:47:55 -07:00
Nathan Sobo
20dff5e79d
Can start folds earlier on the same line as other folds.
2012-02-29 11:41:53 -07:00
Nathan Sobo
0510989e1c
💄
2012-02-28 22:46:32 -07:00
Nathan Sobo
f785b6168d
Correctly handle folds that end at the start of a line
...
The falsyness of 0 was again biting us
2012-02-28 22:46:26 -07:00
Nathan Sobo
adea60dd4d
Folds starting on the first line of the buffer can be unfolded
2012-02-28 22:36:29 -07:00
Nathan Sobo
156cfabbf1
LineMap.spliceScreenRow can replace multiple fragments at row 0
...
Subtle bug where the falsiness of 0 was causing line fragments on the
0th row to be skipped
2012-02-28 22:36:12 -07:00
Nathan Sobo
478971f18f
Folds containing nested folds can be unfolded
...
There are still problems with nested folds that start on the same line.
2012-02-28 22:10:52 -07:00
Nathan Sobo
cf850b8e7e
Move the cursor to start of folded range on unfold
2012-02-28 19:53:02 -07:00
Nathan Sobo
17e78f41ae
Clicking a fold placeholder removes the associated fold
...
There are some problems with nested folds that still need to be ironed
out.
2012-02-28 19:46:41 -07:00
Nathan Sobo
da53eeb80d
Folds can start at the beginning of a line
2012-02-28 19:02:26 -07:00
Corey Johnson & Nathan Sobo
c84320b536
window-bootstrap is called when a file is opened.
2012-02-28 17:24:58 -08:00
Corey Johnson & Nathan Sobo
6a2ac7b25e
Fixed Jasmine errors about 'abort not existing on undefined'
...
I'm not sure why these errors occurred though.
2012-02-28 17:23:55 -08:00
Corey Johnson & Nathan Sobo
4b8bf90a20
Merge remote-tracking branch 'origin/folding' into chrome
2012-02-28 16:07:35 -08:00
Corey Johnson & Nathan Sobo
d9697d6ad1
💄
2012-02-28 13:20:55 -08:00
Corey Johnson & Nathan Sobo
b37b45b4b1
atom variable holds all global state and is shared across contexts.
2012-02-28 13:14:35 -08:00
Corey Johnson
5ac7088423
Reloading page resets JS env
2012-02-28 11:36:45 -08:00
Nathan Sobo
65c7a6126e
Style the fold placeholder.
2012-02-28 12:27:35 -07:00
Corey Johnson
b0c5cd6bb3
💄
2012-02-28 11:06:42 -08:00
Corey Johnson
bedc39d137
Close dev tools when window closes.
2012-02-28 11:06:33 -08:00
Corey Johnson
cd3dfa8ad2
Global background page is working.
2012-02-28 10:58:25 -08:00
Corey Johnson
19be5fed04
Clean up Xcode project layout
2012-02-27 17:00:05 -08:00
Corey Johnson & Nathan Sobo
6e46b97a5c
Cursor moves correctly between wrapped lines
...
Added explicit options for controlling line wrapping, and skipping of
atomic tokens to the LineWrap.clipScreenPosition. These are used when
moving right to wrap to the next line.
2012-02-27 16:56:02 -07:00
Corey Johnson
e689d78231
Merge branch 'master' into chrome
2012-02-27 14:09:24 -08:00
Corey Johnson
0845fc15c8
Ignore menu items for now.
2012-02-27 13:57:52 -08:00
Corey Johnson
bc404bfffb
Sort highest score first, using (-1,0,1) as the return value.
2012-02-27 13:56:18 -08:00
Corey Johnson
71cab248cf
rename listFiles to list
2012-02-27 13:42:54 -08:00
Corey Johnson
58259b009d
Remove space from front of absolute.
2012-02-27 13:35:34 -08:00
Corey Johnson
25133fc8d9
Handle copy/paste using $native
2012-02-27 13:08:40 -08:00
Nathan Sobo
f2f401e5a1
Rely on clipScreenPosition in vertical movement methods
...
Before, we were manually clipping the position of the cursor in
vertical movement methods. Now we can just increment / decrement the
row and the position will be clipped when it is assigned.
Also, changed the definition of clip screen position to always 0 out
the column when the row is negative.
2012-02-27 13:16:21 -07:00
Nathan Sobo
f24a045e11
Cursor can move to last row when lines are wrapped
2012-02-27 13:07:59 -07:00
Nathan Sobo
22305f350f
Skip fold placeholders when moving right
...
This relies on a new `eagerWrap` option to clipScreenPosition which
will wrap positions inside of atomic line fragments (which is what fold
placeholders are) to the end of the fragment rather than the beginning.
It also wraps positions beyond the end of a hard line to the next line,
which means Cursor.moveRight just has to increment the column, then
call clipPosition with eager wrap set to true to get all the correct
behavior.
2012-02-27 12:45:26 -07:00
Corey Johnson
8cbf4331e4
Remove references to OSX from fs.coffee and make fs specs pass.
2012-02-27 11:38:25 -08:00
Nathan Sobo
c2cba8bdcd
Add failing spec for rightward movement over folds.
2012-02-27 11:22:20 -07:00
Nathan Sobo
796e24f278
Add Editor.linesForScreenRows and .getScreenLines
...
These just abstract the line wrapper as the source of the screen lines.
2012-02-27 10:31:37 -07:00
Nathan Sobo
8e107359f3
Changes correctly update cursor position when there are folds
2012-02-24 22:08:34 -07:00
Nathan Sobo
0bc510ab58
Properly translate positions when wrapper and folder are composed
...
The key was in LineMap.linesForScreenRows. For each screen line, it
concatenates all line fragments (if there are indeed more than 1) that
traverse that line to return a single line fragment representing the
line. The key was to update the buffer delta for that fragment to
always be 1,0. Because the wrapper is treating the folder as if it's
the buffer, the lines it stores in its map need to traverse only a
single "buffer" line (that's a single line after folds are taken into
account). We may need better language than "screen" and "buffer"
because the wrapper treats the folder as the "buffer" but that's
confusing because it isn't.
2012-02-24 21:56:18 -07:00
Nathan Sobo
35f1243d32
Restore LineWrapper.clipScreenPosition version that passes existing tests.
...
It's still wrong, but I need a test to demonstrate how.
2012-02-24 21:13:34 -07:00
Nathan Sobo
17205cae3f
WIP: Working on position translation. Pretty broken right now.
...
The layered relationship between the line wrapper and the folder is
still not quite ironed out yet. The editor behaves pretty erratically
when text is folded.
2012-02-24 21:05:49 -07:00
Nathan Sobo
33ff32f9a4
Add clipScreenPosition to LineFolder & LineMap
2012-02-24 15:35:28 -07:00
Nathan Sobo
b8ef7685de
LineWrapper translates positions correctly with respect to folding.
2012-02-24 14:20:06 -07:00
Nathan Sobo
63be776837
LineFolder emits 'fold' and 'unfold' events
2012-02-24 14:18:55 -07:00