summaryrefslogtreecommitdiff
path: root/alot
diff options
context:
space:
mode:
authorPatrick Totzke <patricktotzke@gmail.com>2012-09-18 19:47:42 +0100
committerPatrick Totzke <patricktotzke@gmail.com>2012-09-22 10:30:37 +0100
commita90d06c4cac264ddc1e82fe3a4c265b45d2198e9 (patch)
tree706c8d342dd4850ab606e4212f145b761d56756d /alot
parenta2b9e2262a9a69bdd1d2db8b197fcea7d20cb265 (diff)
completion for 'set From' in envelope mode
cf issue #521
Diffstat (limited to 'alot')
-rw-r--r--alot/completion.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/alot/completion.py b/alot/completion.py
index 647266e1..0ad7702e 100644
--- a/alot/completion.py
+++ b/alot/completion.py
@@ -299,6 +299,7 @@ class CommandCompleter(Completer):
abooks = settings.get_addressbooks()
self._contactscompleter = ContactsCompleter(abooks)
self._pathcompleter = PathCompleter()
+ self._accountscompleter = AccountCompleter()
def complete(self, line, pos):
# remember how many preceding space characters we see until the command
@@ -367,7 +368,7 @@ class CommandCompleter(Completer):
plist = params.split(' ', 1)
if len(plist) == 1: # complete from header keys
localprefix = params
- headers = ['Subject', 'To', 'Cc', 'Bcc', 'In-Reply-To']
+ headers = ['Subject', 'To', 'Cc', 'Bcc', 'In-Reply-To', 'From']
localcompleter = StringlistCompleter(headers)
localres = localcompleter.complete(localprefix, localpos)
res = [(c, p + 6) for (c, p) in localres]
@@ -375,14 +376,19 @@ class CommandCompleter(Completer):
header, params = plist
localpos = localpos - (len(header) + 1)
if header.lower() in ['to', 'cc', 'bcc']:
+ res = self._contactscompleter.complete(params,
+ localpos)
+ elif header.lower() == 'from':
+ res = self._accountscompleter.complete(params,
+ localpos)
+
+ # prepend 'set ' + header and correct position
+ def f((completed, pos)):
+ return ('%s %s' % (header, completed),
+ pos + len(header) + 1)
+ res = map(f, res)
+ logging.debug(res)
- # prepend 'set ' + header and correct position
- def f((completed, pos)):
- return ('%s %s' % (header, completed),
- pos + len(header) + 1)
- res = map(f,
- self._contactscompleter.complete(params,
- localpos))
elif self.mode == 'envelope' and cmd == 'unset':
plist = params.split(' ', 1)
if len(plist) == 1: # complete from header keys