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] `completing-read`: Add `group-function` support to completion metadata Date: Mon, 26 Apr 2021 00:58:32 +0200 Message-ID: <2be2ebec-cecd-8c76-19fa-75e15634a954@daniel-mendler.de> References: <39c93100-a352-538d-717a-663bcc5de296@yandex.ru> <23ebdd80-3ca2-4166-beab-e2535b6cc646@yandex.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8843"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Gregory Heytings , Protesilaos Stavrou , Stefan Monnier To: Dmitry Gutov , "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 26 00:59:14 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 1lanic-0002DL-Gz for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Apr 2021 00:59:14 +0200 Original-Received: from localhost ([::1]:38574 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lanib-0004Da-Ki for ged-emacs-devel@m.gmane-mx.org; Sun, 25 Apr 2021 18:59:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34532) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lani4-0003h4-3l for emacs-devel@gnu.org; Sun, 25 Apr 2021 18:58:40 -0400 Original-Received: from server.qxqx.de ([2a01:4f8:121:346::180]:49175 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 1lani1-0007xg-BZ for emacs-devel@gnu.org; Sun, 25 Apr 2021 18:58:39 -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:From:References:Cc: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=haJMR5Uh3r7tukgFzUG1Ql7ExEf6KRxjwqghx0R/f7A=; b=Q/QchE4cD0R+SOSW7pnkxPhvXg QNim6Of5CJinK5TtOHm+it6xAKPw0tnZH5MU2HBmoOfb4IE/ihhhaiJCRcmxdSWLQb/DT3UMAehkn yysqU4HIhDGFuJ4wdvtntdSQ+W0VCq9VfwLw0/BNysIhGm/iSL26Uw68CJWdOtuFaOSY=; In-Reply-To: <23ebdd80-3ca2-4166-beab-e2535b6cc646@yandex.ru> 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:268436 Archived-At: On 4/26/21 12:40 AM, Dmitry Gutov wrote: > So it's better if at least icomplete-mode is enabled, preferably with an > option which shows the completions right away with no input. And the > vertical style should be even better. I agree that Icomplete/Vertico/Ivy works better if you are selecting instead of completing. However if an extension like `group-function` is made to the completion metadata it should also be available by the default completion UI. > Helm and Consult use it mostly for sources which return some sort of > "matches" from a Grep-like program, right? Lots of matches, none of them > knowable in advance? Stock Emacs usually uses a buffer for that use case > (like M-x rgrep). No, Consult also offers commands, where you can know the matches in advance. For example I have these commands, which should satisfy your criterion: * consult-org-agenda: Select headline (Grouped by file name) * consult-imenu: Select imenu item (Grouped by type, function, variable etc) * consult-buffer: Switch to recent files, buffers, bookmarks * consult-mode-command: Invoke command associated with the current mode (Grouped in local/global minor-mode and major-mode) * consult-minor-mode-menu: Toggle minor modes by name (Grouped by on/off local/global) There are more commands which may fall more into the search category where you don't know exactly what you are looking for. Note that there are also users who implemented small extensions for the default completion UI, e.g., such that the *Completions* buffers appears after a delay and a few characters of input. I believe Protesilaos Stavrou is doing that. For such UIs the *Completions* buffer is as fully capable as one of the aforementioned vertical minibuffer UIs. Daniel