From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations Date: Mon, 24 May 2021 02:39:09 +0300 Organization: LINKOV.NET Message-ID: <87y2c5nhsr.fsf@mail.linkov.net> References: <87zgwlb4xc.fsf@gmail.com> <617d06ca-27bf-2ae8-26eb-1042123499d3@daniel-mendler.de> <87pmxhb1rs.fsf@gmail.com> <23510125-37b9-e87e-3590-5322f44772ce@daniel-mendler.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19890"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: =?iso-8859-1?Q?Jo=E3o_T=E1vora?= , monnier@iro.umontreal.ca, "emacs-devel@gnu.org" To: Daniel Mendler Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon May 24 01:50:47 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lkxrr-0004zm-0J for ged-emacs-devel@m.gmane-mx.org; Mon, 24 May 2021 01:50:47 +0200 Original-Received: from localhost ([::1]:46106 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lkxrq-0006lt-3H for ged-emacs-devel@m.gmane-mx.org; Sun, 23 May 2021 19:50:46 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lkxpp-0003UV-VE for emacs-devel@gnu.org; Sun, 23 May 2021 19:48:41 -0400 Original-Received: from relay6-d.mail.gandi.net ([217.70.183.198]:32907) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lkxpl-0006T5-NM for emacs-devel@gnu.org; Sun, 23 May 2021 19:48:41 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 9D868C0005; Sun, 23 May 2021 23:48:33 +0000 (UTC) In-Reply-To: <23510125-37b9-e87e-3590-5322f44772ce@daniel-mendler.de> (Daniel Mendler's message of "Sun, 23 May 2021 23:31:54 +0200") Received-SPF: pass client-ip=217.70.183.198; envelope-from=juri@linkov.net; helo=relay6-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:269723 Archived-At: >> and it seems one purported advantage of having `affixation-function` see >> all the candidates is to be able to do layout decisions since it knows >> the longest and shortest candidate. > > Indeed, that was the point. Unfortunately it turns out that having > layout decisions based on all the currently visible candidates will give > bad results when scrolling. So I am never using that capability in my > packages. > > You may have seen the Marginalia package by Omar Antolín Camarena and > myself, where we add rich annotations to many commands using the > `annotation/affixation-function` (https://github.com/minad/marginalia). > We are doing manual alignment there. This is valuable experience. It looks like you render rich annotations depending on the available candidates, and reformat the output when the number of candidates and their sizes are changing, like the horizontal completions format in the default frontend tries to fit as many as possible completions on the same line. But it seems this works only for limited cases like simple and short prefix/suffix strings. I can't imagine how such design could handle multi-columnar rich annotations.