├── .gitignore ├── CHANGELOG.md ├── README.md ├── styles └── multirow-tabs.less ├── keymaps └── multirow-tabs.cson ├── package.json ├── menus └── multirow-tabs.cson ├── lib └── multirow-tabs.coffee └── LICENSE.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.1.0 - First Release 2 | * Every feature added 3 | * Every bug fixed 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # multirow-tabs package 2 | 3 | Display Atom editor tabs in multiple rows for easy navigation and viewing. 4 | 5 | ![A screenshot of your package](https://cloud.githubusercontent.com/assets/7910250/10495273/fd221f16-726f-11e5-822c-b1199718194d.gif) 6 | -------------------------------------------------------------------------------- /styles/multirow-tabs.less: -------------------------------------------------------------------------------- 1 | // The ui-variables file is provided by base themes provided by Atom. 2 | // 3 | // See https://github.com/atom/atom-dark-ui/blob/master/styles/ui-variables.less 4 | // for a full listing of what's available. 5 | @import "ui-variables"; 6 | 7 | .multirow-tabs.tab-bar { 8 | height: auto; 9 | flex-wrap: wrap; 10 | .tab { 11 | flex-basis: auto; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /keymaps/multirow-tabs.cson: -------------------------------------------------------------------------------- 1 | # Keybindings require three things to be fully defined: A selector that is 2 | # matched against the focused element, the keystroke and the command to 3 | # execute. 4 | # 5 | # Below is a basic keybinding which registers on all platforms by applying to 6 | # the root workspace element. 7 | 8 | # For more detailed documentation see 9 | # https://atom.io/docs/latest/behind-atom-keymaps-in-depth 10 | 'atom-workspace': 11 | 'ctrl-alt-m': 'multirow-tabs:toggle' 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "multirow-tabs", 3 | "main": "./lib/multirow-tabs", 4 | "version": "0.3.3", 5 | "description": "Display Atom editor tabs in multiple rows for easy navigation and viewing", 6 | "keywords": [], 7 | "activationCommands": { 8 | "atom-workspace": "multirow-tabs:toggle" 9 | }, 10 | "repository": "https://github.com/kuychaco/multirow-tabs", 11 | "license": "MIT", 12 | "engines": { 13 | "atom": ">=1.0.0 <2.0.0" 14 | }, 15 | "dependencies": {} 16 | } 17 | -------------------------------------------------------------------------------- /menus/multirow-tabs.cson: -------------------------------------------------------------------------------- 1 | # See https://atom.io/docs/latest/hacking-atom-package-word-count#menus for more details 2 | 'context-menu': 3 | 'atom-text-editor': [ 4 | { 5 | 'label': 'Toggle multirow-tabs' 6 | 'command': 'multirow-tabs:toggle' 7 | } 8 | ] 9 | 'menu': [ 10 | { 11 | 'label': 'Packages' 12 | 'submenu': [ 13 | 'label': 'multirow-tabs' 14 | 'submenu': [ 15 | { 16 | 'label': 'Toggle' 17 | 'command': 'multirow-tabs:toggle' 18 | } 19 | ] 20 | ] 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /lib/multirow-tabs.coffee: -------------------------------------------------------------------------------- 1 | {CompositeDisposable} = require 'atom' 2 | 3 | module.exports = MultirowTabs = 4 | 5 | activate: (state) -> 6 | # Events subscribed to in atom's system can be easily cleaned up with a CompositeDisposable 7 | @subscriptions = new CompositeDisposable 8 | 9 | # Register command that toggles this styling 10 | @subscriptions.add atom.commands.add 'atom-workspace', 'multirow-tabs:toggle': => @toggle() 11 | 12 | deactivate: -> 13 | @subscriptions.dispose() 14 | 15 | toggle: -> 16 | pane = atom.workspace.getActivePane() 17 | paneElement = atom.views.getView(pane) 18 | paneElement.getElementsByClassName('tab-bar')[0].classList.toggle('multirow-tabs'); 19 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | --------------------------------------------------------------------------------