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: Simplification of `affixation-function` Date: Sat, 24 Apr 2021 23:22:25 +0300 Organization: LINKOV.NET Message-ID: <87y2d777r2.fsf@mail.linkov.net> References: 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="10756"; 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: emacs-devel@gnu.org To: Daniel Mendler Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Apr 24 22:41:37 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 1laP5t-0002hF-PL for ged-emacs-devel@m.gmane-mx.org; Sat, 24 Apr 2021 22:41:37 +0200 Original-Received: from localhost ([::1]:41918 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1laP5s-0000uE-Qo for ged-emacs-devel@m.gmane-mx.org; Sat, 24 Apr 2021 16:41:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1laP5E-00005M-3T for emacs-devel@gnu.org; Sat, 24 Apr 2021 16:40:56 -0400 Original-Received: from relay11.mail.gandi.net ([217.70.178.231]:45547) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1laP5B-0005WH-Lk for emacs-devel@gnu.org; Sat, 24 Apr 2021 16:40:55 -0400 Original-Received: from mail.gandi.net (m91-129-102-166.cust.tele2.ee [91.129.102.166]) (Authenticated sender: juri@linkov.net) by relay11.mail.gandi.net (Postfix) with ESMTPSA id C6E29100009; Sat, 24 Apr 2021 20:40:47 +0000 (UTC) In-Reply-To: (Daniel Mendler's message of "Sat, 24 Apr 2021 19:35:52 +0200") Received-SPF: pass client-ip=217.70.178.231; envelope-from=juri@linkov.net; helo=relay11.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, RCVD_IN_MSPIKE_H2=-0.001, 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:268344 Archived-At: > The `affixation-function`, which can be specified in the completion table > metadata is allowed to return a list with elements of either two or three > elements depending on if you want to add only a suffix or both a prefix and > a suffix. > > Would it make sense to use a simpler definition for this function? What is > the downside of only allowing triples? In case you don't want to use > a prefix or suffix, specify the empty string. If the logic of specifying the elements is too confusing, then such simplification is welcome. Please note that only the documentation could be changed to remove mentions of the ability to specify only suffix for `affixation-function`. But code will remain unchanged because internally it depends on the predefined order of elements: “completion + suffix” or “completion + prefix + suffix”. There is no backward-compatible way to change this order. > Or is the idea to make the function extensible over time, such that > completion UIs should ignore if more than three elements are specified? But > if that is the case the current definition is problematic. The first > element is always the candidate, the second element is either suffix or > prefix and the third element if it exists is the suffix. More than three elements are already supported since e.g. the total length is calculated as a sum of lengths of all strings: (apply #'+ (mapcar #'string-width str))