Skip to content

[ENHANCEMENT] Tab jump modes #469

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

Open
NullPlane opened this issue May 17, 2025 · 4 comments
Open

[ENHANCEMENT] Tab jump modes #469

NullPlane opened this issue May 17, 2025 · 4 comments
Assignees
Labels
enhancement New feature or request ready for release

Comments

@NullPlane
Copy link

User choice tab jump rules. e.g. linear (default now) or chronologically.
For chronologically (last visited order) default (direction is
inverted when letting go of ctrl key) or shift-controlled direction of
chron order only.

The duplex version is used in many web browsers, I think many ppl
are used to it. I use it very regularly. However there are weird rules on
when the direction is inverted based on whether you change a tab.
Depends on taste; I think there will be an optimal version to use. I do
not decide here :)

@SpartanJ SpartanJ self-assigned this May 17, 2025
@SpartanJ SpartanJ added the enhancement New feature or request label May 17, 2025
@Panzerschrek
Copy link

I agree with NullPlane, it may be useful.

In QtCreator and some other IDEs doing two consequent Ctrl+Tabs allows to switch between last two active tabs, but Ecode loops over all tabs in their display order, which isn't convenient for some users.

Also QtCreator shows a small list of opened documents when Ctrl+Tab is pressed, it would be nice to have something similar in Ecode too (but it's likely a separate improvement).

@SpartanJ
Copy link
Owner

Also QtCreator shows a small list of opened documents when Ctrl+Tab is pressed, it would be nice to have something similar in Ecode too (but it's likely a separate improvement).

I was planning to add this, yes, I do agree. I think I prefer to always show the list sorted from most recent to least recently focused document, just like QtCreator. The only thing I'm not sure about this is if the selector should be per-tab widget or global. But I can add an option for it. Having this will also allow to hide the tab-bar and continue having a good navigation, so I think it's quite interesting, I'll add it soon.

I personally almost never user Ctrl+Tab to switch focused documents, that's why I forgot about this. I don't know if anyone knows about Alt + Left / Right, which moves though cursor history (taken from QtCreator too) and it's what I use the most + just Ctrl+K + typing the name of the file, for a quick jump there's also Ctrl + tab number.

@NullPlane
Copy link
Author

I don't know why but I personally also like the leave ctrl to invert direction better than pressing shift.
To me, it feels more ergonomic

SpartanJ added a commit to SpartanJ/eepp that referenced this issue May 24, 2025
…b Switcher (I have no better name for the moment).

Added support to hide the Tab Bar (SpartanJ/ecode#477).
Updated efsw.
Updated JS, TS, C++ grammars.
@SpartanJ
Copy link
Owner

SpartanJ commented May 24, 2025

Added. Added what I call the "Tab Switcher" (I have no better name for now), which will display the currently opened files, the order of those files will depend on the Tab Jump Mode configuration. New options can be found at: View -> Tab Bar (Display Tab Switcher and Tab Jump Mode). Using chronological order without the Tab Switcher is absolutely confusing for me but I left it as an options, user can decide.

Tab Switcher will be displayed (if enabled) when ctrl/cmd+tab (or ctrl/cmd+shift+tab) is pressed.

Image

Also the tab bar can now be always hidden, which goes well with the tab switcher (which will be automatically enabled in case of hiding the tab bar, because it's super inconvenient to navigate otherwise).

Tab Switcher is going to be enabled per-tab widget / panel. Each tab widget will have its own switcher, I've been testing and it's better and implementing it the other way was inconvenient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ready for release
Projects
None yet
Development

No branches or pull requests

3 participants