From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Mendler Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] (icomplete-vertical-mode): Add support for affixations and, annotations Date: Sun, 23 May 2021 22:14:12 +0200 Message-ID: <617d06ca-27bf-2ae8-26eb-1042123499d3@daniel-mendler.de> References: <87zgwlb4xc.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33271"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Juri Linkov , "emacs-devel@gnu.org" To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun May 23 22:14:56 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 1lkuUy-0008PX-2r for ged-emacs-devel@m.gmane-mx.org; Sun, 23 May 2021 22:14:56 +0200 Original-Received: from localhost ([::1]:43340 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lkuUw-0001eP-NE for ged-emacs-devel@m.gmane-mx.org; Sun, 23 May 2021 16:14:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46442) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lkuUO-0000yc-TD for emacs-devel@gnu.org; Sun, 23 May 2021 16:14:21 -0400 Original-Received: from server.qxqx.de ([2a01:4f8:121:346::180]:35259 helo=mail.qxqx.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lkuUM-00039T-MG for emacs-devel@gnu.org; Sun, 23 May 2021 16:14:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de; s=mail1392553390; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:Cc:From:References:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=1mnb4LztIvvMvE3YXgWw5fb0RwbhMvn43d9x0qaqS3M=; b=MZBinQD/K6h78D3qvTQGNgJqDj af1wUX/wOasFSeCnyxow+rniyj4FnIHHup5/5joOIdqruaHmL6fKmBldNmuSbYHEALpE2hgR6hWxs vFZUivAv0onkaqxbNWjR+TRn7vd1m23AbqblNSRoAKD/byHj+wEIlPu+QwlKNVi94mI4=; In-Reply-To: <87zgwlb4xc.fsf@gmail.com> Content-Language: en-US Received-SPF: pass client-ip=2a01:4f8:121:346::180; envelope-from=mail@daniel-mendler.de; helo=mail.qxqx.de X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-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:269699 Archived-At: On 5/23/21 9:55 PM, João Távora wrote: >>> Can you give a visual example of what it looks like for a given completion >>> table, ... >> >> I attached two screenshots: >> >> - M-x >> - `describe-symbol` if `completions-detailed` is set > > Thanks, I wasn't aware of this new framework and think this looks very > nice and is extremely useful. I could get your second example to work, > but not the first (the M-x one). What am I missing? Ah, I forgot to tell you that. The M-x annotations are guarded by `suggest-key-bindings`. >>> It seems that neither affixation or annotation were present in non-vertical >>> icomplete.el before your patch. Do you have an idea why? Should they >>> be added there, too? >> >> There is not enough space in the vertical display. > > You mean in the horizontal one-line display right? In the vertical > display there is space, so we are enabling it there. Yes, I meant that the horizontal display does not have enough space. > After my sig, I attach a very slightly simplified (and untested) version > of icomplete-affixate, using `cond` instead of nested `ifs`. But the > main thing I wanted to note at this point, is that I find this > "affixation" design confusing and flawed. I have not been involved in the initial design of this, the `affixation-function` is there for quite a while already. I would also be happy with an extension to the `annotation-function`, where the returned annotation string is the suffix and can be propertized with an additional string for the prefix. > I also don't understand why :affixation-function is given a full list of > completions, when it is presumably meant to return a list of exactly the > same length. Seems like a potential hazard to allow this function to do > filtering. It is not allowed by the definition of the function. > So, unless I am missing something (known to happen), this seems like a > misdesign which would be nice to correct before the Emacs 28 release > and/or too many external packages start relying on this. For what is worth, my packages already rely on this. But I would have this changed quickly given a modified definition of the `annotation-function`. I am not aware of other packages already using this functionality (I searched around for this at some point). Daniel