Nathan Sobo
3eeb4435a5
Re-render the gutter on changes if the screen or buffer delta are != 0
...
Basically, we don't re-render the gutter for single-line edits. Every other kind of change does re-render it however.
2012-11-14 13:13:23 -07:00
Corey Johnson & Nathan Sobo
9fa577f8c4
Using requestAnimationFrame with some disabled features
...
Not sure if it feels faster, but the code is a bit more organized at least.
2012-11-13 18:25:29 -07:00
Corey Johnson & Nathan Sobo
97e3a8f248
Lipstick
2012-11-13 17:23:19 -07:00
Corey Johnson & Nathan Sobo
2aed267752
Don't call updateDisplay re-entrantly from scrollTop
2012-11-13 17:23:09 -07:00
Corey Johnson & Nathan Sobo
041dc2b6b0
Replace calls to renderLines w/ resetDisplay in Editor
2012-11-13 17:21:27 -07:00
Corey Johnson & Nathan Sobo
cef9ce6ca7
Add needsUpdate and needsAutoscroll properties to cursor views
...
Then in the editor, we update and autoscroll only the views that need it. Autoscrolling is suppressed when resetting the display so that we honor the scroll positions of the active EditSession.
2012-11-13 17:20:48 -07:00
Nathan Sobo
f96cf439c0
Adding/removing SelectionViews through Editor#updateDisplay
2012-11-13 15:06:32 -07:00
Nathan Sobo
c09249313b
Only add CursorViews during Editor#updateDisplay
...
The goal is that no model operation will ever modify the DOM directly. We will always request a display update, which will happen on the next animation frame.
2012-11-13 14:54:59 -07:00
Nathan Sobo
8aad2480b6
Only autoscroll to cursor when it is attached *after* reset
2012-11-13 14:30:24 -07:00
Nathan Sobo
bfef9077f3
Don't autoscroll when updating the display after adjusting scrollTop
2012-11-13 14:18:51 -07:00
Corey Johnson & Nathan Sobo
b5efec308a
wip: updateDisplay
2012-11-13 12:08:41 -08:00
Corey Johnson & Nathan Sobo
9c0f1d428f
Rename updateAppearance to updateDisplay
2012-11-13 11:21:46 -08:00
Nathan Sobo
3bc11ede77
Set the lines div height explicitly so it can be > 100% of parent
...
All editor specs pass
2012-11-09 14:25:59 -07:00
Nathan Sobo
538c44f82b
Fix bug caused by the fact that 0 <= null ===> true. God. damn. it.
2012-11-09 14:02:13 -07:00
Nathan Sobo
ee9ae449f3
💄
2012-11-09 13:43:28 -07:00
Nathan Sobo
5519929d8e
Kill console.log
2012-11-09 13:38:27 -07:00
Corey Johnson & Nathan Sobo
e014f60f39
Update overdraw if scrolling beyond rendered lines in either direction
...
Also a few refactorings, and handle scroll height change in update lines
2012-11-09 13:27:05 -07:00
Corey Johnson & Nathan Sobo
507c12a0fa
Highlight cursor line after updating rendered lines
2012-11-09 11:24:47 -07:00
Corey Johnson & Nathan Sobo
1996eaeb54
Preliminary approach to updating the gutter
...
This is just to get specs passing. We want to use the intact ranges to only render the exact lines that changed.
2012-11-09 11:17:42 -07:00
Corey Johnson & Nathan Sobo
7c16c48e2a
Ensure underlayer and overlayer are always the same width as lines
...
Also… simplify CSS rules for lines element. No display table or padding, instead we just set the min width when typing.
2012-11-09 11:12:33 -07:00
Corey Johnson & Nathan Sobo
d739736997
Add underlayer / overlayer for the selection and cursor
...
The renderedLines div can now only contain actual lines, nothing else. Thes divs are designed to match the lines div in dimensions and make it easy to put things in front of or behind the text.
2012-11-09 10:43:58 -07:00
Nathan Sobo
1f94b2aacc
WIP: Handling display buffer changes. Cursor, selection specs failing
...
That's because the new CodeMirror-inspired line update code assumes that lines are the only thing in the rendered lines div.
2012-11-09 08:46:33 -07:00
Nathan Sobo
1d46da55da
WIP: Borrowing from code mirror to update lines. Scrolling / resizing work, but not much else
2012-11-09 07:31:30 -07:00
Nathan Sobo
312f64d200
Don't make hidden input a child of Editor's scrollView
...
If the input element is a child of the scroll view, then focusing it can end up changing the scroll position of the view behind our backs. We *only* want to scroll the view via our interface on editor, because a bunch of of special code needs to run when we scroll. We can't just have the browser scrolling that view around willy-nilly.
2012-11-07 19:47:31 -07:00
Nathan Sobo
144cfadb15
Update selection rendering when font size changes
2012-11-07 14:22:43 -07:00
Nathan Sobo
df392359f9
When font size changes, correctly adjust scrollable height
...
This requires updating the padding of the rendered lines and then adjusting the vertical scrollbar content height before updating any of the rendered lines. This fixes (hopefully all of) the rendering issues when adjusting the font size.
2012-11-07 14:09:31 -07:00
Nathan Sobo
693b110f1c
💄
2012-11-07 13:52:55 -07:00
Nathan Sobo
cd9e3b774a
Always move the hidden input element to the cursor's screen location
...
This avoids spuriously auto-scrolling to the left when opening an autocomplete in an editor that's scrolled to the right.
2012-11-07 13:04:54 -07:00
Nathan Sobo
d44e116321
Don't highlight the current line unless the selection is empty
2012-11-07 12:11:33 -07:00
Corey Johnson & Nathan Sobo
dacb5f063f
Remove unused references to stateForScreenRow
2012-11-06 11:13:42 -08:00
Corey Johnson & Nathan Sobo
874af0f2bc
Eliminate reference to TokenizedBuffer on EditSession
2012-11-06 11:09:38 -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
Kevin Sawicki
830a0b337a
Add ctrl-Z keybinding to checkout HEAD revision
2012-11-03 15:50:50 -07:00
Kevin Sawicki
910ca47a61
Allow setting of invisibles on editor
2012-11-02 17:51:22 -07:00
Kevin Sawicki
ff8055be49
💄
2012-11-02 17:51:22 -07:00
Will Farrington
8dbeb9f3d2
first spike at customizable invisibles characters
2012-11-02 17:51:16 -07:00
Nathan Sobo
9cbcc9e7e3
Eliminate another unnecessary call to highlightCursorLine
2012-11-01 14:43:43 -06:00
Nathan Sobo
a0770c41db
Avoid some calls to highlightCursorLine
2012-11-01 14:33:34 -06:00
Nathan Sobo
2efc91aad1
Optimize highlightCursorLine by using cached element references
2012-11-01 13:51:22 -06:00
Nathan Sobo
5249e5e69c
Fix spec failures caused by editor css changes
2012-11-01 12:25:33 -06:00
Nathan Sobo
42d0c53a60
Use min-width on rendered lines to replace js logic w/ CSS
2012-11-01 11:49:50 -06:00
Nathan Sobo
085adb72ce
Pass translation options through when setting buffer position
2012-11-01 07:15:51 -06:00
Corey Johnson & Nathan Sobo
426c952d73
shift-double-click and shift-triple-click are ignored.
2012-10-30 16:43:00 -07:00
Corey Johnson & Nathan Sobo
c55332a3a4
WIP: Make selections remember if they are wordwise/linewise
...
Also always expand from the initial selection after a double/triple click in either direction until directionality of the selection is established.
2012-10-30 13:56:35 -06:00
Corey Johnson & Nathan Sobo
8c7152a59b
Eliminate 'move-cursor-to-next-word' command
...
We have move-to-end-of-word and move-to-beginning-of-word, which is what we use for the current keybindings.
2012-10-30 11:56:05 -06:00
Corey Johnson
47c6a3a790
Ensure spans are ended in buildLineHtml
2012-10-29 13:47:44 -07:00
Corey Johnson & Nathan Sobo
3a067bcd71
Add editor:toggle-soft-tabs event
2012-10-26 11:52:53 -06:00
Nathan Sobo
d89979fc61
Merge pull request #86 from github/outline-view
...
Jump to method declaration
2012-10-25 17:54:27 -07:00
Kevin Sawicki
f995cbb45c
💄
2012-10-24 14:36:46 -07:00
Nathan Sobo
7be3c55765
Only auto-indent when typing, not when pasting or programmatically inserting
...
This paves the way for using a different strategy to normalize indentation when pasting, without it getting tangled in auto-indent.
2012-10-23 11:59:54 -06:00