Corey Johnson
2cb3a0ba69
Move extension keymap files into extension directory
2012-07-03 12:59:51 -07:00
Corey Johnson
263065171d
Use window.extension to load extensions from .atom file
2012-07-03 12:51:30 -07:00
Nathan Sobo
bdfdf08ea0
Adjust Editor.scrollTop when removing a line reduces the scroll height
...
This eliminates rendering artifacts and jerky scrolling at the bottom of the screen
2012-07-03 11:12:54 -06:00
Nathan Sobo
3ee7c0dc0f
"Scroll" gutter by relatively positioning its line numbers
...
This matches how we scroll lines, and eliminates opportunities for the gutter to get out of sync with the lines. If that happened, it would probably be a bug, but this at least eliminates one source of confusion when debugging.
2012-07-03 11:09:34 -06:00
Nathan Sobo
e21d0a5d2a
Rename RootView.modifiedBuffers -> getModifiedBuffers
2012-07-02 19:49:05 -06:00
Nathan Sobo
9cae4d3d8f
Rename RootView.editors -> getEditors
2012-07-02 19:47:38 -06:00
Nathan Sobo
bd5c1f8694
Rename RootView.activeEditor -> getActiveEditor
2012-07-02 19:46:33 -06:00
Nathan Sobo
a38042f89f
Rename Editor.removeActiveEditSession -> destroyActiveEditSession
2012-07-02 19:44:24 -06:00
Nathan Sobo
8fbbd77a23
Commands terminating in a substitution restore their initial selection
2012-07-02 19:35:14 -06:00
Corey Johnson & Nathan Sobo
b59bd4bc7b
Saving a buffer does not trigger a "contents-change" event
2012-07-02 17:48:30 -07:00
Corey Johnson & Nathan Sobo
ef7121dfb3
File does not trigger 'contents-change' when its md5 does not change
2012-07-02 17:47:54 -07:00
Corey Johnson
10bfc56624
When a Buffer is created, the initial call to setText is not treated as an undoable change.
2012-07-02 11:39:22 -07:00
Corey Johnson
ae34611d2a
Changes to buffer (via external process) do set buffer as modified.
2012-07-02 09:13:05 -07:00
Corey Johnson
801a91ec9b
Specs cleanup buffers
2012-06-29 15:38:12 -07:00
Corey Johnson
98393a653e
Destroy editSession by calling a method on the project instead of triggering a destroy event that the project listens to.
2012-06-29 15:09:31 -07:00
Corey Johnson
c3d7d3566f
Buffer listens for changes to file and triggers 'contents-change' event
2012-06-29 15:09:31 -07:00
Corey Johnson
e295d19d51
Editor.prototype.removeActiveEditSession calls destroy on the removed edit session
2012-06-29 15:09:01 -07:00
Corey Johnson
3dd9253bc5
When Buffer's path changes, stop listening for events on former path
2012-06-29 15:09:01 -07:00
Corey Johnson
8e7a8836cd
Unmodified buffer updates contents when file changes outside of atom.
2012-06-29 15:09:01 -07:00
Corey Johnson
e24c9932a4
Files trigger contents-change event
2012-06-29 15:09:01 -07:00
Nathan Sobo
99db024dbb
Kill anchor subscriptions on destroy
2012-06-29 11:55:27 -06:00
Nathan Sobo
3524490946
Ensure selection emits event if a buffer change moves its anchor
2012-06-29 11:55:16 -06:00
Nathan Sobo
05d5576b94
Merge branch 'buffer-finder'
2012-06-29 10:12:38 -06:00
Nathan Sobo
6c60993f5c
Fuzzy buffer finder switches to the editor that has the selected buffer if it isn't open on the current active editor
2012-06-29 09:59:37 -06:00
Nathan Sobo
22515e7ba0
RootView.open takes an 'allowActiveEditorChange' option
...
When the 'allowActiveEditorChange' option is true, RootView will try to activate an existing edit session for the given path on *any* editor, and switch focus there. This will be used by the fuzzy-finder for the meta-b option, which should open the chosen buffer on the editor that contains it, even if it isn't currently active.
2012-06-29 09:48:16 -06:00
Nathan Sobo
423b312e9c
Meta-b opens the fuzzy finder with paths to the current editor's buffers
2012-06-28 12:57:52 -06:00
Nathan Sobo
ed48622a3a
Rename FileFinder to FuzzyFinder, which will make more sense when we can also use it to fuzzy-find on open buffers
2012-06-28 11:35:30 -06:00
Corey Johnson
a95e406bf3
Remove unused vars from Directory
2012-06-27 10:12:44 -07:00
Nathan Sobo
5b11762989
Fix bug where edit sessions were not properly restored on refresh
2012-06-27 07:53:32 -06:00
Nathan Sobo
086b33f606
Merge branch 'snippets'
...
Conflicts:
src/app/root-view.coffee
2012-06-26 22:58:32 -06:00
Nathan Sobo
6db42114f9
If the user attempts to switch tab stops while the cursor is not *on* a tab stop, the snippet is terminated
2012-06-26 22:43:23 -06:00
Nathan Sobo
01993f1be2
Editor selects text that was typed at a tab-stop when shift-tabbing back to it
2012-06-26 17:55:40 -06:00
Corey Johnson
1059a6a495
Make dev tools work with specs
2012-06-26 16:41:13 -07:00
Corey Johnson
a364fff7e6
meta-alt-i toggles docked dev tools
2012-06-26 16:41:13 -07:00
Nathan Sobo
65991c686a
Snippets can contain placeholder text (but can't nest yet)
...
Snippet placeholders are managed by adding an "anchor range" to the edit session. An anchor range basically tracks two anchors for the start and the end of the range.
2012-06-26 17:29:32 -06:00
Nathan Sobo
6389b19b7c
Merge branch 'master' into snippets
2012-06-22 16:25:33 -06:00
Nathan Sobo
e2efa95d13
Ensure that 'change-screen-range' events are triggered on selections by backspace
2012-06-22 16:20:50 -06:00
Nathan Sobo
c4046bbdc5
Place snippet tab relative to snippet start position. Terminate when pressing 'tab' at last tab-stop.
2012-06-22 12:52:40 -06:00
Nathan Sobo
5c6e94ec74
Tab stops are associated with anchors so we can jump to them event when the buffer changes
2012-06-22 12:07:20 -06:00
Nathan Sobo
1710ecc8a9
Merge branch 'master' into snippets
2012-06-21 17:57:40 -06:00
Nathan Sobo
8fa5723be9
When buffer or display-buffer change, update the position of all anchors on EditSession.
...
Cursors and selections no longer need to handle buffer/display-buffer changes directly. They register anchors with the EditSession, and subscribe to changes in their position instead. This opens up the anchor facility for use by extensions that want to track the screen position of a point in the buffer as the buffer and display buffer change.
2012-06-21 17:57:23 -06:00
Nathan Sobo
7f1b094ed2
Make Cursor and Selection create anchors via EditSession.prototype.addAnchor
2012-06-21 17:29:21 -06:00
Nathan Sobo
f1678fdafe
Use an overloaded 'tab' keybinding and the new abortKeyBinding method to implement conditional snippet expansion
...
If the current word prefix doesn't correspond to a valid snippet, we abort the key binding and try the next one, which ends up being the standard tab binding so a typical tab gets inserted. This is a mechanism that could support overloading of arbitrary keys.
2012-06-20 22:47:05 -06:00
Nathan Sobo
68cb9992fc
Sort candidate binding sets in a stable way in Keymap to preserve load order for a valid cascade
2012-06-20 22:45:14 -06:00
Nathan Sobo
e1309f7c66
Key binding event handlers can call abortKeyBinding on the event object to abort and try the next binding
2012-06-20 22:08:16 -06:00
Nathan Sobo
d50b7f7a37
Trigger a 'new-edit-session' event when Project.prototype.open creates an EditSession
2012-06-20 17:40:45 -06:00
Nathan Sobo
4c8aeb16bb
Merge branch 'master' into snippets
...
Conflicts:
src/app/window.coffee
2012-06-20 17:11:25 -06:00
Nathan Sobo
e3d7ab31b5
Merge branch 'project-refactor'
2012-06-20 16:41:54 -06:00
Nathan Sobo
b4d77fd107
Load user configuration as part of RootView initialization, before any editors are created
2012-06-20 16:06:45 -06:00
David Graham & Nathan Sobo
dc6c0a3e35
Rename userConfigurationPath to configFilePath so I can add configDirPath as well
2012-06-20 11:19:40 -06:00