Improving creating split views and moving panes

When I invoke the "Split vertically" command with an opened file, both split sides contain this file/pane. Maybe there is actually a use case where you want to have a file open in two panes at the same time(?) - but I think it makes much more sense to at least have the option, to actually move the active pane to the new split pane when splitting, so that only the new split contains the file - OR to open a split and move the focus to this split but don't open any file in it.

I've tried to accomplish this by building a macro via RubyMine:

split window
go to other split side (the original pane before there were two sides)
move file to other split side

But it didn't didn't work most of the time.

 

My second concern is about the "Move To Opposite Group" command. Say I have a vertically split, with the left side containing three files. When I switch the focus between tabs on the left side and I then invoke "Move To Opposite Group", the left split always opens the tab on the left of the "old" position of the tab. This actually always makes me have to go back to this split and open the file I was looking at before. So my question is, could you let RubyMine remember the history of the last two opened files of a split so that when I invoke the "Move To Opposite Group" command, I see the last opened tab?

I hope the descriptions are easy to follow and the requests ok to ask for.

Thanks

5 comments
Comment actions Permalink

Hello Nikolaj,

we have a request regarding improving usability for tabs' splitting, please vote for it:

https://youtrack.jetbrains.com/issue/IDEA-62883

As for the 'Move To Opposite Group', I tried to reproduce it but didn't get the same behaviour (I had 3 tabs opened on the left side, let's call them 1,2,3. Navigated 1->2->3 then invoked Move To Opposite Group, the tab 3 got moved to the right side and the tab 2 became active on the left side).

0
Comment actions Permalink

Unfortunately your test didn't capture what I think the second issue Nikolaj is describing is. And I really, really would like to see the tab reactivate order problem he described fixed. Note I use IntelliJ rather than RubyMine and really this is a general issue across the tools. The problem happens with Close in addition to Move To Opposite Group, so I will use the simpler close as an example.

Using your 1,2,3 example:

  • We have three tabs in physical order 1,2,3 from left to right
  • User navigates through the tabs 1,3,2
  • User closes current tab (2) (or Move To Opposite Group)
  • Tab 1 is reactivated. So IntelliJ always reactivates tab to the physical left of the closed tab.

Instead, IntelliJ should reactivate tab 3 since that is the previous tab he was using. And if the user then does close 3, then it should make 1 active. So essentially it should use the user's navigation order for reactivation rather than the physical order.

Essentially it should mimic what it already does for Navigate Back (which is an awesome feature because it remembers the users navigation order). And Navigate Back is how I workaround the problem right now.

Here is user case of why the current behavior is painful:

  1. We have a bunch of tabs in physical order 1,2,3...17 from left to right. All tabs above 10 are hidden in the dropdown on the right.
  2. User navigates through the tabs 1,3,2
  3. User now opens an other file (from project view or using Goto Declaration). The other file is already in 16, so 16 is reactivated.
  4. User wants to see 2 and 16 side by side, so he chooses Move To Opposite Group. So 16 is moved.
  5. And IntelliJ reactivates 15. 15 may be a tab the user hasn't possibly touched in hours. But now the user is looking at 15 and 16

Instead, as described above, the tabs should be reactivated in reverse navigation order. So 2 should have been reactivated. Then the user would be seeing 2 and 16.

This gets even more confusing if the other file was not already in a tab for step #3. At that point IntelliJ seems to "randomly" choose where to put the new tab for the other file. It may put it at 5, 13, or 1. I suspect it is somehow reusing the other file's tab location, but that confuses rather than helps. And it means after step #4 the user is viewing a "random" tab - 4, 12, or 2 depending on what tab # the other file was opened in.

 

Thanks!

dave

2
Comment actions Permalink

Dave, thank you for describing this so clearly, better than I could do it. This is exactly what I meant.

0
Comment actions Permalink

Dave,

sorry for the delay. You can change that behaviour by going to Settings | Editor | General | Editor Tabs > "Activate most recently opened tab".

1
Comment actions Permalink

"move the active pane to the new split pane when splitting, so that only the new split contains the file"

^ In PyCharm it is available under another command: [right click on a tab] > [Move Right]/[Move Down]. You can setup keyboard shortcuts for those. Maybe RubyMine has the options too.

BTW I agree, this should be the default operation when splitting. If you want to have the same file opened in two locations at once it is a sign that probably the file is too long. From my experience, I [Move Right]/[Move Down] many times a day while I [Split Vertically][Split Horizontally] once a week or less.

0

Please sign in to leave a comment.