>> - (+ (string-width (car s)) >> - (string-width (cadr s))) >> + (cl-reduce #'+ (mapcar #'string-width s)) > > Nit: If you're calling mapcar anyway, why not simply (apply #'+ 0 ...)? Thanks, fixed. Now the patch also adds a new user option 'completions-detailed'. An option separate from 'completions-format' is needed in case when a completion function doesn't provide :affix-function, so there is a need to fall back to the customized value of 'completions-format'.