From: Tassilo Horn <tsdh@gnu.org>
To: Daniel Mendler <mail@daniel-mendler.de>
Cc: emacs-devel@gnu.org
Subject: Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico
Date: Fri, 09 Apr 2021 20:51:13 +0200 [thread overview]
Message-ID: <87im4vfdzz.fsf@gnu.org> (raw)
In-Reply-To: <311f38fe-c622-4d77-7422-787fd369e79b@daniel-mendler.de>
Daniel Mendler <mail@daniel-mendler.de> writes:
Hi Daniel,
>> I'm not sure that's what your are asking but one thing that comes to
>> mind is that when I want to find the file
>> ~/Repos/el/emacs/lisp/doc-view.el
>> I can just do
>> C-x C-f reeld<TAB>
>> and that will already expand to ~/Repos/el/emacs/l/d if
>> `completion-styles' contains `initials' (and
>> `read-file-name-completion-ignore-case' set to t). Now depending on
>> what I type further, it'll also switch between lisp/ or lib/ directory.
>> AFAIK, that's not really supported with (most) alternative completion
>> UIs where the possible completions are always the files of the currently
>> selected directory.
>
> The completion you describe works with Vertico. The candidate set is
> updated accordingly in the UI.
>
> (setq completion-category-overrides nil)
> (setq completion-category-defaults nil)
> (setq completion-styles '(initials))
> (vertico-mode)
Indeed, I've just tried it out.
> However what does not work is the further narrowing in an Orderless
> fashion (your lisp/lib selection). This is what I assume you want to
> do?
Well, I've guessed that already the `initials' completion wouldn't work
at all. So with my recipe above I've got
~/Repos/el/emacs/lib/deps/
as the first completion candidate. When I TAB there, it'll expand to
just that. In order to find ~/Repos/el/emacs/lisp/doc-view.el, it seems
I need to scroll the list of possible completions which is very long.
> One could use both initials+orderless completion styles, but then one
> would also need a feature in the completion system which locks the
> current candidate set. There is the Restricto package by Omar, who is
> also the author of Orderless. Restricto essentially replaces the
> minibuffer-completion table with the current candidate subset - a bit
> of a hack if you ask me.
Yes, probably, but it helps in the situation I sketched.
Well, but I guess the better way to find doc-view.el with vertico is to
just do
C-x C-f reel
Hit TAB on the ~/Repos/el/emacs/lisp/ candidate being pretty much on
top of the list.
do<TAB>
BTW, more a question to the list (and Stefan in particular): I actually
have several emacs worktrees
~/Repos/el/emacs/
~/Repos/el/emacs-27/
~/Repos/el/emacs-native-comp/
With the `completion-category-overrides'
(file
(styles basic partial-completion initials))
(actually, just `initials' suffices) and the input ~/Reeld<TAB> the
expansion is ~/Repos/el/emacs/l/d, and the completion help just shows
lib/d*, lisp/d*, and lwlib/d* files. Shouldn't it also consider
{lib,lisp,lwlib}/d* in emacs-27/ and emacs-native-comp/?
When I rename the emacs-27 directory to e27, it'll include the files in
there. So the reason seems to be that my emacs-*/ worktrees start with
emacs and TAB expands to the shortest possibility neglecting longer
ones. It seems like the files below ~/Repos/el/emacs-27/ is completely
inaccessible in the presence of ~/Repos/el/emacs/ using the initials
style. Of course, when I move point to ~/Repos/el/emacs|/l/d (| being
point) and hit TAB, I can complete any emacs-* worktree.
> The idea is basically to lock the candidate set and switch between
> completion styles. This feature does not seem to be available in the
> Emacs completion mechanism directly.
I understand the idea but I'm not sure how convenient it would be to
enable/disable styles using key bindings during completion. In general,
I prefer if it just does what I want. ;-)
Bye,
Tassilo
next prev parent reply other threads:[~2021-04-09 18:51 UTC|newest]
Thread overview: 178+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-05 10:22 [ELPA] New package: vertico Daniel Mendler
2021-04-05 14:27 ` Manuel Uberti
2021-04-05 18:30 ` Stepping Back: A Wealth Of Completion systems " T.V Raman
2021-04-05 20:49 ` Philip Kaludercic
2021-04-05 20:55 ` T.V Raman
2021-04-06 6:45 ` Arthur Miller
2021-04-06 15:15 ` Eric Abrahamsen
2021-04-06 15:56 ` Stefan Monnier
2021-04-07 12:09 ` Gregory Heytings
2021-04-07 12:23 ` Joost Kremers
2021-04-07 12:56 ` Daniel Mendler
2021-04-07 18:55 ` Jean Louis
2021-04-07 13:05 ` Yuri Khan
2021-04-07 13:45 ` Eli Zaretskii
2021-04-07 14:15 ` Philip Kaludercic
[not found] ` <87eefm5fzl.fsf@posteo.net>
[not found] ` <3ec7e2e58a106c77370d@heytings.org>
2021-04-07 14:33 ` Philip Kaludercic
2021-04-07 15:17 ` Daniel Mendler
2021-04-07 16:14 ` Stefan Monnier
2021-04-07 16:32 ` Daniel Mendler
2021-04-07 16:20 ` Philip Kaludercic
2021-04-07 16:57 ` Daniel Mendler
2021-04-07 18:19 ` [External] : " Drew Adams
2021-04-07 19:13 ` Philip Kaludercic
2021-04-07 19:47 ` Jean Louis
2021-04-07 20:03 ` Daniel Mendler
2021-04-07 22:31 ` Philip Kaludercic
2021-04-09 6:21 ` Tassilo Horn
2021-04-09 8:53 ` Daniel Mendler
2021-04-09 17:22 ` [External] : " Drew Adams
2021-04-09 18:51 ` Tassilo Horn [this message]
2021-04-07 23:07 ` Drew Adams
2021-04-07 19:24 ` Jean Louis
2021-04-07 18:19 ` [External] : " Drew Adams
2021-04-07 18:13 ` Drew Adams
2021-04-07 15:24 ` Gregory Heytings
2021-04-07 16:10 ` Philip Kaludercic
2021-04-07 16:49 ` Gregory Heytings
2021-04-07 17:40 ` Philip Kaludercic
2021-04-07 17:48 ` Gregory Heytings
2021-04-07 19:22 ` Philip Kaludercic
2021-04-07 19:03 ` Jean Louis
2021-04-07 14:31 ` T.V Raman
2021-04-07 16:02 ` Eric Abrahamsen
2021-04-07 18:18 ` [External] : " Drew Adams
2021-04-09 6:40 ` Thierry Volpiatto
2021-04-10 4:20 ` Eric Abrahamsen
2021-04-07 18:49 ` Jean Louis
2021-04-07 20:33 ` Juri Linkov
2021-04-09 11:12 ` Jean Louis
2021-04-07 13:01 ` Dmitry Gutov
2021-04-07 14:44 ` Stefan Monnier
2021-04-07 14:55 ` Philip Kaludercic
2021-04-07 21:56 ` Dmitry Gutov
2021-04-07 22:59 ` Philip Kaludercic
2021-04-08 0:48 ` Dmitry Gutov
2021-04-08 14:44 ` Philip Kaludercic
2021-04-08 16:40 ` T.V Raman
2021-04-08 17:53 ` Philip Kaludercic
2021-04-08 17:57 ` T.V Raman
2021-04-08 17:21 ` [External] : " Drew Adams
2021-04-08 18:03 ` Philip Kaludercic
2021-04-08 18:59 ` Dmitry Gutov
2021-04-09 4:21 ` Eric Abrahamsen
2021-04-09 23:18 ` Dmitry Gutov
2021-04-10 4:31 ` Eric Abrahamsen
2021-04-09 5:56 ` Eli Zaretskii
2021-04-09 23:12 ` Dmitry Gutov
2021-04-09 23:48 ` Stefan Monnier
2021-04-10 1:56 ` Dmitry Gutov
2021-04-10 4:04 ` Stefan Monnier
2021-04-10 13:11 ` Dmitry Gutov
2021-04-11 21:48 ` Stefan Monnier
2021-04-11 22:07 ` [External] : " Drew Adams
2021-04-11 22:10 ` Drew Adams
2021-04-11 21:52 ` Philip Kaludercic
2021-04-11 22:24 ` Dmitry Gutov
2021-04-12 1:32 ` Stefan Monnier
2021-04-12 4:16 ` [External] : " Drew Adams
2021-04-14 0:04 ` Dmitry Gutov
2021-04-10 7:27 ` Eli Zaretskii
2021-04-10 10:53 ` Dmitry Gutov
2021-04-10 11:09 ` Eli Zaretskii
2021-04-10 7:20 ` Eli Zaretskii
2021-04-10 10:52 ` Dmitry Gutov
2021-04-10 11:08 ` Eli Zaretskii
2021-04-10 12:43 ` Dmitry Gutov
2021-04-10 13:10 ` Eli Zaretskii
2021-04-10 14:26 ` Dmitry Gutov
2021-04-10 10:56 ` Stefan Kangas
2021-04-10 11:11 ` Eli Zaretskii
2021-04-11 11:37 ` Stefan Kangas
2021-04-11 12:24 ` Philip Kaludercic
2021-04-11 12:58 ` Stefan Kangas
2021-04-11 13:42 ` Eli Zaretskii
2021-04-11 13:39 ` Eli Zaretskii
2021-04-11 17:16 ` Dmitry Gutov
2021-04-11 18:19 ` Eli Zaretskii
2021-04-11 18:36 ` [External] : " Drew Adams
2021-04-11 21:14 ` Dmitry Gutov
2021-04-11 13:37 ` Eli Zaretskii
2021-04-11 15:32 ` Stefan Kangas
2021-04-11 15:50 ` Eli Zaretskii
2021-04-11 15:55 ` Lars Ingebrigtsen
2021-04-11 16:49 ` Eli Zaretskii
2021-04-10 14:14 ` [External] : " Drew Adams
2021-04-10 13:13 ` Stefan Monnier
2021-04-10 14:00 ` Eli Zaretskii
2021-04-10 11:11 ` Gregory Heytings
2021-04-10 13:15 ` Stefan Monnier
2021-04-10 13:40 ` Gregory Heytings
2021-04-11 21:52 ` Stefan Monnier
2021-04-10 7:09 ` Eli Zaretskii
2021-04-10 14:40 ` Dmitry Gutov
2021-04-10 15:02 ` Eli Zaretskii
2021-04-11 0:04 ` Dmitry Gutov
2021-04-11 7:20 ` Eli Zaretskii
2021-04-10 14:40 ` Philip Kaludercic
2021-04-11 0:18 ` Dmitry Gutov
2021-04-11 11:18 ` Philip Kaludercic
2021-04-11 13:31 ` Jean Louis
2021-04-11 15:53 ` Philip Kaludercic
2021-04-12 9:24 ` Jean Louis
2021-04-12 10:14 ` Philip Kaludercic
2021-04-12 10:56 ` Jean Louis
2021-04-12 11:30 ` Philip Kaludercic
2021-04-12 16:28 ` Eric Abrahamsen
2021-04-12 18:36 ` [External] : " Drew Adams
2021-04-12 19:01 ` Eric Abrahamsen
2021-04-12 19:21 ` Drew Adams
2021-04-12 23:39 ` Eric Abrahamsen
2021-04-13 2:06 ` Drew Adams
2021-04-11 13:34 ` Eli Zaretskii
2021-04-11 16:14 ` Philip Kaludercic
2021-04-11 16:53 ` Eli Zaretskii
2021-04-11 17:39 ` Philip Kaludercic
2021-04-11 18:23 ` Eli Zaretskii
2021-04-12 13:59 ` Stefan Monnier
2021-04-13 23:57 ` Dmitry Gutov
2021-04-21 9:20 ` Philip Kaludercic
2021-04-21 9:29 ` Eli Zaretskii
2021-04-21 10:27 ` Philip Kaludercic
2021-04-21 12:00 ` Eli Zaretskii
2021-04-21 12:50 ` Philip Kaludercic
2021-04-21 13:02 ` Eli Zaretskii
2021-04-21 14:25 ` Jean Louis
2021-04-21 15:43 ` Yuri Khan
2021-04-21 17:29 ` Eli Zaretskii
2021-04-21 19:22 ` Stefan Monnier
2021-04-21 19:25 ` Eli Zaretskii
2021-04-21 19:35 ` Stefan Monnier
2021-04-21 14:13 ` Jean Louis
2021-04-21 14:35 ` Stefan Monnier
2021-04-21 20:31 ` [External] : " Drew Adams
2021-04-21 13:14 ` Daniel Mendler
2021-04-21 14:21 ` Philip Kaludercic
2021-04-05 14:59 ` Stefan Monnier
2021-04-05 15:32 ` Stefan Kangas
2021-04-05 17:55 ` Daniel Mendler
2021-04-05 18:10 ` Stefan Kangas
2021-04-09 21:37 ` Tassilo Horn
2021-04-09 23:23 ` Daniel Mendler
2021-04-10 7:17 ` Tassilo Horn
2021-04-10 9:33 ` Daniel Mendler
2021-04-10 9:44 ` Tassilo Horn
2021-04-10 10:07 ` Daniel Mendler
2021-04-10 13:34 ` Stefan Monnier
2021-04-10 14:07 ` Daniel Mendler
2021-04-10 15:19 ` Stefan Monnier
2021-04-10 17:27 ` Tassilo Horn
2021-04-10 20:58 ` Juri Linkov
2021-04-10 7:18 ` Eli Zaretskii
2021-04-10 9:21 ` Daniel Mendler
2021-04-10 9:30 ` Eli Zaretskii
2021-04-10 9:38 ` Daniel Mendler
2021-04-10 10:00 ` Eli Zaretskii
2021-04-10 10:14 ` Daniel Mendler
2021-04-10 9:38 ` Tassilo Horn
2021-04-10 10:02 ` Eli Zaretskii
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=87im4vfdzz.fsf@gnu.org \
--to=tsdh@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=mail@daniel-mendler.de \
/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).