From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spyros Roum Newsgroups: gmane.emacs.devel Subject: Re: Add completion to compilation-read-command Date: Wed, 25 Dec 2024 08:26:50 +0000 Message-ID: <9a4bb215-561c-468f-97de-7d84fe7adc43@posteo.net> References: <87ttatb9g0.fsf@posteo.net> <87a5clm3p5.fsf@mail.linkov.net> <8734icaegs.fsf@posteo.net> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="------------f1bz2bXL6CyE131m5Tjh0apr" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9902"; mail-complaints-to="usenet@ciao.gmane.io" Cc: juri@linkov.net, emacs-devel@gnu.org To: philipk@posteo.net Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Dec 25 09:27:12 2024 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 1tQMjY-0002OY-Fp for ged-emacs-devel@m.gmane-mx.org; Wed, 25 Dec 2024 09:27:12 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tQMjC-0007pL-HW; Wed, 25 Dec 2024 03:26:50 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQMjA-0007p9-IP for emacs-devel@gnu.org; Wed, 25 Dec 2024 03:26:48 -0500 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tQMj5-0000sn-Eu for emacs-devel@gnu.org; Wed, 25 Dec 2024 03:26:46 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 32A9D240101 for ; Wed, 25 Dec 2024 09:26:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1735115200; bh=Irph3dWQd8mRrFFhbgm4W4Ma/TLxY8xrxAfVnbvNhA8=; h=Content-Type:Message-ID:Date:MIME-Version:Subject:To:Cc:From: From; b=OY577VeMNh8IsUkWsNhoOOO2sEjFyFCIZmlznahRmudDQQTYInLJH7KfQCwZdYTkj Frx6D1ogQuucGRYwPYbj8AtqbjkHf65oCD98N1ux3RFzD3tZpikpvH1oUjuBInwEGP 3Bi0DcU7M6EPG2kGkzHeir4wGeWBNLTko2/jkA9EDJ2i565iXWwMjVsps78c0R+OWQ PnEoA/zmJzSYXsBiZNLzS205Saq85EEynjrhYlpBtijk+O8vf5+dNKQEn3ddO6UpEk e3iNGTSrGbxGVl5mCEqVbIKVTFZEufiMYCOZa0YlkWOn3jusHnAYeXf3/tdgkilacL YaLPG0peJ/4zQ== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4YJ4bz4qCpz9rxG; Wed, 25 Dec 2024 09:26:39 +0100 (CET) Content-Language: en-US, el, el-en In-Reply-To: <8734icaegs.fsf@posteo.net> Received-SPF: pass client-ip=185.67.36.66; envelope-from=spyros.roum@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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.29 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:327060 Archived-At: This is a multi-part message in MIME format. --------------f1bz2bXL6CyE131m5Tjh0apr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Philip Kaludercic wrote: > Spyros Roum writes: > >> Juri Linkov wrote: >>>> I'm trying to get the compile prompt to suggest completion based on past >>>> commands I've run. >>> You can use 'C-x ' in the compile prompt to complete on past commands. >> This is indeed a lot closer to what I want, however it still lacks a >> lot of things compared to my solution. >> >> Unless there is some package/mode I don't know about, It's a lot less >> dynamic, for instance I can't keep typing to reduce >> possible items. > One should keep in mind that completion is not the same as narrowing. > The former expands substrings, while the latter is more like a system > for selecting an option from a list, that usually comes with some query > system. > > Confusing these two can lead to uncomfortable edge-cases for both sides, > and sadly a lot of packages assume that completing-read is the same as a > hypothetical selecting-read. I was 100% confusing these two, thanks for clearing it up. To make sure I understand correctly, when using `completing-read` to read user input, that is narrowing, while the `C-x ` and *Completions* buffer is completion. And from this thread I learned that Icicles can be used to enhance completion similarly to how narrowing frameworks (like vertico) enhance narrowing. >> My solution can leverage all of vertico and friend, and in general >> provides an experience that's the same as other minibuffer prompts, >> like M-x. > But for someone like me who doesn't use a selecting-narrowing framework > like vertico, it suddenly means that SPC is rebound to > `minibuffer-complete-word' and entering new commands becomes *a lot* more > cumbersome. And this is where the user option for the function would come in useful. --------------f1bz2bXL6CyE131m5Tjh0apr Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit
Philip Kaludercic wrote:
Spyros Roum <spyros.roum@posteo.net> writes:

Juri Linkov wrote:
I'm trying to get the compile prompt to suggest completion based on past
commands I've run.
You can use 'C-x <up>' in the compile prompt to complete on past commands.
This is indeed a lot closer to what I want, however it still lacks a
lot of things compared to my solution.

Unless there is some package/mode I don't know about, It's a lot less
dynamic, for instance I can't keep typing to reduce
possible items.
One should keep in mind that completion is not the same as narrowing.
The former expands substrings, while the latter is more like a system
for selecting an option from a list, that usually comes with some query
system.
              
Confusing these two can lead to uncomfortable edge-cases for both sides,
and sadly a lot of packages assume that completing-read is the same as a
hypothetical selecting-read.
I was 100% confusing these two, thanks for clearing it up.
To make sure I understand correctly, when using `completing-read` to read user input, that is narrowing,
while the `C-x <up>` and *Completions* buffer is completion. And from this thread I learned that Icicles can be used to enhance completion
similarly to how narrowing frameworks (like vertico) enhance narrowing.
My solution can leverage all of vertico and friend, and in general
provides an experience that's the same as other minibuffer prompts,
like M-x.
But for someone like me who doesn't use a selecting-narrowing framework
like vertico, it suddenly means that SPC is rebound to
`minibuffer-complete-word' and entering new commands becomes *a lot* more
cumbersome.
And this is where the user option for the function would come in useful.
--------------f1bz2bXL6CyE131m5Tjh0apr--