Corey Johnson
0845fc15c8
Ignore menu items for now.
2012-02-27 13:57:52 -08:00
Corey Johnson
71cab248cf
rename listFiles to list
2012-02-27 13:42:54 -08:00
Corey Johnson
8cbf4331e4
Remove references to OSX from fs.coffee and make fs specs pass.
2012-02-27 11:38:25 -08:00
Corey Johnson
947b06b063
Stop app specs from running.
...
These will be the last thing to implement.
2012-02-22 16:08:11 -08:00
Corey Johnson
b99c4deb49
Fix path to specs. Now spec-suite runs.
2012-02-22 15:08:19 -08:00
Nathan Sobo
c13b90b6b6
Back LineWrapper.bufferPositionForScreenPosition with LineMap
...
Also rename From -> For
2012-02-21 09:46:30 -07:00
Nathan Sobo
8c810bbbcf
Use LineMap in LineWrapper.screenPositionForBufferPosition
...
Also rename from screenPositionFrom… to screenPositionFor… and rename allowEOL parameter (which defaults to false) to eagerWrap (which defaults to true).
2012-02-20 22:14:59 -07:00
Nathan Sobo
a05c0e077f
Add eagerWrap option to LineMap.screenPositionForBufferPosition
...
If eagerWrap is true, the default, then a position at the end of a wrapped line will move to the next screen line. If it's false, it will hang on the end of the screen line. This support the line wrapper, which needs to convert ranges to not wrap (so selections can go to the end of wrapped lines) but otherwise needs to wrap the cursor to the beginning of a wrapped line.
2012-02-20 22:11:15 -07:00
Nathan Sobo
6bda6d4de5
Use LineMap for LineWrapper.screenLineCount
...
Also set screenDelta to [1, 0] for wrapped lines.
2012-02-17 18:27:35 -07:00
Nathan Sobo
3df3f47483
WIP: LineWrapper maintains a LineMap in parallel w/ SpanIndex.
...
Planning to convert method at a time to use the LineMap instead of the SpanIndex.
2012-02-17 18:07:51 -07:00
Nathan Sobo
312bb34c0b
Use LineMap in LineFolder. All specs pass.
2012-02-17 16:52:12 -07:00
Nathan Sobo
d1d48f8fca
WIP: Starting on LineMap
2012-02-16 20:52:12 -07:00
Nathan Sobo
6cc46d959b
Start on rough version of LineFolder.screenPositionForBufferPosition
...
Still pretty ugly and not working quite right.
2012-02-15 19:06:53 -07:00
Nathan Sobo
cdd2b7faf5
Line folder handles folds starting and ending on same line.
2012-02-15 17:11:28 -07:00
Nathan Sobo
6de6852e92
SpanIndex.spanForIndex returns span of elements up to and *including* index.
2012-02-15 17:11:06 -07:00
Corey Johnson & Nathan Sobo
3782119a0a
LineFolder renders a placeholder in place of a folded region.
2012-02-15 15:20:27 -07:00
Corey Johnson & Nathan Sobo
0b5f6c3af0
SpanIndex accepts a single index when inserting multiple values.
2012-02-15 15:19:39 -07:00
Corey Johnson & Nathan Sobo
b5d5b52dc6
💄
2012-02-15 15:19:13 -07:00
Corey Johnson & Nathan Sobo
f30f028868
Add replace and updateSpans to SpanIndex.
2012-02-15 15:18:52 -07:00
Corey Johnson & Nathan Sobo
9324c5a7ee
Add ScreenLine.pushToken and .concat
...
These are used by the LineFolder to splice in a placeholder between folds.
2012-02-15 15:16:50 -07:00
Corey Johnson
a41676e84e
Use event.originalEvent.keyIdentifier instead of event.which.
...
Events match patterns if event.keyStroke == key pattern.
2012-02-15 10:04:02 -08:00
Corey Johnson & Nathan Sobo
f9b7c02b81
Add methods to SpanIndex to support LineWrapper
2012-02-14 16:42:48 -07:00
Corey Johnson & Nathan Sobo
0ee1eeef75
Add SpanIndex, which will support line wrapping and line folding
...
SpanIndex keeps a sorted list of entries, each associated with a span. It can retrieve elements by aggregated span as well as their position in the list.
2012-02-14 15:49:16 -07:00
Nathan Sobo
b0c67741e0
💄
2012-02-13 15:35:06 -07:00
Nathan Sobo
2d3822dc90
LineWrapper exposes screenLinesForRow instead of tokensForScreenRow
...
I *think* this is a good idea. It makes us more consistent in always passing around ScreenLine instances. We'll be able to put nice metadata on these objects, like the buffer line they correspond to etc.
2012-02-13 15:29:16 -07:00
Nathan Sobo
a293a41ac7
Highlighter stores ScreenLine objects instead of token arrays.
2012-02-13 15:24:05 -07:00
Nathan Sobo
c89a8fbb37
Add ScreenLine & refactor LineWrapper to use it.
...
ScreenLine encapsulates the idea of a single line on screen. ScreenLines are first generated by the highlighter. A ScreenLine contains tokens and text, and currently has a method called splitAt which the LineWrapper, and soon the LineFolder, use to fragment the line.
2012-02-13 15:05:33 -07:00
Nathan Sobo
68d08acc1b
Soft-wrap can be enabled before editor is attached to DOM.
2012-02-10 15:18:02 -07:00
Nathan Sobo
432f0e11a8
Merge branch 'softwrap'
2012-02-10 14:33:40 -07:00
Nathan Sobo
12a404fe5d
Re-wrap lines when window size changes.
2012-02-10 13:14:17 -07:00
Nathan Sobo
90e019a4ac
Merge branch 'softwrap' of github.com:github/atom into softwrap
...
Conflicts:
spec/atom/editor-spec.coffee
2012-02-10 12:53:45 -07:00
Nathan Sobo
220deb88e9
Meta-alt-w toggles soft-wrap. Fix insert line element bug.
2012-02-10 12:52:12 -07:00
Corey Johnson
f5da211ad3
mouse clicks should correctly position the cursor on wrapped lines
2012-02-10 11:35:42 -08:00
Nathan Sobo
479b64b654
LineWrapper.setMaxLength emits a change event for all screen lines.
2012-02-10 12:21:42 -07:00
Corey Johnson
418dae11aa
💩
2012-02-10 10:51:53 -08:00
Corey Johnson & Nathan Sobo
9a922b1c2d
Implemented MoveToNextParagraph motion
2012-02-10 10:41:02 -08:00
Nathan Sobo
b70acf2006
Un-F
2012-02-10 11:39:31 -07:00
Nathan Sobo
80d42ddb46
Selections render correctly with wrapped lines.
2012-02-10 11:32:46 -07:00
Nathan Sobo
ea4f122e19
Editor handles changes to wrapped lines.
2012-02-10 11:15:57 -07:00
Nathan Sobo
9fef75cb5f
All tests passing. Editor gets lines from LineWrapper.
...
Line wrapping still not fully functional. Need to fix many aspects of the LineWrapper integration.
2012-02-10 10:50:01 -07:00
Nathan Sobo
5809a59e7a
Add LineWrapper.screenLineCount and fix .splitTokens
...
splitTokens now returns a single empty screenLine when called with an empty buffer line, instead of no screen lines at all.
2012-02-10 10:38:35 -07:00
Nathan Sobo
672dc5a3c0
LineWrapper handles changes that remove lines.
2012-02-09 22:27:14 -07:00
Nathan Sobo
06e71bb42f
💄 Clean up LineWrapper spec
2012-02-09 18:30:57 -07:00
Corey Johnson & Nathan Sobo
0ec6b452ad
LineWrapper handles changes that insert lines
2012-02-09 18:21:17 -07:00
Nathan Sobo
8338d37dde
WIP: LineWrapper change events cover all screen lines.
...
Because the editor only repaints entire lines at a time, the loss of
precision shouldn't matter.
2012-02-09 17:45:18 -07:00
Corey Johnson & Nathan Sobo
8ce3c6ca9d
Emit correct change events when replaced spans multiple screen lines
2012-02-09 15:17:59 -08:00
Corey Johnson & Nathan Sobo
785b800d5b
Add allowEOL param to screenPositionFromBufferPosition
2012-02-09 14:19:54 -08:00
Nathan Sobo
4ea62a83a2
WIP: failing spec for change event causing line to wrap
2012-02-09 13:37:57 -07:00
Nathan Sobo
6c0a0e4bd2
Simplify splitTokens and make it work better too
...
We consider the line as a whole string and decide where we want to
split it before working with tokens. findSplitColumn just looks at the
character at the boundary... if it's a whitespace it looks forward for
a word. If it's not whitespace it looks backward for whitespace. This
ensures we always break on whitespace boundaries if possible.
2012-02-09 12:26:06 -07:00
Nathan Sobo
8232c7b153
Use splitTokens to build screen lines in LineWrapper.
2012-02-09 10:57:25 -07:00