Commit Graph

14143 Commits

Author SHA1 Message Date
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
25433ace26 Return false from FileFinder click handler to prevent loss of focus 2012-06-29 11:03:33 -06:00
Nathan Sobo
8a349707eb Remove redundant method 2012-06-29 11:02:36 -06:00
Nathan Sobo
5ea1e6f05c Merge remote-tracking branch 'origin/select-from-file-finder'
Conflicts:
	src/extensions/fuzzy-finder.coffee
	static/fuzzy-finder.css
2012-06-29 10:40:34 -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
f4832148cd Buffer finder does not open if there are no open buffers with paths 2012-06-28 13:17:49 -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
3cce8f9afd Ensure single-line snippets do not indent the following line 2012-06-27 08:03:54 -06:00
Nathan Sobo
79d9faba58 Make fs.isFile return false for null/undefined paths 2012-06-27 07:57:05 -06:00
Nathan Sobo
2cb993760b Make fs.exists return false for null/undefined paths 2012-06-27 07:56:02 -06: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
a36caeb015 Make strip whitespace a valid extension 2012-06-26 16:41:13 -07:00
Corey Johnson
1059a6a495 Make dev tools work with specs 2012-06-26 16:41:13 -07:00
Corey Johnson
3efcc50a0d Renamed call to ControlPanel.hide to ControlPanel.detach 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
3483317549 Subsequent lines of a snippet are indented based on the first line 2012-06-22 22:57:49 -06:00
Nathan Sobo
de9486320d Shift-tab moves through snippet tab stops backwards 2012-06-22 22:10:14 -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
ae2b686802 Parse tab-stop positions correctly when there are multiple on a line 2012-06-22 11:44:58 -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
a936b6b716 Tab advances between snippet tab stops. Still need to account for tab stops moving due to buffer changes. 2012-06-21 16:53:13 -06:00
Nathan Sobo
f9ec6214e6 Snippets parser can parse tab stops in the form of $1, $2, etc.
It associates each tab stop with its position relative to the beginning of the snippet body, and strips the '$number' marker from the inserted snippet body.
2012-06-21 16:33: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
c276a4029e Allow whitespace after last snippet declaration 2012-06-20 21:53:06 -06:00
Nathan Sobo
4590321f0a Apply a hybrid approach to handling events in snippets extension 2012-06-20 21:52:53 -06:00
Nathan Sobo
1bec4c8404 Snippets now advise the insertTab method on EditSessions instead of intercepting events on Editor 2012-06-20 17:56:02 -06:00
Nathan Sobo
9c02e05051 Preserve the value of this when applying before advice 2012-06-20 17:55:29 -06:00