Merge branch 'axiom-tab-focus-negative-index'

This commit is contained in:
Florian Bruhin 2016-04-09 21:20:26 +02:00
commit 9e8302ed5c
5 changed files with 41 additions and 2 deletions

View File

@ -22,6 +22,12 @@ Added
- New `:edit-url` command to edit the URL in an external editor.
Changed
~~~~~~~
- `:tab-focus` can now take a negative index to focus the nth tab counted from
the right.
v0.6.0
------

View File

@ -218,6 +218,7 @@ Contributors, sorted by the number of commits in descending order:
* Samuel Loury
* Matthias Lisin
* Marcel Schilling
* Johannes Martinsson
* Jean-Christophe Petkovich
* Jay Kamat
* Helen Sherwood-Taylor

View File

@ -719,7 +719,8 @@ Select the tab given as argument/[count].
If neither count nor index are given, it behaves like tab-next.
==== positional arguments
* +'index'+: The tab index to focus, starting with 1. The special value `last` focuses the last focused tab.
* +'index'+: The tab index to focus, starting with 1. The special value `last` focuses the last focused tab. Negative indexes
counts from the end, such that -1 is the last tab.
==== count

View File

@ -900,7 +900,8 @@ class CommandDispatcher:
Args:
index: The tab index to focus, starting with 1. The special value
`last` focuses the last focused tab.
`last` focuses the last focused tab. Negative indexes
counts from the end, such that -1 is the last tab.
count: The tab index to focus, starting with 1.
"""
if index == 'last':
@ -909,6 +910,8 @@ class CommandDispatcher:
if index is None and count is None:
self.tab_next()
return
if index is not None and index < 0:
index = self._count() + index + 1
try:
idx = cmdutils.arg_or_count(index, count, default=1,
countzero=self._count())

View File

@ -228,6 +228,34 @@ Feature: Tab management
- data/numbers/2.txt
- data/numbers/3.txt
Scenario: :tab-focus with -1
When I open data/numbers/1.txt
And I open data/numbers/2.txt in a new tab
And I open data/numbers/3.txt in a new tab
And I run :tab-focus 1
And I run :tab-focus -1
Then the following tabs should be open:
- data/numbers/1.txt
- data/numbers/2.txt
- data/numbers/3.txt (active)
Scenario: :tab-focus negative index
When I open data/numbers/1.txt
And I open data/numbers/2.txt in a new tab
And I open data/numbers/3.txt in a new tab
And I run :tab-focus -2
Then the following tabs should be open:
- data/numbers/1.txt
- data/numbers/2.txt (active)
- data/numbers/3.txt
Scenario: :tab-focus with invalid negative index
When I open data/numbers/1.txt
And I open data/numbers/2.txt in a new tab
And I open data/numbers/3.txt in a new tab
And I run :tab-focus -5
Then the error "There's no tab with index -1!" should be shown
Scenario: :tab-focus last with no last focused tab
Given I have a fresh instance
And I run :tab-focus last