summaryrefslogtreecommitdiff
path: root/alot/completion.py
diff options
context:
space:
mode:
Diffstat (limited to 'alot/completion.py')
-rw-r--r--alot/completion.py38
1 files changed, 23 insertions, 15 deletions
diff --git a/alot/completion.py b/alot/completion.py
index 0a73bc91..fe1cd187 100644
--- a/alot/completion.py
+++ b/alot/completion.py
@@ -247,12 +247,26 @@ class CommandLineCompleter(Completer):
else:
cmd, params = words
localpos = pos - (len(cmd) + 1)
+ # set 'res' - the result set of matching completionstrings
+ # depending on the current mode and command
+
+ # global
if cmd == 'search':
res = self._querycompleter.complete(params, localpos)
- elif cmd == 'refine':
- if self.mode == 'search':
- res = self._querycompleter.complete(params, localpos)
- elif cmd == 'set' and self.mode == 'envelope':
+ elif cmd == 'help':
+ res = self._commandcompleter.complete(params, localpos)
+ elif cmd in ['compose']:
+ res = self._contactscompleter.complete(params, localpos)
+ # search
+ elif self.mode == 'search' and cmd == 'refine':
+ res = self._querycompleter.complete(params, localpos)
+ elif self.mode == 'search' and cmd == 'retag':
+ res = self._tagscompleter.complete(params, localpos,
+ listseparator=',')
+ elif self.mode == 'search' and cmd == 'toggletag':
+ res = self._tagscompleter.complete(params, localpos)
+ # envelope
+ elif self.mode == 'envelope' and cmd == 'set':
plist = params.split(' ', 1)
if len(plist) == 1: # complete from header keys
pass
@@ -268,18 +282,12 @@ class CommandLineCompleter(Completer):
res = map(f, self._contactscompleter.complete(params,
localpos))
- logging.debug(res)
- elif cmd == 'retag':
- res = self._tagscompleter.complete(params, localpos,
- listseparator=',')
- elif cmd == 'toggletag':
- res = self._tagscompleter.complete(params, localpos)
- elif cmd == 'help':
- res = self._commandcompleter.complete(params, localpos)
- elif cmd in ['compose']:
- res = self._contactscompleter.complete(params, localpos)
- elif cmd in ['attach', 'edit', 'save']:
+ elif self.mode == 'envelope' and cmd == 'attach':
res = self._pathcompleter.complete(params, localpos)
+ # thread
+ elif self.mode == 'thread' and cmd == 'save':
+ res = self._pathcompleter.complete(params, localpos)
+
# prepend cmd and correct position
res = [('%s %s' % (cmd, t), p + len(cmd) + 1) for (t, p) in res]
return res