summaryrefslogtreecommitdiff
path: root/poezio
diff options
context:
space:
mode:
authorJonas Schäfer <j.wielicki@sotecware.net>2020-05-10 11:21:56 +0200
committerJonas Schäfer <j.wielicki@sotecware.net>2020-05-12 22:26:51 +0200
commiteab4615fe046d40aefdf4cd18643f99183fc4aba (patch)
tree64532b6b07f693401ebfea56a7031f55afda1b94 /poezio
parentc1863addfd33d3d3f3f03bcb036a0966097914cb (diff)
downloadpoezio-eab4615fe046d40aefdf4cd18643f99183fc4aba.tar.gz
poezio-eab4615fe046d40aefdf4cd18643f99183fc4aba.tar.bz2
poezio-eab4615fe046d40aefdf4cd18643f99183fc4aba.tar.xz
poezio-eab4615fe046d40aefdf4cd18643f99183fc4aba.zip
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.
Diffstat (limited to 'poezio')
-rw-r--r--poezio/core/commands.py14
-rw-r--r--poezio/core/core.py6
-rw-r--r--poezio/core/tabs.py1
3 files changed, 21 insertions, 0 deletions
diff --git a/poezio/core/commands.py b/poezio/core/commands.py
index 6bf1d338..46dab5cc 100644
--- a/poezio/core/commands.py
+++ b/poezio/core/commands.py
@@ -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):
"""
diff --git a/poezio/core/core.py b/poezio/core/core.py
index 06d56062..eac9d539 100644
--- a/poezio/core/core.py
+++ b/poezio/core/core.py
@@ -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',
diff --git a/poezio/core/tabs.py b/poezio/core/tabs.py
index c5ecb206..d5909d39 100644
--- a/poezio/core/tabs.py
+++ b/poezio/core/tabs.py
@@ -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: