Commit Graph

1108 Commits

Author SHA1 Message Date
Corey Johnson & Nathan Sobo
0120df540a Lines remain syntax-highlighted when they are updated. 2012-02-02 17:04:37 -07:00
Corey Johnson & Nathan Sobo
71e5462611 Refactor Buffer.change 2012-02-02 16:49:12 -07:00
Nathan Sobo
6ed33fbd17 💄 2012-02-02 16:39:56 -07:00
Nathan Sobo
470ec2e5e4 Refactor Highligher.handleBufferChange
Clarify the logic of extending the re-highlighting beyond the scope of
the textual change.
2012-02-02 16:39:42 -07:00
Nathan Sobo
00bc17baf0 WIP: Add theme/twilight.css.
Lines aren't being updated properly quite yet, and the stylesheet needs
more tweaking, but colors are there when you load a file.
2012-02-02 12:47:35 -07:00
Nathan Sobo
2b748dd8a7 Merge branch 'editor' into highlight
Conflicts:
	src/atom/buffer.coffee
2012-02-02 12:31:35 -07:00
Nathan Sobo
5e95fc482d Buffer.setText emits the proper change events 2012-02-02 12:30:25 -07:00
Nathan Sobo
104e75e0d7 WIP: Handle changes that affect highlighting of subsequent lines.
Entering a /* at the top of the document will cause lines below to be
interpreted as comments. Still needs cleanup. There are some unrelated
failures associated with Buffer.setText not firing events correctly,
which is causing the highlighter to get into an invalid state.
2012-02-01 21:52:07 -07:00
Nathan Sobo
2f7aa1c4fa Merge branch 'editor' into highlight 2012-02-01 20:33:18 -07:00
Nathan Sobo
6cde6952c7 💄 2012-02-01 20:32:59 -07:00
Nathan Sobo
2f6c16c941 Merge branch 'editor' into highlight
Conflicts:
	src/atom/editor.coffee
2012-02-01 20:24:42 -07:00
Nathan Sobo
1e6d4c618e Refactor Buffer.change 2012-02-01 20:19:26 -07:00
Corey Johnson
53d68d93ca Rename old methods and make the specs pass! 2012-02-01 16:50:10 -08:00
Corey Johnson
a8380a6df6 Next word on at end of file moves cursor to end of file.
Not sure how this was working before? Maybe a quirk of ace?
2012-02-01 16:49:46 -08:00
Corey Johnson
0f75561a12 Use renamed cursor methods on editor 2012-02-01 16:48:55 -08:00
Corey Johnson
d45c6f9926 Delete is on selection now, not editor 2012-02-01 16:46:05 -08:00
Corey Johnson
14d4d5029e Rename DeleteChar to DeleteRight 2012-02-01 16:45:28 -08:00
Nathan Sobo
23bcc68ac5 Highlighter updates when the buffer is changed 2012-02-01 17:38:16 -07:00
Corey Johnson
09dd7fe913 💄 2012-02-01 16:08:03 -08:00
Corey Johnson
d250580d1b Add getSelection method. Make getCursor return editors cursor var. 2012-02-01 16:04:19 -08:00
Corey Johnson
a3332571a9 Remove backspace and change implementation of delete.
A selection will only delete what is selected. Otherwise it will leave
the buffer unmodified.
2012-02-01 15:57:37 -08:00
Corey Johnson
8fb219af47 Define backspace and delete in terms of deleteLeft and deleteRight. 2012-02-01 15:56:23 -08:00
Corey Johnson
cc3b5732e7 Point.toEqual will return true if it matches an array
`new Point(1,2)` is equivalent to `[1,2]`.
2012-02-01 15:54:28 -08:00
Corey Johnson
dc9a343b9d little fixes to the custom webkit doc 2012-02-01 11:44:52 -08:00
Nathan Sobo
e669d4ca9e Merge branch 'editor' into highlight 2012-01-31 22:03:04 -07:00
Nathan Sobo
e6cda3dac3 Merge branch 'editor' of github.com:github/atom into editor 2012-01-31 22:02:41 -07:00
Nathan Sobo
77f227c7e9 WIP: Using ace tokenizer to break lines into tokens.
Breaks some specs because the highlighter doesn't update when the
buffer changes. Not loading the ace theme CSS yet, so you can't see any
colors yet either.
2012-01-31 21:59:58 -07:00
Nathan Sobo
677df675fb 💄 reorganize editor spec a bit 2012-01-31 20:57:43 -07:00
Nathan Sobo
0e677b6b82 Update ace to 5b6e24dd0953e4728766bd8d6c807a48e9ec61cd 2012-01-31 19:23:42 -07:00
Corey Johnson
84f6a1ca01 Custom version of webkit with @tmm1's stack trace patch 2012-01-31 10:56:53 -08:00
Corey Johnson
c87f37997b Use install_name_tool to make webkit embedable 2012-01-31 10:56:48 -08:00
Nathan Sobo
a72dc17b87 Move hidden input to follow cursor to stop spurious scrolling
Commit 8e77c05c fixed scrolling *up* when clicking the buffer while
scrolled down. But it was still scrolling to the far left when typing /
clicking on a really long line. This commit solves both issues by
always positioning the hidden input to the same location as the cursor,
so it doesn't tell webkit to scroll away from the current focus when it
is focused or the user types.
2012-01-31 11:21:13 -07:00
Corey Johnson
d42cdaf157 Selection spec uses copy event to test copying.
Also added a some multiline tests.
2012-01-31 10:10:18 -08:00
Corey Johnson
84d9824b19 buffer.getTextInRange handles multiple lines. 2012-01-31 09:56:16 -08:00
Nathan Sobo
4575483d80 Selection expands flexibly when window is resized
If a region of the selection needs to span the full line, I assign
right: 0 instead of a width so that it always stretches across the
entire editor, even after a resize.
2012-01-31 10:55:17 -07:00
Nathan Sobo
666ef76c83 Never use more than 3 divs to render a selection
This should hopefully improve performance for large selections.
2012-01-31 10:44:10 -07:00
Nathan Sobo
21a5f25d93 Merge branch 'master' of github.com:github/atom into editor
Conflicts:
	src/atom/editor.coffee
2012-01-30 19:47:51 -07:00
Corey Johnson
f9527859a3 💄 2012-01-30 17:46:18 -08:00
Corey Johnson
7dba7dc3de meta-c copies text in selection 2012-01-30 17:46:03 -08:00
Corey Johnson
99cbb5e0a2 Cache compiled CoffeeScript on the Objective-C side.
This is a temporary fix, it just stores compiled scripts in memory. It
doesn't speed up the app start since the scripts need to be compiled
once. Here are some numbers.

#file load
pre: 1.5 seconds
post: 0.25 seconds

#spec load
pre: 5.4 seconds
post: 0.36 seconds
2012-01-30 16:19:28 -08:00
Corey Johnson
6319274284 window.measure takes an optional callback 2012-01-30 16:16:18 -08:00
Nathan Sobo
8e77c05c06 Fix bug: Don't scroll to top on click after scrolling down.
The editor has a tabindex of -1 so it can receive focus. This makes it
behave like a focusable element such as a textarea. But in reality,
when the editor receives focus, it just focuses the hidden input that
it watches for textInput events. So when you click, focus is stolen
away from the hidden input and goes to the editor. But then the editor
sends focus back to the hidden input. Because the input was at the top
of the screen, WebKit would scroll up to bring it on screen when
focused. So now I just bring the hidden input on screen (by positioning
it even with scrollTop) before focusing it. That prevents the WebKit
from scrolling.
2012-01-28 22:36:47 -07:00
Nathan Sobo
a77dd28e47 Fix bug: can now delete multiple lines
Before, we were traversing through lines to remove in ascending order
and then calling remove(n) for each. But when we removed line 10, line
11 became the *new* line 10. So when we removed line 11 we ended up
skipping the old line 11. I solved this by traversing in reverse when
we need to delete lines.
2012-01-28 22:05:35 -07:00
Nathan Sobo
1dd718f896 Can select text with the mouse 2012-01-28 17:00:59 -08:00
Nathan Sobo
9a639043ca Use default cursor in editor.
This prevents it from sporadically switching to the text insertion
cursor when hovering over lines.
2012-01-28 15:59:38 -08:00
Nathan Sobo
6dad8c448a 💄 2012-01-28 15:58:59 -08:00
Nathan Sobo
3e5cef9672 Cursor can be re-positioned with the mouse 2012-01-28 15:54:01 -08:00
Nathan Sobo
e0c66c5caf Fix horizontal scrolling oddness
Giving the hidden text area a fixed position was confusing webkit and
making scroll behavior really odd. Using position: absolute and setting
the z-index so it's behind the editor seems to make scrolling behave
more normally.
2012-01-27 19:12:42 -08:00
Nathan Sobo
7f97747acb Oops 😳 2012-01-27 18:48:19 -08:00
Nathan Sobo
cb3d97692e Auto-scroll horizontally after exceeding editor.hScrollMargin
Rename previous editor.scrollMargin to vScrollMargin to indicate it's
for vertical scrolling.
2012-01-27 18:42:20 -08:00