unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ergus <spacibba@aol.com>
To: Juri Linkov <juri@linkov.net>
Cc: Philip Kaludercic <philipk@posteo.net>, emacs-devel@gnu.org
Subject: Re: [PATCH] Re: Other details about completion.
Date: Thu, 7 Apr 2022 20:27:01 +0200	[thread overview]
Message-ID: <20220407182701.qzv7iknz7prjv5fw@Ergus> (raw)
In-Reply-To: <86y20g93pe.fsf@mail.linkov.net>

On Thu, Apr 07, 2022 at 08:57:17PM +0300, Juri Linkov wrote:
>>> So why do you think that switching to the Completions window
>>> is required to select a completion candidate?
>>
>> Basically because we don't need that exact behavior in all the details
>> as our use case is a bit different different (and simpler). we use
>> single commands most if the time. I mean, most of the completion we need
>> are for single commands/candidates/files because we can't do things
>> like: "M-x find-file /my/file/path" in a single line. (there are some
>> exceptions line shell-commands or so... but those are the exception, not
>> the rule)
>>
>> But also because emulating that from completions is straight forward
>> considering that Completions is read-only and any edit attempt (insert a
>> letter) will emit an error we can handle moving to the minibuffer and
>> executing there whatever we need.
>>
>> zsh adds an extra space before the letter so even if it does not leave
>> the command line completely there is a switch to a state where arrows
>> navigate, a letter inserts a space and C-g restores to the initial... So
>> there is a mode and context change.
>
>So inserting a letter from the Completions buffer is the only thing
>that you miss from zsh? 

Actually yes, that and remove the mode-line to completions...

>But you also said above that this feature is
>not important because such cases are rare: "M-x find-file /my/file/path".
>
I can live with that. Lets say in our case adding a space does not make
much sense, but just inserting the letter in place without completion
may be a better behavior... But again... I can live with this.

>In all other regards, currently it works exactly like in zsh:
>'TAB TAB' selects the Completions window, and C-g cancels it.
>
Yes...

>>> But in zsh <up> and <down> wrap to the top/bottom of the same column.
>>
>> Yes, I already implemented that and you didn't liked because it was a
>> bit long ;p... Now this is getting longer and longer....
>
>Indeed, its logic looks complicated.  But maybe we could implement
>simple rules like in zsh?  Then <up> ans <down> in the Completions
>buffer could be bound to new commands.
>
Let's cleanup master and move to our own branch then??

>>> Also in zsh TAB moves vertically when columns are sorted vertically.
>>> Shouldn't TAB in Emacs move vertically too when 'completions-format'
>>> is 'vertical'?
>>
>> Actually yes... But implementation will be long and ugly... I don't
>> think it worth it...
>>
>> The ideal case may be to have some modes completions-vertical,
>> completions-horizontal and completions-one-column that will handle all
>> the pack together (bindings, order, formats)... but may break some of
>> the external packages. Otherwise we will end with a code full of if-else
>> and hard to maintain or extend...
>
>Looks like the right thing to do.



  reply	other threads:[~2022-04-07 18:27 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220401153839.idrzrbfl2yfzga3y.ref@Ergus>
2022-04-01 15:38 ` Other details about completion Ergus
2022-04-01 16:21   ` Eli Zaretskii
2022-04-01 16:43   ` Juri Linkov
2022-04-01 16:45     ` Ergus
2022-04-01 20:24     ` [PATCH] " Ergus
2022-04-02 18:09       ` Juri Linkov
2022-04-03  0:39         ` Ergus
2022-04-04 19:35       ` Ergus
2022-04-04 19:45         ` Juri Linkov
2022-04-04 20:31           ` Philip Kaludercic
2022-04-05 11:06             ` Ergus
2022-04-04 22:33           ` Ergus
2022-04-05 19:22             ` Juri Linkov
2022-04-05 23:20               ` Ergus
2022-04-06  7:35                 ` Juri Linkov
2022-04-06 13:21                   ` Ergus
2022-04-06 16:48                     ` Juri Linkov
2022-04-06 17:45                       ` [External] : " Drew Adams
2022-04-06 18:25                         ` Juri Linkov
2022-04-06 20:01                           ` Drew Adams
2022-04-06 17:45                       ` Ergus
2022-04-06 18:29                         ` Juri Linkov
2022-04-06 19:50                           ` Ergus
2022-04-07  7:35                             ` Juri Linkov
2022-04-07  9:16                               ` Ergus
2022-04-07 16:53                                 ` Juri Linkov
2022-04-07 17:38                                   ` Ergus
2022-04-07 18:04                                     ` Juri Linkov
2022-04-07 18:35                                       ` Ergus
2022-04-08  7:40                                         ` Juri Linkov
2022-04-08  8:42                                           ` Ergus
2022-04-08 16:20                                             ` [External] : " Drew Adams
2022-04-08 16:46                                             ` Juri Linkov
2022-04-08  9:31                                           ` Philip Kaludercic
2022-04-08 16:20                                             ` [External] : " Drew Adams
2022-04-08 16:51                                             ` Juri Linkov
2022-04-08 20:12                                               ` Philip Kaludercic
2022-04-06 23:55                           ` Ergus
2022-04-06 18:13                       ` Ergus
2022-04-06 18:34                         ` Juri Linkov
2022-04-06 20:34                           ` Ergus
2022-04-07  7:39                             ` Juri Linkov
2022-04-07  9:08                               ` Ergus
2022-04-07 16:50                                 ` Juri Linkov
2022-04-07 17:22                                   ` Ergus
2022-04-07 17:57                                     ` Juri Linkov
2022-04-07 18:27                                       ` Ergus [this message]
2022-04-08  7:45                                         ` Juri Linkov
2022-04-08  8:46                                           ` Ergus
2022-04-08 16:20                                             ` [External] : " Drew Adams
2022-04-08 16:53                                             ` Juri Linkov
2022-04-06  9:07                 ` Lars Ingebrigtsen
2022-04-06 16:43                   ` Juri Linkov
2022-04-07 11:09                     ` Lars Ingebrigtsen
2022-04-07 16:46                       ` Juri Linkov
2022-04-08 12:59                         ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220407182701.qzv7iknz7prjv5fw@Ergus \
    --to=spacibba@aol.com \
    --cc=emacs-devel@gnu.org \
    --cc=juri@linkov.net \
    --cc=philipk@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).