Main changes since v5: - replace use of notmuch-message-message-insinuate. I'm not sure if we should leave a stub function, or just break people's .emacs, and tell them not to call it anymore. - company is autoloaded, and used, if present. This can be disabled by setting notmuch-message-use-company to nil - notmuch-message-command being nil is now an explicit disabling of of completion - deduplicate=address is hardcoded Things I didn't have time to do - date timeout - make deduplication configurable - make TAB invoke company I'm still not sure about the use of notmuch-message-command as opposed to a seperate variable. This particular setup will be a smooth transition for those that have customized the variable. I'm also not sure if enabling company should turn off non-company based completion. A more conservative default would be to set notmuch-message-use-company to nil.