Nathan Sobo
2e0943f41a
Upgrade PEG.js to 0.7.0 for line and column tracking (needed for snippet tab-stops)
2012-06-21 16:29:12 -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
Nathan Sobo
a8a1a74b11
Refactor Snippets to a class that creates an instance for each Editor
2012-06-20 17:46:22 -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
583af86f68
Add _.adviseBefore for adding before advice to methods
2012-06-20 17:34:21 -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
396857660b
Merge remote-tracking branch 'origin/project-refactor'
2012-06-20 16:51:40 -06:00
Nathan Sobo
e3d7ab31b5
Merge branch 'project-refactor'
2012-06-20 16:41:54 -06:00
Nathan Sobo
2fe8ba41d0
Fix benchmarks by castrating loadUserConfiguration method correctly now that it's moved
2012-06-20 16:18:21 -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
Corey Johnson
c9b2535fac
Fix setBuffer calls in benchmark-suite
2012-06-20 13:07:50 -07:00
Nathan Sobo
dd69abbdfe
Add test case for non-matching prefix causing a regular tab to be inserted
2012-06-20 12:20:37 -06:00
Nathan Sobo
8a5af9cd17
Remove stray console.logs
2012-06-20 12:06:48 -06:00
David Graham & Nathan Sobo
d992458c8c
Load snippets from .atom/snippets when snippets extension is activated
2012-06-20 11:49:29 -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
David Graham & Nathan Sobo
498adc00bf
💄 newline at eof
2012-06-20 11:18:51 -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
e4409be95a
Parse multiple snippets and allow any characters in snippet body
2012-06-19 17:56:03 -06: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
David Graham & Nathan Sobo
4204b27751
Start on Snippets extension
...
Can parse a basic snippets file
2012-06-19 17:19:47 -06:00
David Graham & Nathan Sobo
c97d78a31d
Add David Graham to pairs file
2012-06-19 17:17:35 -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
d9dec3d974
Add spec confirming that multi-keystroke bindings can match against bindings in multiple binding sets
...
For example, if you have a very unspecific binding "ctrl-x ctrl-c", you can also have very specific "ctrl-x …" bindings, and bindings from both sets can be matched. A partial match in a more specific does not rule out later matches in a less specific set.
2012-06-18 17:05:52 -06:00
Nathan Sobo
9e5b4beeaa
Add spec to confirm that an entering an unmatched keystroke sequence clears the queued keystrokes
2012-06-18 16:53:58 -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
d9500e6bcd
Atom spec no longer closes all open windows
...
This makes life easier when you're running the spec suite while actually using atom to edit itself.
2012-06-15 16:24:49 -06: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