diff options
author | Patrick Totzke <patricktotzke@gmail.com> | 2012-09-18 19:47:42 +0100 |
---|---|---|
committer | Patrick Totzke <patricktotzke@gmail.com> | 2012-09-22 10:30:37 +0100 |
commit | a90d06c4cac264ddc1e82fe3a4c265b45d2198e9 (patch) | |
tree | 706c8d342dd4850ab606e4212f145b761d56756d /alot | |
parent | a2b9e2262a9a69bdd1d2db8b197fcea7d20cb265 (diff) |
completion for 'set From' in envelope mode
cf issue #521
Diffstat (limited to 'alot')
-rw-r--r-- | alot/completion.py | 22 |
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 |