Commit Graph

414 Commits

Author SHA1 Message Date
Kevin Sawicki
518a71910d Support clicking past last editor line
Clicking below the last line of an editor
now either moves the cursor to the end of
the file or selects to the end of the file
if shift is pressed.
2012-12-26 11:08:28 -08:00
Kevin Sawicki
628d22de0a Use tab invisible that is available in Inconsolata
Previously a non-Inconsolata character
was being used which caused alignment issues
with selections and the cursor

Also switch values in editor.coffee to use codes
so they can be viewed in any font.
2012-12-20 14:50:51 -08:00
Nathan Sobo
acc0503684 Merge remote-tracking branch 'origin/master' into config
Conflicts:
	src/app/keymap.coffee
	src/extensions/outline-view/src/keymap.coffee
	src/extensions/outline-view/src/tag-reader.coffee
	src/packages/fuzzy-finder/spec/fuzzy-finder-spec.coffee
	src/packages/fuzzy-finder/src/fuzzy-finder.coffee
2012-12-18 20:32:05 -07:00
Nathan Sobo
fc9bf38a2a *Must* use get and set to access config values.
The `config` object no longer stores config properties directly. Instead it stores them on an internal `settings` object, which makes it easier to serialize settings without getting them mixed up with non-setting state on the `config` object.
2012-12-17 20:56:37 -07:00
Nathan Sobo
4538a70859 Add config.editor.autosave 2012-12-16 11:30:06 -08:00
Corey Johnson & Nathan Sobo
827d6b57fb Use observeConfig in Editor 2012-12-14 15:01:31 -08:00
Nathan Sobo
aedc86705e Merge branch 'master' into config 2012-12-12 16:48:58 -08:00
Nathan Sobo
3c2b84a46d Add config.editor.fontSize 2012-12-12 15:23:36 -08:00
Nathan Sobo
8088e4d90c Add config.editor.invisibles field for customizing invisible glyphs. 2012-12-12 14:45:58 -08:00
Nathan Sobo
db0a39679c Remove showInvisibles constructor param on Editor
And remove `showInvisibles` state from the `RootView` now that it's managed via `config`.
2012-12-12 13:55:27 -08:00
Nathan Sobo
b3303bc21d Add config.editor.showInvisibles 2012-12-12 13:50:58 -08:00
Nathan Sobo
2a901e78f9 Identify editor when subscribing to window resize 2012-12-12 13:28:29 -08:00
Kevin Sawicki
bb7b3b8a6d Add close icon to tabs 2012-12-11 16:57:45 -08:00
Corey Johnson & Nathan Sobo
4e9dc5fe71 Merge branch 'master' of https://github.com/github/atom 2012-12-11 16:51:35 -08:00
Corey Johnson & Nathan Sobo
7ead4d7390 Inactive tabs change their title when their file is renamed
We were turning off all subscriptions on an edit session from editor when it became inactive. Now we only turn off subscriptions made by the editor, leaving the tab's subscription intact.
2012-12-11 16:16:18 -08:00
Kevin Sawicki
b848379420 Support scrolling to buffer and screen positions 2012-12-11 15:54:01 -08:00
Nathan Sobo
4684bc5942 Redraw gutter when switching to a shorter buffer
This ensures that we don't leave too many line numbers on the screen for the current file.
2012-12-04 13:25:13 -07:00
Corey Johnson
5d99824deb autoscroll to results in command panel preview list 2012-12-03 10:23:28 -08:00
Nathan Sobo
5b143d4b93 Add 'autosave' option, which saves when unfocusing or switching tabs 2012-11-30 14:11:27 -07:00
Corey Johnson & Nathan Sobo
be2b9ee100 Store autoscroll state on Selection and Cursor models 2012-11-30 12:08:41 -07:00
Corey Johnson & Nathan Sobo
b9e847d290 Remove logging 2012-11-30 11:47:36 -07:00
Corey Johnson & Nathan Sobo
ac0e3095ec Only autoscroll selections to center if they are offscreen 2012-11-30 11:40:27 -07:00
Corey Johnson & Nathan Sobo
f9c7c08641 Selected results of a find operation are centered in the viewport 2012-11-29 18:52:34 -07:00
Nathan Sobo
00832b08bb Allow editor to be focused when it is clicked 2012-11-29 13:57:29 -07:00
Corey Johnson & Nathan Sobo
eb0414f4e7 Emit a contents-conflicted` event instead of contents-change-on-disk 2012-11-28 15:21:12 -07:00
Corey Johnson & Nathan Sobo
1aa8f26e94 Scrolling does not jerk to a stop when scrolling w/ a trackpad
When scrolling with a trackpad, webkit repeatedly triggers multiple mousewheel events on the original event's target element to simulate the velocity effect we're accustomed to with touchscreen UIs. When scrolling quickly, this clashed with our strategy of removing off-screen lines, because the element was removed before the velocity were done firing.

The solution is to make the overlayer accept mouse events. It lays on top of all the lines, so it is never removed and therefore allows the mousewheel events to run to completion. But, this means we need to transfer mousedown events from the overlayer to the underlying lines.
2012-11-28 12:25:14 -07:00
Nathan Sobo
94220d95a7 When updating lines, build contiguous lines from a single html string
This cuts down on parse time and improves the frame rate when scrolling.
2012-11-27 18:54:26 -07:00
Nathan Sobo
c5a3e81dab Reduce line overdraw to improve scroll performance 2012-11-27 18:19:33 -07:00
Nathan Sobo
d22a199dc6 Simplify handling of 'mousewheel' event 2012-11-27 18:19:17 -07:00
Nathan Sobo
d47a82f585 Handle selection dragging when cursor goes off-screen 2012-11-26 17:21:50 -07:00
Nathan Sobo
cc2e1c1381 Merge pull request #99 from github/async-tokenization
Tokenize asynchronously
2012-11-23 12:05:20 -08:00
Nathan Sobo
a1ae819908 Only tokenize in background if when a buffer is visible in an editor
This will prevent running a bunch of background tokenization when Atom is reloaded. We only perform tokenization to support content that is actually on screen.
2012-11-23 12:41:08 -07:00
Nathan Sobo
5aba8596a9 Make tokenization synchronous in all specs
Disabled some specs that need to make it asynchronous again… will deal with those soon.
2012-11-21 08:22:13 -07:00
Nathan Sobo
69ec6b5441 Add the 'editor:edit-session-removed' event to Editor 2012-11-20 16:03:11 -07:00
Nathan Sobo
e508d73dd4 Always provide the EditSession and its index on EditSession events 2012-11-20 15:49:52 -07:00
Nathan Sobo
4a373a9173 Add 'editor:edit-session-added' event to Editor 2012-11-20 15:43:57 -07:00
Nathan Sobo
056c6c5af2 Add 'editor:active-edit-session-changed' events to Editor 2012-11-20 15:23:30 -07:00
Corey Johnson & Nathan Sobo
e52dbb682e WIP: Perform tokenization in chunks when edit session is shown 2012-11-19 16:50:49 -07:00
Kevin Sawicki
55f88d2d76 Make toggle-ignored-files a window event 2012-11-19 09:30:21 -08:00
Kevin Sawicki
34e5e4a65b Merge branch 'master' into ignore_git_ignored_paths_in_file_finder 2012-11-19 09:17:09 -08:00
Nathan Sobo
cf4e87103e Emit row-oriented screen lien change events from EditSession 2012-11-16 07:36:35 -07:00
Nathan Sobo
841e34090b Rename from/to to start/end in Editor's queued change events 2012-11-16 07:36:35 -07:00
Nathan Sobo
8ef8924871 💄 2012-11-16 07:36:35 -07:00
Nathan Sobo
185ca22488 Make cursor blink by changing CSS visibility with setInterval
This is actually more efficient than the CSS animation we were doing previously, because it doesn't force the cursor to be sampled at 60 FPS for something that changes around twice a second.
2012-11-14 20:43:34 -07:00
Nathan Sobo
00a6472a2c Update display synchronously when scrolling to prevent flicker 2012-11-14 15:10:05 -07:00
Nathan Sobo
7f8e2643f5 Auto-scroll last to avoid forcing a reflow before we're done modifying 2012-11-14 15:04:13 -07:00
Nathan Sobo
9424674b37 Trigger 'selection-change' events when selection view changes 2012-11-14 14:34:52 -07:00
Nathan Sobo
a6e928d85a Use MessageChannel-based nextTick to schedule Editor display update
This is the fastest way I've found to get the nextTick behavior, which allows us to aggregate multiple requests for display update (from selection changes, cursor movement, line changes) etc into a single call at the end of processing an event.
2012-11-14 13:57:27 -07:00
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