Add tab_switch_strategy option 'right'

This commit is contained in:
Margaret K. Geiger
2020-12-08 16:55:27 -08:00
parent 19870983ca
commit 2b3e2ea6f8
2 changed files with 5 additions and 2 deletions

View File

@@ -880,11 +880,12 @@ o('tab_bar_min_tabs', 2, option_type=tab_bar_min_tabs, long_text=_('''
The minimum number of tabs that must exist before the tab bar is shown The minimum number of tabs that must exist before the tab bar is shown
''')) '''))
o('tab_switch_strategy', 'previous', option_type=choices('previous', 'left', 'last'), long_text=_(''' o('tab_switch_strategy', 'previous', option_type=choices('previous', 'left', 'right', 'last'), long_text=_('''
The algorithm to use when switching to a tab when the current tab is closed. The algorithm to use when switching to a tab when the current tab is closed.
The default of :code:`previous` will switch to the last used tab. A value of The default of :code:`previous` will switch to the last used tab. A value of
:code:`left` will switch to the tab to the left of the closed tab. A value :code:`left` will switch to the tab to the left of the closed tab. A value
of :code:`last` will switch to the right-most tab. of :code:`right` will switch to the tab to the right of the closed tab.
A value of :code:`last` will switch to the right-most tab.
''')) '''))

View File

@@ -721,6 +721,8 @@ class TabManager: # {{{
break break
elif self.opts.tab_switch_strategy == 'left': elif self.opts.tab_switch_strategy == 'left':
next_active_tab = max(0, self.active_tab_idx - 1) next_active_tab = max(0, self.active_tab_idx - 1)
elif self.opts.tab_switch_strategy == 'right':
next_active_tab = min(self.active_tab_idx, len(self.tabs) - 1)
if next_active_tab < 0: if next_active_tab < 0:
next_active_tab = max(0, min(self.active_tab_idx, len(self.tabs) - 1)) next_active_tab = max(0, min(self.active_tab_idx, len(self.tabs) - 1))