ecomplete is Emacs’s “electric completion”, and it is part of
Emacs. It stores all information in an ecompleterc file, whose
location, and name can be configured via the variable
ecomplete-database-file (which see). The format of the file
((TYPE_1 ITEM_1 ITEM_2 ...) (TYPE_2 ITEM_N+1 ITEM_N+2 ...) ...)
That is, it is an alist map where the key is the type of match (so that you can have one list of things for “mail”, and one for, say, “mastodon”). In each of these sections you then have a list where each item is of the form:
(KEY TIMES-USED LAST-TIME-USED STRING)
When performing a query, the result will be all items where the search term matches all, or part of STRING.
When EUDC performs queries with
ecomplete, the name of each
attribute making up the query is used as the type in which the lookup
is performed. The mapping from EUDC attribute names to
ecomplete type names is performed according to the variable
eudc-ecomplete-attributes-translation-alist (which see).