Commit Graph

194 Commits

Author SHA1 Message Date
Nathan Sobo
fee835f899 Add a PaneContainer subview for RootView
PaneContainer is responsible for all pane-related logic. Laying them
out, switching focus between them, etc. This should help make RootView
simpler and keep pane-layout related tests in their own focused area.
2013-03-07 09:28:52 -08:00
Nathan Sobo
45eec6a8ff Get more specs passing. Failing specs due to missing features. 2013-03-07 09:28:52 -08:00
Nathan Sobo
bee1efed5c Make RootView.open work with new Pane behavior
Still a bit of a WIP. Panes don't yet take the "active" class
correctly when focused.
2013-03-07 09:28:51 -08:00
Nathan Sobo
77bf3e4d74 Get root view pane specs passing 2013-03-07 09:28:51 -08:00
Nathan Sobo
beaeac4425 Rename buildEditSessionForPath to buildEditSession
Since this is the more external method, having a shorter name
is more convenient. The former `buildEditSession` method took a
Buffer, and is now called `buildEditSessionForBuffer`.
2013-03-07 09:28:51 -08:00
probablycorey
57b0151cd2 Remove the dev-mode css style, for now 🔜 2013-03-05 16:10:03 -08:00
probablycorey
9331b3beed Add .dev-mode class to root view 2013-03-05 16:10:02 -08:00
Corey Johnson
44680ad50c Revert "💄"
This reverts commit c2c4d03c2d.
2013-02-27 10:11:02 -08:00
Corey Johnson
c2c4d03c2d 💄 2013-02-27 08:51:51 -08:00
Corey Johnson & Nathan Sobo
9e8831f710 RootView.initialize no longer assigns window.rootView or calls open 2013-02-19 18:26:50 -07:00
Corey Johnson & Nathan Sobo
0b5ea8578f Eliminate rootView.project references. 2013-02-19 18:26:50 -07:00
Nathan Sobo
7f2747ead0 Make project a global and refactor startup process 2013-02-19 18:26:50 -07:00
Nathan Sobo
7bdd51b456 Rename deserializeView to deserialize
In additional, rename `registerViewClass(es)` to `registerDeserializer(s)`.
This moves us to a situation where any kind of object may want to be
deserialized, not just views.
2013-02-19 09:48:40 -07:00
Nathan Sobo
d3c2623b61 Make deserializeView a global method
…along with `registerViewClass(es)`
2013-02-18 18:08:18 -07:00
Kevin Sawicki
07c5a94613 Remove unused packages ivar 2013-02-12 15:47:31 -08:00
Justin Palmer
b2ce4ca6d5 merge dev, fix conflicts from package rewrite 2013-02-09 20:17:29 -08:00
Justin Palmer
a1a663cd30 implement indexOfPane in RootView to get array index
We need something like this because jquery's el.index() doesn't work
when multiple panes are spread out among different rows and columns.
2013-02-09 19:38:55 -08:00
Corey Johnson & Kevin Sawicki
4619e1847f Manage package lifecycle in Atom instead of in RootView 2013-02-08 17:28:08 -08:00
Corey Johnson & Kevin Sawicki
bb5778b659 Move package related data to Atom from RootView 2013-02-08 17:28:08 -08:00
Corey Johnson & Kevin Sawicki
c27489f608 Remove name parameter from RootView.activatePackage 2013-02-08 17:28:08 -08:00
Corey Johnson & Kevin Sawicki
ed0ced205b Store packages in array instead of a hash by name 2013-02-08 17:28:08 -08:00
Corey Johnson & Kevin Sawicki
8434bdfe91 Load package's configDefaults in AtomPackage
This was previously loaded in RootView.
2013-02-08 17:28:08 -08:00
Corey Johnson & Kevin Sawicki
b93f404fa1 Store packages instead of package modules in RootView 2013-02-08 17:28:07 -08:00
Corey Johnson & Kevin Sawicki
ac6ec1c2a7 Remove rootView as parameter to activate 2013-02-08 17:28:07 -08:00
Nathan Sobo
1cab51cefa RootView can no longer be focused.
Allowing root view to be focused was stealing focus away from the
editor whenever a click event made it to the root view. This unnecessary
switching of focus was interfering with the ability to drag tabs.

But if RootView can't be focused, focus ends up being returned to the
document body when there are no focusable elements. This would be fine,
except for the fact that we frequently bind global events on root view,
and so they aren't triggered when events are triggered on the body. We
could just bind all global events on the body, but this would require
us to always attach elements to the DOM during specs, which is a serious
performance killer in specs.

The workaround is in the keymap. When the keymap handles a key event
that was triggered on the body, it triggers the corresponding semantic
event on the root view anyway, so from the event perspective, it's as
if the root view actually had focus. The only place this might fall
down is if someone wants to capture raw key events. But that's the
keymap's job anyway, and we maybe add a hook on the keymap if such a
need ever arises.
2013-02-08 17:33:37 -07:00
Nathan Sobo
6e191aba5b Move matching bracket insertion to bracket-matcher package 2013-02-08 09:51:31 -07:00
Kevin Sawicki
cb4f392fa6 Set tab index on root-view to 0
Previously if the tree-view was open and was focused and no
editors were open and tab was pressed the document body would
become focused which would not allow events bound to root view
to be triggerable.

This ensures that the root-view always gets focus back when
another view is tabbed away from.
2013-01-27 10:49:17 -08:00
Brian Lopez & Nathan Sobo
23e917147d Make view deserialization work with arbitrary view classes 2013-01-17 16:32:28 -08:00
Kevin Sawicki
d47e59bc11 💄 2013-01-11 16:49:04 -08:00
Kevin Sawicki
eaa164e109 Use subscribe for window focus event handler 2013-01-11 10:37:33 -08:00
Kevin Sawicki
d27080cee6 Always set pathToOpen in RootView.initialize
Without this an untitled buffer will be opened when
Atom is reopened after being closed with no editors
open.
2013-01-10 16:24:40 -08:00
Kevin Sawicki
6d914cdc7a Don't attach the TreeView if RootView's path to open is a file 2013-01-10 14:11:56 -08:00
Corey Johnson
c3a2b99b69 Merge pull request #124 from github/auto-indent-config
Auto-indent config
2013-01-10 11:02:54 -08:00
Corey Johnson
0c0d48b8f6 Add commands to toggle auto-indent options 2013-01-10 10:40:05 -08:00
Kevin Sawicki & Nathan Sobo
06e39595ba Make RootView listen for events before loading packages
This is because RootView listens to some of its own events. It needs
to be first in line to handle its own events because package event
handlers might rely on tree view's event handlers having been run.
This also brings behavior more in line with what we'll experience in
specs.
2013-01-09 19:27:19 -07:00
Kevin Sawicki & Nathan Sobo
3db7af1edf Don't show the tree view until the project has a path 2013-01-09 19:27:19 -07:00
Nathan Sobo
46331ded03 Merge remote-tracking branch 'origin/command-extensions' into dev
Conflicts:
	spec/app/editor-spec.coffee
	spec/app/root-view-spec.coffee
	src/app/editor.coffee
	src/extensions/strip-trailing-whitespace.coffee
2013-01-09 14:18:10 -07:00
Kevin Sawicki
3e7f710b35 💄 2013-01-09 11:07:45 -08:00
Corey Johnson
d4b74f9858 Migrate to new RootView serialization scheme 2013-01-09 10:43:41 -08:00
Corey Johnson & Kevin Sawicki
131708ba37 Serialize grammar overrides for paths 2013-01-08 15:24:14 -08:00
Nathan Sobo
0624ebaf5d Set config defaults for a package from its module's configDefaults 2013-01-04 17:23:24 -07:00
Nathan Sobo
8591c86733 Pass a name string to RootView.activatePackage & deactivatePackage
Previously we were relying on the package module itself to have a
`name` field. But now that we're using `atom.loadPackage` to load up
packages, we can infer the name of the module from the name of the
package directory.
2013-01-04 14:33:01 -07:00
Kevin Sawicki & Nathan Sobo
2ffc0cf13d Rename 'active-editor-path-change' to 'root-view:active-path-changed' 2013-01-04 11:25:45 -07:00
Kevin Sawicki & Nathan Sobo
0589012e86 Rename 'editor-path-change' to 'editor:path-changed' 2013-01-04 11:25:45 -07:00
Nathan Sobo
bb913ef9e8 Merge branch 'config' 2012-12-31 12:43:25 -06:00
Kevin Sawicki
e1db5432dd Support toggling dev tools from event palette 2012-12-29 10:31:38 -08:00
Nathan Sobo
f4d53a017c Merge branch 'master' into config 2012-12-28 11:32:24 -06:00
Kevin Sawicki
575e34d5e4 Forward window focus when active element is body
This problem was when the focus element is detached
when navigating away from the window and when
the window is then given focus again nothing has
focus.

The solution is to use RootView's focus handler
on the window to bring focus to the editor or
other view when the document's active element
is the body meaning nothing inside the RootView
currently has focus.
2012-12-27 21:56:43 -08:00
Corey Johnson
4244e673af Load themes from Config.load 2012-12-27 15:52:09 -08:00
Corey Johnson
0d946078c9 Atom Themes can be loaded 2012-12-27 14:31:13 -08:00