Commit Graph

2447 Commits

Author SHA1 Message Date
Kevin Sawicki
b2b00a7b39 Update branch text on save 2012-11-02 15:33:07 -07:00
Kevin Sawicki
e4fb12a398 Add octicon to branch label 2012-11-02 15:31:11 -07:00
Kevin Sawicki
88cdff9d26 Return full HEAD when unshortened 2012-11-02 15:31:11 -07:00
Kevin Sawicki
d66315dd21 Abbreviate SHA-1s when HEAD is detached 2012-11-02 15:31:10 -07:00
Kevin Sawicki
14302c491d Show current branch in status bar 2012-11-02 15:31:10 -07:00
Nathan Sobo
3fbf5653c4 Update the status bar asynchronously on cursor move / buffer change
This keeps it out of the synchronous path from pressing a key to seeing it inserted on screen.
2012-11-02 15:46:33 -06:00
Nathan Sobo
adbcb9f49e Only consider BindingSets with a binding for first keystroke of event
The keymap was slow because it would find the binding sets with matching selectors for every ancestor of every keydown event. The problem was, it was considering a lot of binding sets that didn't even have a binding for the event in question. Now we index all binding sets on what bindings they contain, and filter them by that first. Rejecting an event that has no bindings is almost instantaneous now.
2012-11-02 14:13:03 -06:00
Nathan Sobo
2c211ba504 Remove ability to associate a binding set with a function
This was cool, but it's really hard to optimize the keymap with this feature because we never know if a keystroke will match against a binding set with a function, which will force us to always consider this binding set against every key event.
2012-11-02 13:39:21 -06:00
Nathan Sobo
0c3498d29f Cleanup/optimize Keymap#keystrokeStringForEvent 2012-11-02 13:25:33 -06:00
Nathan Sobo
045cdda41d Fix cursor line highlight style 2012-11-02 12:16:03 -06:00
Corey Johnson
83329567b9 Use the file's first line to determine the grammar.
Only when it cannot be determined by the file's extension fails. Fixes #75
2012-11-01 17:47:31 -07:00
Corey Johnson
41291021c4 Use entire filePath to determine its grammar 2012-11-01 17:47:31 -07:00
Nathan Sobo
c6075b0fa6 Optimize highlighting of the current line in the gutter 2012-11-01 17:37:50 -06:00
Nathan Sobo
1d838e920c Cache the maxScreenLineLength
Computing this requires a full scan of all screen lines. Here I keep it updated as I add / remove lines. If I remove the line with the max length, I am forced to scan all of them again. But this happens relatively rarely. Usually I only need to scan the lines I'm replacing and inserting.
2012-11-01 17:37:50 -06:00
Corey Johnson
abfe3b93cc Add css styling to CommandPanel errors 2012-11-01 15:56:24 -07:00
Corey Johnson
9afda88c8c CommandPanel shows command errors 2012-11-01 15:56:24 -07:00
Corey Johnson
79a7d35798 CommandPanel commands have optional error messages 2012-11-01 15:56:23 -07:00
Corey Johnson
837005176c animation 💄 2012-11-01 15:56:23 -07:00
Corey Johnson
e56ac29b15 Clean up test for escaped characters in command panel 2012-11-01 15:56:22 -07:00
Corey Johnson
8681898a42 CommandPanel escapes characters with a backslash in front of them 2012-11-01 15:56:22 -07:00
Corey Johnson
eed474435d 💄 2012-11-01 15:56:22 -07:00
Corey Johnson & Nathan Sobo
c88e9f95ac s and x commands operate on the entire buffer if no address specified.
(and there is no selection)
2012-11-01 15:56:22 -07:00
Corey Johnson
7d6539068b if no address if specified for the first command, the address range become the entire file 2012-11-01 15:56:21 -07:00
Nathan Sobo
66518a3c67 Don't have autocompleter rebuild its word list on every keystroke 2012-11-01 16:04:42 -06:00
Nathan Sobo
ea87c55db5 Don't clear the selection if it's empty
This avoids emitting selection change events when they aren't really needed. This extra event was causing the highlighted line to be updated when it didn't need to be.
2012-11-01 14:50:51 -06: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
aa3405cb2b Cache the memory contents of Buffer for better performance 2012-11-01 14:09:58 -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
5f9e248aec Clip the screen position after translating it from a buffer position
This is instead of applying redundant clipping logic directly within the translation method.
2012-11-01 07:15:51 -06:00
Nathan Sobo
085adb72ce Pass translation options through when setting buffer position 2012-11-01 07:15:51 -06:00
Nathan Sobo
00bcb7a1b9 Make position translation understand hard tabs 2012-11-01 07:15:51 -06:00
Nathan Sobo
df1a7e1866 Make gutter rendering specs pass 2012-11-01 07:15:51 -06:00
Nathan Sobo
3d12269315 DisplayBuffer specs passing with greatly simplified LineMap 2012-11-01 07:15:51 -06:00
Nathan Sobo
8ae08dc21d I don't think we need this line anymore 2012-11-01 07:15:50 -06:00
Corey Johnson
dbf8639375 Rename anchor.ignoreEqual to anchor.ignoreChangesStartingOnAnchor 2012-10-31 14:27:31 -07:00
Corey Johnson
84ea1017f4 Anchor.ignoreEqual works properly
The anchor ignores buffer changes when ignoreEqual is true and the oldRange.start == anchor.position
2012-10-31 14:27:21 -07:00
Nathan Sobo
887200de86 Use cached disk contents instead of signature for Buffer.isModified
Computing the signature was really slow for large files. Keeping a cached copy of the disk contents and comparing directly costs less in the benchmark. We'll have to turn on the status bar in benchmarks to see if the comparison is too expensive.
2012-10-31 12:36:14 -06:00
Nathan Sobo
980c5d6b11 Add support for native tracing w/ atom.begin/endTracing in console.
* Open the dev tools console
* Call `atom.beginTracing()`
* Do stuff
* Call `atom.endTracing()`
* Save the file somewhere
* Open `about:tracing` in chrome and load the file
* Inspect away!
2012-10-31 11:39:58 -06:00
Corey Johnson & Nathan Sobo
b85f3c47eb Rewrite Seleciton.setScreenRange in terms of setBufferRange 2012-10-30 17:07:15 -07:00
Corey Johnson & Nathan Sobo
426c952d73 shift-double-click and shift-triple-click are ignored. 2012-10-30 16:43:00 -07:00
Nathan Sobo
007e032224 Expand selection linewise after triple-click (dragging or shift-click) 2012-10-30 14:48:33 -06: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
5b7e96067a moveCursorToBeginningOfWord works when preceded by a blank line 2012-10-30 12:05:46 -06:00
Corey Johnson & Nathan Sobo
46fc7f2375 Redefine word regex to consider sequences of non-word chars as words
This does *not* include newlines. Doing this makes it possible to double-click regions of whitespace to select them just as you can select a word. It also makes word movement bindings behave similarly to TextMate.
2012-10-30 11:56:05 -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
89ac3f1c82 Project.scan works with escaped regex literals 2012-10-29 16:04:01 -07:00
Nathan Sobo
8a3f932bfa Merge branch 'hide-selection-cursor' 2012-10-29 16:54:34 -06:00