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
Corey Johnson & Nathan Sobo
af9aec7cbc
SoftWrap state is stored in EditSessions, but it is set and toggled via Editor.
2012-06-20 09:28:23 -07:00
Corey Johnson & Nathan Sobo
d1c1f3cfce
Move autoIndent, tabText, softTabs and softWrap to project
2012-06-20 09:28:23 -07:00
Corey Johnson & Nathan Sobo
4e78b29e81
Replace Editor.setBuffer with Editor.edit
2012-06-20 09:28:23 -07:00
Corey Johnson & Nathan Sobo
1280370fd1
Editor constructor requires an editSession (unless it is a mini buffer)
2012-06-20 09:28:23 -07:00
Corey Johnson & Nathan Sobo
5efc853c36
Replace Editor.activeEditSessionIndex with activeEditSessionIndex method
2012-06-20 09:28:22 -07:00
Corey Johnson & Nathan Sobo
aa10ae383b
Remove suppressBufferCreation from Editor initialize
2012-06-20 09:28:22 -07:00
Corey Johnson & Nathan Sobo
4659fd7dc3
Project.open returns an editSession instead of a buffer.
...
First step in removing the coupling of Editor and Buffer. Editor should get all information about the active buffer from the activeEditSession.
2012-06-20 09:28:22 -07:00
Corey Johnson & Nathan Sobo
4bd5a017cf
Add inspect view of edit-session
2012-06-20 09:28:22 -07:00
David Graham & Nathan Sobo
5b8cc8a6b6
Snippets matching the cursor's word prefix are inserted on 'tab' events
2012-06-19 17:47:09 -06:00
Nathan Sobo
b4e39785e5
"ctrl-w w" focuses the next pane. Move select-word binding to ctrl-W to avoid collision
2012-06-18 20:33:25 -06:00
Nathan Sobo
c21766c328
Add RootView.proto.focusNextPane
2012-06-18 20:27:39 -06:00
Nathan Sobo
171a19369a
Fix remaining multi-keystroke specs
2012-06-18 17:31:26 -06:00
Nathan Sobo
85f695e4f1
Ensure that only whole keystrokes are matched in binding prefix matches
2012-06-18 17:31:11 -06:00
Nathan Sobo
5ef5c4565a
Merge branch 'master' of github.com:github/atom into multi-keystroke-bindings
2012-06-18 17:06:17 -06:00
Nathan Sobo
ac4aae2cec
WIP: Begin introducing multi-keystroke bindings to Keymap
2012-06-18 16:46:39 -06:00
Corey Johnson & Nathan Sobo
db833a4782
Don't apply all editor bindings to mini editors
2012-06-15 17:49:21 -07:00
Corey Johnson & Nathan Sobo
c02e5bbdbf
Do not allow root view to set a font-size less than 1
2012-06-15 17:30:10 -07:00
Corey Johnson & Nathan Sobo
db69ee5627
Calculate gutter dimensions when editor's dimensions are calculated
2012-06-15 17:30:10 -07:00
Nathan Sobo
1c29fc1417
Ctrl-w selects word under cursor
2012-06-15 16:17:45 -06:00
Nathan Sobo
f99ce5782c
💄
2012-06-15 16:03:54 -06:00
Corey Johnson & Nathan Sobo
951f76f2bf
Serialize root view state to a string of JSON when storing it on the window upon refresh
...
This avoid situations where arrays in the window state pointed to a different constructor than the current context's Array constructor.
2012-06-15 15:34:07 -06:00
Corey Johnson & Nathan Sobo
4a35427db3
Delete the newline at the end of a fold only when it makes sense
2012-06-15 14:53:15 -06:00
Nathan Sobo
95622dc64e
If the cursor is at any buffer position inside a fold, backspace deletes the folded text
2012-06-15 14:41:05 -06:00
Corey Johnson & Nathan Sobo
8d516fe4fe
Use a legitimate replace method in AceAdaptor.
...
Fixes comment toggling in coffeescript, and requires a better implementation of findMatchingBracket in AceAdaptor for outdent to work.
2012-06-15 11:56:09 -07:00
Corey Johnson & Nathan Sobo
e38ade2730
Bugfix: Backspace in middle of line below a fold no longer deletes the newline preceding the cursor
2012-06-14 17:08:14 -06:00
Corey Johnson & Nathan Sobo
1dfbaf67d1
Delete at the end of a line above a fold deletes the folded lines (leaving a newline)
2012-06-14 16:58:47 -06:00
Corey Johnson & Nathan Sobo
daa688b1e1
Merge branch 'master' of github.com:github/atom
...
Conflicts:
src/app/edit-session.coffee
2012-06-14 16:25:05 -06:00
Corey Johnson & Nathan Sobo
f025bec910
If a selection ends on a fold, backspace/delete delete all lines inside the fold
2012-06-14 15:52:54 -06:00
Corey Johnson & Nathan Sobo
9ada2daebd
If command panel selects text within a fold, the fold is destroyed
2012-06-14 14:00:35 -07:00
Corey Johnson & Nathan Sobo
8a2aa881f7
💄
2012-06-14 13:57:33 -07:00