Pane/pane-element class that lays out items sequentially instead of in tabs?


I would like to create a new pane type that lays out the text editors sequentially so that you scroll down through them instead of having them in separate tabs. I can generally see how to do this by rewriting the pane and pane-element classes, but I don’t see how I can implement this without actually rewriting the core classes. I’d obviously prefer to use the package system to implement this, perhaps only for a specific file type. But I don’t see how to “inject” a new pane class into the layout system.

I’m looking for general design advice on how to accomplish this. Is there a better way to do this than creating a new pane type? I also considered some type of sub-pane class that gets placed into the existing panes but it seemed problematic to get subsequent items added to this sub pane.

Thanks for the help.



One option I can see is that you could create a custom opener that handles the foo:// scheme. If one of your special panes isn’t open yet, you open one. If one is already open, you add an item to the one already open. The custom opener is how the markdown-preview package works (among many others). You could open your special pane as an actual pane … or just as a new tab in the existing pane … or something else.


Thanks for the suggestion. I’ll check out that method. Atom is great, by the way. It’s nice to dig into such well-crafted code. Def motivating me to learn coffeescript.

Best - Andrew