Nova

Extensions


Readme

Tabs Sidebar

Tabs Sidebar provides a sidebar to list and manage your currently open document tabs.

It was inspired by the Tab List Nova extension, but is a complete rewrite with numerous improvements and new features.

Features

  • Sort by tab bar order, file kind, or alphabetically
  • Sort by custom order using up/down buttons and context menu
  • Custom sort order is saved in project config
  • Group by kind, based on syntax
  • Indicators for unsaved tab, remote tab, and in trash
  • Shows Git status as icon and/or text
  • Right-click context menu with options to "Close Tab", "Show in Finder", "Copy Path", etc.
  • Option to open tab on single click or double click
  • Option to show or hide parent folder names
  • Option to show file count when grouping by kind
  • Localized in French, German, Chinese, and Japanese

Requirements

  • Tabs Sidebar uses AppleScript to read and activate certain menubar items such as "Close Tab", "Show in Files Sidebar", and "Clean Up By Tab Bar Order". Accessibility permissions must be granted to Nova to perform these actions.

To give Nova accessibility permissions, open System Preferences → Security & Privacy → Accessibility, click the lock to make changes, and check on Nova in the list.

  • Git >= 2.15 is required to show Git status

In order to use the Git status feature, Git must be installed and available on the command line, and your Nova project folder must be a Git repo.

Usage

To use Tabs Sidebar:

  • From the "All Sidebars" panel, click and drag the "Tabs" item up into the toolbar or out into a new split
  • All open document tabs will be listed in the sidebar. Click or double-click an item to open its tab
  • Click the up/down buttons when a tab or group is selected to rearrange the list
  • Right-click in the sidebar or click the (…) button for sorting options
  • When "Sort Alphabetically" is enabled, custom sorting is not available. When disabled, custom order is restored.
  • When "Group by Kind" is enabled, only custom sorting of group folders is available.

Configuration

To configure global preferences, open Extensions → Extension Library... then select Tabs Sidebar's Preferences tab.

Known limitations

  • Tabs Sidebar cannot rearrange Nova's tab bar because there is currently no API, menu item, or keyboard shortcut for managing tabs order
  • Cannot differentiate between a local file and remote file with the same name, leading to inconsistent opening and sorting. This is due to the Window menu not indicating which files are remote.
  • Does not update list when document file path changes

Changelog

v1.5.3 - 2022-10-28

Added

  • Reload tab list when document syntax changed

Changed

  • Update sidebar icon to better match Nova interface
  • Update Typescript definitions

v1.5.2 - 2022-10-17

Added

  • Add back missing icons for .editorconfig, .gitignore, .css.map, .js.map, and typescript .t.ds definitions.

v1.5.1 - 2022-10-15

Fixed

  • Filenames with @ symbol not showing git status
  • Files inside untracked folders not showing git status
  • Trashed files showing .Trash as parent folder twice

v1.5.0 - 2022-10-08

Added

  • Show Git status indicators next to file names, configurable as icon and/or text
  • Remember collapsed state of groups
  • Group order can now be moved up/down when grouping by kind
  • Basic workspace preferences pane

Changed

  • Refactored app as a class, moved TabDataProvider to separate file
  • Never activate open tab command when extension highlights a tab programmatically

Fixed

  • Wrong tab sometimes being selected on startup
  • Wrong tab sometimes being selected on document open/close

v1.4.2 - 2022-09-20

Changed

  • Improved performance of switching remote tabs by combining applescripts into one script
  • Disable unavailable context menu items for remote tabs (Show in Finder, Copy Relative Path)

Fixed

  • Some remote tabs not opening on macOS < 11

v1.4.1 - 2022-09-20

Fixed

  • Opening, closing, sorting remote tabs when workspace has no path
  • Opening, closing, sorting tabs when file browser or terminal tab is currently active

v1.4.0 - 2022-09-18

Added

  • Localized in French, German, Chinese, Japanese

Changed

  • Rewritten with Typescript
  • Slightly smaller default unsaved tab symbol

Fixed

  • Prevent externally changed files from having their tabs inadvertently opened
  • Fixes tabs switching when discarding git changes
  • Fix error with getting parent of null element

v1.3.1 - 2022-08-08

Fixed

  • Bug with timeoutId causing extension to fail to load

v1.3.0 - 2022-08-07

Added

  • Ability to close remote tabs from the context menu

Changed

  • Always activate extension no matter which documents are in workspace
  • Refactored opening remote tabs

Fixed

  • Newly opened tabs being placed in wrong order

v1.2.1 - 2022-08-05

Changed

  • Improved performance of load on activation

v1.2.0 - 2022-08-05

Added

  • Refresh command for when file name/path or syntax changes

Changed

  • Greatly improved performance of moving tabs up/down by only refreshing moved items
  • Scroll tab into view when moving up/down or focusing in editor

Fixed

  • Error when trying to move tab past end rapidly

v1.1.8 - 2022-08-03

  • Prevent error popup when attempting to move tabs too quickly past end

v1.1.7

  • Prevent error popup when moving tabs up/down too quickly

v1.1.6

  • Don't try to open document if it's already the one that's opened

v1.1.5

  • Make shell scripts executable using Process instead of fs.chmod

v1.1.4

  • Correct size for extension icon

v1.1.3

  • Keep last document open when opening project

v1.1.2

  • Resolve rapid tab switching bug on launch

v1.1.1

  • Added new logo
  • Updated TODO

v1.1.0 - 2022-08-02

  • Automatically make shell scripts executable if they are not already
  • Fixes certain commands not working

v1.0.0 - 2022-08-02

Initial release


License

MIT License

Copyright (c) 2022 Austen Blokker

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.