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 type, based on syntax
  • Group by folder hierarchy
  • 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

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.

Accessibility Permissions

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 → Privacy, and click the lock to make changes.
  • Scroll down to Accessibility and check on Nova in the list.
  • Scroll down to Automation and check on System Events under Nova.

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.7.1 - 2024-09-19

Fixed

  • Folders having the wrong path info when copying path

v1.7.0 - 2024-09-19

Added

  • New "Close All Tabs" menu item to quickly clean up a workspace

Changed

  • Watching for Git status changes is now less buggy
  • Refactored how folder hierarchy is built in group by folder view

Fixed

  • Git status not auto-updating in group by folder view when saving document

v1.6.1 - 2024-02-08

Fixed

  • Collapsed folders not being remembered after switching out of Group By Folder

v1.6.0 - 2024-02-08

Added

  • Group by folder option
  • Remember collapsed folder state
  • New Dockerfile icon
  • Updated macOS permissions instructions in README
  • Popup notification when Nova is unable to execute Applescript commands

Changed

  • Disabled open/close context menu items on type group folders
  • Track custom order by file URI instead of path

v1.5.12 - 2024-01-25

Added

  • Objective-C++ folder name
  • Ruby folder icon when grouping by kind
  • Add syntax icons for group folders when file extension doesn't match syntax

Fixed

  • Attempt to fix documents in sidebar not updating properly when adding/removing editors
  • Fix tree view reloading every time new untitled document is edited
  • Disable Show In... and Copy Path context menu items for group folders

v1.5.8 - 2023-06-03

Added

  • Preference to show folder path in forward or reverse order

Fixed

  • Parent folder displaying twice in sidebar when always show parent folder option is selected

v1.5.7 - 2023-06-01

Fixed

  • Attempt to fix extension service crash by delaying start of filesystem watcher on launch

v1.5.6 - 2023-05-28

Fixed

  • Attempt to fix extension crash message on Nova launch by stopping filesystem watcher before quit

v1.5.5 - 2023-05-20

Added

  • Dockerfile icon
  • Objective-C group name
  • Inverted Git status icons for working tree status

v1.5.4 - 2023-04-18

Changed

  • Don't reload Git status if changed file is ignored by .gitignore

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.