Add /wup command
The `/wup` command selects a tab by the prefix of its name only. The `/win` will do a substring match based on the first tab going from the current tab which matches the substring. This can be confusing, especially since `/win` matches on different types of tab "names" not only on the name which is shown in the info bar by default. The `/wup` command exclusively matches based on the prefix of the tab.name string. This has the advantage that it is consistent, deterministic and independent of the currently selected tab.
This commit is contained in:
parent
c1863addfd
commit
eab4615fe0
4 changed files with 30 additions and 0 deletions
|
@ -93,6 +93,15 @@ These commands work in *any* tab.
|
|||
Go to the matching tab. If the argument is a number, it goes to the tab with that number.
|
||||
Otherwise, it goes to the next tab whose name contains the given string.
|
||||
|
||||
/wup
|
||||
|
||||
**Usage:** ``/wup <prefix>``
|
||||
|
||||
Go to the tab whose name starts with `prefix`. If multiple tabs start
|
||||
with that prefix, no action is taken.
|
||||
|
||||
(Mnemonic: Window by Unique Prefix)
|
||||
|
||||
/status
|
||||
**Usage:** ``/status <availability> [status message]``
|
||||
|
||||
|
|
|
@ -219,6 +219,20 @@ class CommandCore:
|
|||
return
|
||||
self.core.tabs.set_current_tab(match)
|
||||
|
||||
@command_args_parser.quoted(1)
|
||||
def wup(self, args):
|
||||
"""
|
||||
/wup <prefix of name>
|
||||
"""
|
||||
if args is None:
|
||||
return self.help('wup')
|
||||
|
||||
prefix = args[0]
|
||||
_, match = self.core.tabs.find_by_unique_prefix(prefix)
|
||||
if match is None:
|
||||
return
|
||||
self.core.tabs.set_current_tab(match)
|
||||
|
||||
@command_args_parser.quoted(2)
|
||||
def move_tab(self, args):
|
||||
"""
|
||||
|
|
|
@ -1709,6 +1709,12 @@ class Core:
|
|||
usage='<number or name>',
|
||||
shortdesc='Go to the specified room',
|
||||
completion=self.completion.win)
|
||||
self.register_command(
|
||||
'wup',
|
||||
self.command.wup,
|
||||
usage='<prefix>',
|
||||
shortdesc='Go to the tab whose name uniquely starts with prefix',
|
||||
completion=self.completion.win)
|
||||
self.commands['w'] = self.commands['win']
|
||||
self.register_command(
|
||||
'move_tab',
|
||||
|
|
|
@ -29,6 +29,7 @@ from collections import defaultdict
|
|||
from slixmpp import JID
|
||||
from poezio import tabs
|
||||
from poezio.events import EventHandler
|
||||
from poezio.config import config
|
||||
|
||||
|
||||
class Tabs:
|
||||
|
|
Loading…
Reference in a new issue