Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve workspace management #1133

Closed
2 of 4 tasks
stevencl opened this issue Dec 9, 2015 · 20 comments
Closed
2 of 4 tasks

Improve workspace management #1133

stevencl opened this issue Dec 9, 2015 · 20 comments
Assignees
Labels
feature-request Request for new features or functionality ux User experience issues
Milestone

Comments

@stevencl
Copy link
Member

stevencl commented Dec 9, 2015

We need to improve the way that the users workspace is managed. The following (non-exhaustive) list of items describes what we should do:

  • - When a user clicks an editor close button we should show the file that was previously opened in that editor (we could also consider showing a set of file thumbnails and allow the user to choose the file to open)
  • - We should explore better ways to indicate which editor is currently active
  • - We should explore better ways to move and open files in different editors. For example, should the working files list also indicate which files are currently open and in which editor
  • - We should ensure that whenever the user opens a folder that the whole workspace opens up in the exact same state it was in when they last closed it (including all files, viewports and active viewlet)
@stevencl stevencl added the UX label Dec 9, 2015
@stevencl stevencl self-assigned this Dec 9, 2015
@egamma egamma added the feature-request Request for new features or functionality label Dec 9, 2015
@stevencl stevencl added ux User experience issues and removed UX labels Dec 9, 2015
@stevencl
Copy link
Member Author

Referencing issue #1044

@egamma egamma modified the milestone: Backlog Dec 10, 2015
@stevencl
Copy link
Member Author

See issue #224

@stevencl
Copy link
Member Author

stevencl commented Feb 2, 2016

See issue #2625

@bgashler1
Copy link
Contributor

We also should explore allowing users to toggle editors and panels from being vertically or horizontally split.

@ChrisMiami
Copy link

I just saw this linked from the 'Add tabs' issue, and wanted to comment because I just added this very idea to the UserVoice. If you treat the open files as a stack so that closing the latest brings you back to where you were in the previous file, then that'd be awesome (and expected) default behavior.

@stevencl
Copy link
Member Author

I have gone through the discussion on #224 to create a list of suggestions for improving document management:

Tabs

  • Move a tab out into it's own section or window (creating a new section or window in the process)
  • Ctrl + Tab supports two options:
    • only lists tabs that are currently open. Cycle through list of open tabs in chronological order
    • only list tabs that are currently open. Cycle through list in tab order from left to right
  • Actions for
    • Close a tab
    • Close tabs to the right
    • Close tabs to the left
    • Close all but this tab
  • Reposition/reorder tabs
    • Especially into their own sections or windows
  • Linked tabs -> associate two or more files such that opening one file opens associated files in a group of tabs
  • Remove working files list
  • Dynamic sizing of tabs optimised to ensure file name is visible
  • Preview tab
    • Single click opens file in preview
    • Editing and double click opens file in permanent tab
  • Dynamic tab cleanup when document well becomes overloaded (e.g., consider removing tabs that have not been viewed or edited for some length of time)
  • Open new file to the right or left of current tab
  • Option to hide tab UI
  • Show path name in tab but not at the expense of showing the file name
  • Clear indication of currently active tab
  • Prompt to save changes on closing tab containing file with unsaved changes (no working files)

Stacked editors

  • Each editor maintains a stack of files that have been opened (pushed onto the stack) and closed (popped off the stack). Closing a file pops it off the stack, making the next file on the stack visible
  • Ctrl+Tab lists all files that have been opened in chronological order

Document management

  • Multiple sections contain stacked editors or multiple tabs
  • Sections can be split horizontally and vertically
  • Ctrl-n to focus on section n

@AmadeusW
Copy link
Member

As a new user to VS code, every day I accidentally merge the two-column layout into single-column layout when I intend to just close the document.

Ideally, the close button would close the document and another document would come in its place.
I think we need to address two other buttons in the top bar that have UX issues:

  • The Split Editor button only supports splitting a view into two, and lacks the reverse counterpart. The reverse counterpart would take on the role of changing layout to 1 column less
  • Switch to Changes View also doesn't have its reverse counterpart.

I know that existing VS code users are already adjusted to the behavior of the buttons, and I just wanted to point this out before I get accustomed to the current behavior. The buttons don't meet user's expectations (they don't offer affordability) and thus may evoke a negative feeling in other newcomers to VS code.

@bgashler1
Copy link
Contributor

@AmadeusW thanks for sharing. We would love to get your feedback once we have a prototype of the changes.

@wulftone
Copy link

wulftone commented Jun 6, 2016

I didn't see it mentioned in the list of tab features above, so I'll add my personal favorite (hard to work without it): alt+# => show tab #. I like this for a few reasons: It's easy for my brain to know which tab to go to a specific tab very quickly, I don't even have to read tab titles because they stay in the same tab number slot for a while, and I don't have to use a mouse. Most editors I've used do this, and it's kinda baffling that this feature is missing in VSCode (even Atom does it).

As to the people who have 1000 tabs open at once... why? Just close your files. :) Most people are only working in a small handful of files at a time, which all usually fit into easy alt+1 to alt+5, super easy for a one-handed thumb + finger key-combo, or two-handed (right alt + left #) if that's your style.

Sublime handles tabs perfectly, just copy it!

@bgashler1
Copy link
Contributor

#3742
Request to be able to have a docked viewlet that can autohide and autoshow without pushing editors.

@Earl-Brown
Copy link

To include with the list of things to restore when re-opening a folder:

window metrics.

I often open multiple vsCode windows using the "-n" flag...and the window usually opens kind of small and centered - so I have to resize it to my standard "working location" (I use multiple desktops, so I have one vsCode per desktop - they all use the same "space" but on their own desktops).

It would be a lot easier if I could open a new vsCode window, then open a recent folder, and vsCode would restore itself to where it was when I last left the project.

@theigor
Copy link

theigor commented Apr 14, 2017

I'm not sure if I should open a separate case for this, but in addition to @stevencl and everyone's comments above, I've recently been struggling with the following:

  1. Why can't I split into more than 3 panes - this seems like an unnecessary restriction. On a huge resolution, I like to work across multiple panes. For example, going left to right, view, client service, api, server service, associated data model. I have the resolution to accommodate this but vscode does not.
  2. It would be great to me able to "move file right" and "move file left" like webstorm does it. The split in vscode makes a copy of the file to the right. More often than that, I am looking to move it to the right so I can see it side by side with another file. I can do this in vscode but it's annoying to have to close it in the original pane all the time.
  3. A bit of a wishlist item, but it would be cool to be able to lock a tabgroup to a folder so that if I have a setup like in number 1 above, I can say, "open anything with a parent of /server in this tabgroup"

I haven't looked at the vscode code yet, but perhaps I can work on one of the above. I am just unclear on what should be an extension vs a PR into vscode.

@AmadeusW
Copy link
Member

Number 3 would be fantastic, it's my biggest pet peeve when a file opens in a different tab that I want it to open.

@theigor
Copy link

theigor commented Apr 14, 2017

The way I'm imagining it is
image
But I haven't made any vscode extensions or looked at the code yet. Is there a doc somewhere that draws a clear distinction between what should be an extension vs a pr into vscode?
EDIT: also, I think the icons above are meant to be file-specific - not tabgroup-specific and I don't know what the UX guidelines are for something like this.

@dotnetCarpenter
Copy link

A save tab group feature

I work on a lot of open source projects, so this might be an atypical work flow but I'll describe it and what it means for tabs.

I open my project and it in I have a folder with my dependencies, in case of js, node_modules and in the case of php, vendor.

When I need to track down a bug in one of my dependencies, I go to the debug pane and start stepping through the code. On the way I will probably change some things and restart the debugging session. When I'm done, I will probably have around 10 tabs open in my dependencies and 1-2 in my own project. Now I want to leave some of the dependency tabs open, the ones which has my changes, and go back to code in my own 1-2 tabs.

When I'm sure that I want to create a PR with my changes, I git clone the open source project and open a new instance of vscode. Then I copy paste my changes into the cloned project, run the tests etc.

What I would really like, is to have a save-tab-group option. So that I can close the tabs with changes and continue to work in my own project but I need a way to get them back, at the same position as I left them.

My work around is to open split editor, click the Editor Group Layout button and minimize the dependency tabs as much as I can.

save-tab-group-workaround

My workstation is a small laptop, so I quickly run out of screen space.

@dotnetCarpenter
Copy link

PS. I can drag an open editor from the OPEN EDITORS section into the editor group I want, which is great! But OPEN EDITORS gets very confused - it might be a bug.

@theigor
Copy link

theigor commented May 3, 2017

The problem with "save tab group" is how to get it back - you need a handle. The way Chrome does it is a folder in your bookmarks - how do you imagine vscode would do it? The folder would have to be tied to a root folder... and then people will forget it and then you have these orphaned "bookmarks" all over the place. I actually think what you're doing now with throwing them all over to a different pane is how I would prefer to do it...

@dotnetCarpenter
Copy link

dotnetCarpenter commented May 3, 2017

I imagine that all of the editors in my workspace would close, and the open editors, in OPEN EDITORS, would fold up into a folder with a name I choose when saving them. I can then have a pristine work space with my project files and when I need, I can click on the folder in OPEN EDITORS to see what's in it (open one file at a time in a split editor) or right-click and open all editors in a split editor.

In the OPEN EDITORS pane there is room for a Save Tab Group icon, next to Editor Group Layout and Close All Editors. But it could also just be a keyboard shortcut.

Ideally everything happens in the OPEN EDITORS pane. So I can do the following steps:

  1. Click on the Save Tab Group icon in the OPEN EDITORS bar.
    1. I get prompted for a save name.
    2. All editors, in my workspace, close.
    3. All editors in OPEN EDITORS fold up into a folder with my save name.
  2. Drag the 1-2 editors out on my worksspace
  3. Go back and open all saved editors into a split editor on my workspace.

If I'm already in split editor, I suppose it would only work for tabs in that editor and not in all split editors.

@dotnetCarpenter
Copy link

Analogue to git stash save [save name] is helpful

@bpasero
Copy link
Member

bpasero commented Nov 16, 2017

@stevencl should we close this, it seems very generic and should maybe have more specific actionable issues?

@bpasero bpasero removed the workbench label Nov 16, 2017
@vscodebot vscodebot bot locked and limited conversation to collaborators Jul 14, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality ux User experience issues
Projects
None yet
Development

No branches or pull requests

10 participants