Sidebar enhancements I would love to see

Nova Missing / Desired Functionalities

I’ve been working on a sidebar and have hit some limitations as of late. I’m listing them here in the hopes they, or similar functionalities, may be seen one day.

Terminal commands / attachments:

Many services such as Docker and Ruby Rails frequently require the use of a terminal session. These are often tied to something within the given interface, where ideally the user may trigger a session, or a certain action to view output, from within the GUI. In the case of my needs, I would like to allow the user to enter a containers session from the sidebar, or view a live stream of logs.

Clarification

To elaborate, I’m referring to the ability to pass a command into an interactive shell using a local or remote terminal window. (i.e. rails c, luaprompt, python etc…)

Sidebar:

Sidebar sections:

For sidebars with multiple sections the readability can become restrictive when all sections are persistently open. While one could drag their individual heights during use, it is cumbersome and slow. In order to declutter, and create a more dynamic behavior for a given sidebar, there are a couple options that would be beneficial.

	1. Collapsing sidebar sections. A simple button to automatically fold, or resume previous hight, would make moving focusing on what is needed at any given time fairly simple and straight forward.
	2. Moving sidebar sections, similar to sidebars themselves. Certainly more complicated, and one could certainly break their sections up into individual sidebars, this makes the menu and naming messy.

Hiding context options by contextValue:

It would be ideal to not simply disable/enable context menu items, but to also hide ones not relevant to a selected item. For a sidebar that contains a variety of different types of representations, having a single context menu that disables/enables per use case leaves a lot of unnecessary bloat.

Context menu partitions: Exists: here. Thanks eablokker!

Horizontal line barriers between groups of context menu options, as we see throughout OS X, helps organize usability. It would be nice to define such a thing for the sidebar context menus as well.

Sidebar Section loading animation:

Content loaded into a sidebars section may not load immediately (i.e. network). An animation we can trigger to inform the user a request is in process would be nice, rather than a blank box.

Dynamic placeholderText/Image:

Depending on how the data is populated, different circumstances may warrant a different default response within the section. Say a requested list of data is valid, but empty. It should signify it was successful but empty. However, say the host could not be reached. The placeholderText should be dynamically settable to indicate the host was down.

Filebrowser:

Filetype commands / context options:

Certain filetypes have actions that are typically performed against / with them. If a context menu is brought up on such files, it would be nice for an extension to optionally provide a command for that file. (i.e. executing shell script in terminal, docker-compose up/run/down)

Terminal Commands
You can run terminal commands using the Process class. I think you’re asking about displaying a terminal window in a sidebar. You can’t do that, but you could parse your terminal output and display it as a treeview list in a sidebar.

Also can maybe use the Task object to run predefined terminal commands which I think can display their output in the reports sidebar.

Context Menu Separators
You can make context menu separators like this:

{
  "title": "Item 1"
},
{"separator": true},
{
  "title": "Item 2"
}

Others
I second all your other requests.

Terminal Commands

I’ve added a clarification. More specifically what I’m hoping for is the ability to execute an interactive command, in a local/remote terminal. (i.e. ruby c, luaprompt, python, etc…)

Those are obviously over simplified examples of just starting an empty interactive shell. But the hope is to allow a GUI driven, dynamic entry point using the ability to copy/execute a command in a new terminal session using the built-in Nova terminals.

Context Menu Separators

How I missed that I have no idea. Thanks! :slight_smile: