Hi Ergus,
Thanks, I had a look at your patch. I'm personally not too fond of that kind of
complexity coming into lisp/icomplete.el especially when then are simpler
formulae for achieving a funcional vertical icomplete system. My solution is even
simpler than Gregory's for example (and based on his):
(setq icomplete-prospects-height 6)
(setq icomplete-separator "\n")
(defun icomplete-vertical-adjust-minibuffer-height (completions)
(let* ((comp completions)
(complen (length (split-string comp "\n"))))
(if (> complen 1) (enlarge-window (- icomplete-prospects-height (1- (window-height)))))
comp))
(advice-add 'icomplete-completions :filter-return #'icomplete-vertical-adjust-minibuffer-height)
So, in my view, all that's needed is to fix the window height problem (addressed separately
in a discussion which I haven't been following), and then add sufficient hookage so that
a _separate_ icomplete-vertical.el package with all the advanced features you are working
on can be developed.
By the way, do you mind listing here exactly which ones those are in relation to the
system attained by the code above?
João