Nathan Sobo
5c2eb053d8
Extract an EditorScrollView component
2014-04-22 17:09:42 -06:00
Nathan Sobo
f1f93f2f70
Spy on setInterval explicitly when needed in EditorComponent spec
2014-04-22 17:09:41 -06:00
Nathan Sobo
495b1571ca
Add 'editor' class to ReactEditorView wrapper for backward compatibility
2014-04-22 17:09:40 -06:00
Nathan Sobo
59709a92ba
Include SpacePen wrapper view in spec
...
During the transition to React, it will be easier if the EditorComponent
assumes it's rendered inside the ReactEditorView. This will make it
easier to test compatibility with existing editor APIs.
2014-04-22 17:09:40 -06:00
Nathan Sobo
022f5ca219
Replace previous character when inserting accented characters
2014-04-22 17:09:40 -06:00
Nathan Sobo
96ebb9bf03
Correctly position cursor on mousedown when editor is scrolled left
2014-04-22 17:09:40 -06:00
Nathan Sobo
95b24fb933
Position the hidden input on the most recent cursor when in view
...
We won't position the hidden input out of the scroll view's bounds to
prevent Chromium's autoscrolling behavior.
2014-04-22 17:09:40 -06:00
Nathan Sobo
9bdc78df2e
Correctly render lines containing only whitespace
2014-04-22 17:09:40 -06:00
David Graham & Nathan Sobo
241731f9c8
Render indent guides on empty lines
2014-04-22 17:09:39 -06:00
David Graham & Nathan Sobo
1c48f60e42
Render indent guide for react editors on non-empty lines
2014-04-22 17:09:39 -06:00
David Graham & Nathan Sobo
985662b8f0
Only scroll in one direction a time with the mousewheel
2014-04-22 17:09:39 -06:00
David Graham & Nathan Sobo
cfdea7e73f
Update the scrollLeft of the model when the horizontal scrollbar changes
2014-04-22 17:09:39 -06:00
David Graham & Nathan Sobo
48135a1e8d
Update the horizontal scrollbar when scrollLeft changes in the model
2014-04-22 17:09:38 -06:00
Nathan Sobo
84bb624b5b
Set x-transform of .scroll-view-content based on the model's scrollLeft
2014-04-22 17:09:38 -06:00
Nathan Sobo
486a7937b5
Render • instead of line number for soft-wrapped lines
2014-04-22 17:09:38 -06:00
Nathan Sobo
1162af61ed
Render a basic gutter
2014-04-22 17:09:38 -06:00
Nathan Sobo
0fd8c5441c
💄 spec organization
2014-04-22 17:09:38 -06:00
Nathan Sobo
f5551929d8
Account for half-visible lines in DisplayBuffer::getVisibleRowRange
...
We need to add 1 to the editor's height in lines, because it's possible
to have *partially visible* lines at the top and the bottom.
2014-04-22 17:09:38 -06:00
Nathan Sobo
4a501a7c31
Fix incorrect triple-click spec
2014-04-22 17:09:38 -06:00
Nathan Sobo
d0c61eb2be
Pause cursor blinking when the cursor moves
2014-04-22 17:09:38 -06:00
Nathan Sobo
2b0ef68255
Blink cursors always. Still need to pause blinking when moving.
2014-04-22 17:09:37 -06:00
Nathan Sobo
f60f9b9f4f
Add 'is-focused' class to editor when hidden input is focused
2014-04-22 17:09:37 -06:00
Nathan Sobo
4f10500102
Select lines on triple-click
2014-04-22 17:09:37 -06:00
Nathan Sobo
096afcf6f3
Finalize selections on mouseup
2014-04-22 17:09:37 -06:00
Nathan Sobo
2204571ef5
Select words on double-click
2014-04-22 17:09:37 -06:00
Nathan Sobo
c4be3069f7
Select on mouse drag
2014-04-22 17:09:37 -06:00
Nathan Sobo
accee294dc
Test against real mousedown events dispatched on the .lines DOM node
2014-04-22 17:09:37 -06:00
Nathan Sobo
1239ab540f
💄 spec descriptions
2014-04-22 17:09:37 -06:00
Nathan Sobo
5a0d7e716b
When cmd-clicking, add a new cursor at the nearest screen position
2014-04-22 17:09:37 -06:00
Nathan Sobo
7738e74df0
When shift-clicking, select to the clicked position
2014-04-22 17:09:36 -06:00
Nathan Sobo
3a433f734c
Move the cursor on single click
2014-04-22 17:09:36 -06:00
Nathan Sobo
e24196c0ef
Require React directly rather than via reactionary
...
Reactionary is just a tiny helper library that can rely on the react
installed by the requiring application instead.
2014-04-22 17:09:36 -06:00
Nathan Sobo
57e2cf80f4
💄 Reorganize spec
2014-04-22 17:09:05 -06:00
Nathan Sobo
669586c11b
💄
2014-04-22 17:09:05 -06:00
Nathan Sobo
3d3b72a954
Render selections
2014-04-22 17:09:04 -06:00
Nathan Sobo
ab02d5f25f
Update the vertical scroll bar when scrollTop changes in the model
2014-04-22 17:09:04 -06:00
Nathan Sobo
53cc5c9856
Base cursor x position on char widths stored in DisplayBuffer
...
Whenever new lines are added to the screen, we measure and store any
unseen scope/character combinations in the DisplayBuffer.
2014-04-22 17:09:03 -06:00
Nathan Sobo
6327094696
Transfer focus from editor component to its hidden input
2014-04-22 17:09:03 -06:00
Nathan Sobo
c4fdb54650
Update editor component when a visible selection is removed
2014-04-22 17:09:03 -06:00
Nathan Sobo
e365e51a2b
Render all visible cursors
2014-04-22 17:09:03 -06:00
Nathan Sobo
70e5880b1d
Start on cursor rendering
2014-04-22 17:09:02 -06:00
Nathan Sobo
958bc638d7
Improve scrolling performance
2014-04-22 17:09:02 -06:00
Nathan Sobo
a134a60ce8
Render the entire editor with React. Handle vertical scrolling.
...
The space-pen view is now a simple wrapper around the entire React
component to integrate it cleanly into our existing system. React
components can't adopt existing DOM nodes, otherwise I would just have
the react component take over the entire view instead of wrapping.
2014-04-22 17:09:02 -06:00