summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2011-10-01 20:46:20 +0200
committerFlorent Le Coz <louiz@louiz.org>2011-10-01 20:46:20 +0200
commit347733804f8d61a01bc0a286f6f872f8dd14527d (patch)
tree055af65e51e4f2524a231d89c6a3cd83093f3a87 /src
parentd02c764c477d900487a97f648260612046257a17 (diff)
downloadpoezio-347733804f8d61a01bc0a286f6f872f8dd14527d.tar.gz
poezio-347733804f8d61a01bc0a286f6f872f8dd14527d.tar.bz2
poezio-347733804f8d61a01bc0a286f6f872f8dd14527d.tar.xz
poezio-347733804f8d61a01bc0a286f6f872f8dd14527d.zip
Do not try to cycle completion on commands if there was only one possibily.
You can now see by the space appended at the end if it was the only one. It lets you complete arguments without having to add a stupid space after the command name
Diffstat (limited to 'src')
-rw-r--r--src/tabs.py10
-rw-r--r--src/windows.py6
2 files changed, 11 insertions, 5 deletions
diff --git a/src/tabs.py b/src/tabs.py
index 1b6aeb7c..fbcfc597 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -125,7 +125,13 @@ class Tab(object):
# complete the command's name
words = ['/%s'% (name) for name in self.core.commands] +\
['/%s' % (name) for name in self.commands]
- the_input.auto_completion(words, ' ')
+ the_input.auto_completion(words, '')
+ # Do not try to cycle command completion if there was only
+ # one possibily. The next tab will complete the argument.
+ # Otherwise we would need to add a useless space before being
+ # able to complete the arguments.
+ if len(the_input.hit_list) == 1:
+ the_input.do_command(' ')
return True
return False
@@ -600,7 +606,7 @@ class MucTab(ChatTab):
def completion_topic(self, the_input):
current_topic = self.get_room().topic
- return the_input.auto_completion([current_topic], ' ')
+ return the_input.auto_completion([current_topic], '')
def command_kick(self, arg):
"""
diff --git a/src/windows.py b/src/windows.py
index 03066857..fb99416c 100644
--- a/src/windows.py
+++ b/src/windows.py
@@ -122,7 +122,6 @@ class Win(object):
self.move(y, x)
next_attr_char = text.find('\x19')
while next_attr_char != -1 and text:
- log.debug('Addstr_Colored: [%s]' % text.replace('\x19', '\\x19'))
if next_attr_char + 1 < len(text):
attr_char = text[next_attr_char+1].lower()
else:
@@ -961,7 +960,7 @@ class Input(Win):
if pos < len(self.text) and after.endswith(' ') and self.text[pos] == ' ':
after = after[:-1] # remove the last space if we are already on a space
if not self.last_completion:
- space_before_cursor = self.text.rfind(' ', 0, pos-1)
+ space_before_cursor = self.text.rfind(' ', 0, pos)
if space_before_cursor != -1:
begin = self.text[space_before_cursor+1:pos]
else:
@@ -1043,7 +1042,8 @@ class Input(Win):
return res
if not key or len(key) > 1:
return False # ignore non-handled keyboard shortcuts
- self.reset_completion()
+ if reset:
+ self.reset_completion()
self.text = self.text[:self.pos+self.line_pos]+key+self.text[self.pos+self.line_pos:]
(y, x) = self._win.getyx()
if x == self.width-1: