zsh-workers
 help / color / mirror / code / Atom feed
From: Daniel Shahaf <d.s@daniel.shahaf.name>
To: Timo <timoreg@tutanota.com>
Cc: zsh-workers@zsh.org
Subject: Re: Menu selection by number
Date: Thu, 24 Jun 2021 19:33:00 +0000	[thread overview]
Message-ID: <20210624193300.GD16386@tarpaulin.shahaf.local2> (raw)
In-Reply-To: <MczNgTL--7-2@tutanota.com>

Timo wrote on Thu, Jun 24, 2021 at 20:57:57 +0200:
> Hello there,
> 
> I'd like to pose the following suggestion: 
> 
> Display menu options prepended with a selection number which can be used by user to select option by typing the number.
> Motivation: I am using voice programming and numbers are a great visual aid in quickly selecting options. Anyone who wants to type even less could make good use of it.
> 
> It could behave this way:
> The autocompletion menu lists some options
> The options should be prepended by a uniquely identifiable number each (for the current menu display)
> If the user types further and the menu changes, the options' numbers are reassigned to the newly displayed options.
> Numbers should be displayed in a sorted manner.
> 
> 
> Example:
> 
> > ls
> test_file1 testfile1  testfile_1 testfile_2 testfile_3 testfile_4 testfile_5
> 
> # Press tab opens auto completion menu 
> # without numbers
> > ls test
> test_file1  testfile1   testfile_1  testfile_2  testfile_3  testfile_4  testfile_5
> 
> # with numbers
> > ls test
> 1: test_file1  2: testfile1   3: testfile_1  4: testfile_2  5: testfile_3  6: testfile_4  7: testfile_5
> # typing 3 (or for example ALT+3) would complete with `testfile_1`.
> 
> 
> What's your opinion on this?

I wonder if we should just make choosing a completion pluggable: have
compsys call some user-defined function with the possible completions as
arguments and let the function report to us which one was selected.
Then, implementing a «select»-like numbered list, or "search completions
by description", or for that matter a GUI selection dialog with bells
and whistles for cases that offer completions from multiple tags (e.g.,
«ssh <TAB>», «git checkout <TAB>», with «tag-order ''» set), could then
be done in third-party plugins.

(«select» is a shell builtin.)

Also related:

- list-colors can be used to hide the common, already-typed part of
  completions, and colorize the first differing letter: https://www.zsh.org/workers/38518

- The _match completer lets one choose a completion by globbing to it.
  (E.g., «ssh *lsh<TAB>» → «ssh danielsh@<CURSOR>»)

Cheers,

Daniel
(Aside: Would a non-looping variant of «select» be a good idea?)


      reply	other threads:[~2021-06-24 19:33 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-24 18:57 Timo
2021-06-24 19:33 ` Daniel Shahaf [this message]

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

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

  git send-email \
    --in-reply-to=20210624193300.GD16386@tarpaulin.shahaf.local2 \
    --to=d.s@daniel.shahaf.name \
    --cc=timoreg@tutanota.com \
    --cc=zsh-workers@zsh.org \
    /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.vuxu.org/mirror/zsh/

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 NNTP newsgroup(s).