From: Stefan Monnier <monnier@iro.umontreal.ca>
To: emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] scratch/new-flex-completion-style 2c75775 2/2: Score, sort and annotate flex-style completions according to match tightness
Date: Tue, 19 Feb 2019 11:10:24 -0500 [thread overview]
Message-ID: <jwvva1fhj40.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: 2733dee8-f5a6-396f-228a-84f225d43a1c@yandex.ru
>> So, not only it will only work with some completion tables, but for that
>> you'll need to introduce "wrong" code in those completion tables.
> Since we seem to want to redo completion tables in a major way anyway,
That's no guarantee that it will happen soon or at all, and it will have
to provide some backward compatibility. And the more hacks we see using
the current system, the more difficult backward compatibility may become.
> I wouldn't worry about that too much, as long as the result is functional.
It'd be OK if it's indispensable, but I think there are better
alternatives that are easy to install right away.
>> I'd rather we extend the infrastructure so that completion styles can do
>> their own sorting.
> That's one option. Another option, which I've mentioned before, is to create
> an indirection for sorting functions via the completion table's
> category. Similar to the one that completions styles have.
But those are orthogonal: the completion style can offer one kind of
sorting and that should work for all completion tables.
Completion tables can also offer their own kind of sorting (and it
should work with all completion styles).
How 'bout:
- Add global sorting config var(s?), to choose which kind of sorting to
use, which would default to sorting based on "scores first and
alphabetical after that".
- Let completion-category-overrides specify other choices.
This leaves some questions unanswered, tho:
- What about the distinction between cycle-sort and display-sort?
- Should the new var and new entries in completion-category-overrides
contain directly sorting functions, or should they contain just the
name of "sorting styles" with a separate table mapping those styles to
actual functions (e.g. because a given style like `date` might be
implemented differently for different completion tables?).
- Should we allow completion tables to offer several sorting choices?
In any case, in the mean time we can probably just introduce the new
sorting based on "scores first and alphabetical after that" and use it
by default.
> The category-based approach should circumvent that problem.
> With this approach, completion styles don't indicate sorting, and whatever
> entity did set up the completion style to be used (the user, a configuration
> package, etc) would need to set up both completion styles and sorting
> functions to match.
I think it'd be annoying for users to have to not only add `flex` to
their completion-styles but also change some sorting option at the same
time before that completion style becomes usable (in most cases, the
current alphabetical sorting works really poorly for `flex`).
> I think text properties are fine here.
It has its downsides, but I agree it seems like the better choice.
Stefan
next prev parent reply other threads:[~2019-02-19 16:10 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20190202232827.27331.87300@vcs0.savannah.gnu.org>
[not found] ` <20190202232828.4AE452159A@vcs0.savannah.gnu.org>
2019-02-06 3:11 ` [Emacs-diffs] scratch/new-flex-completion-style 2c75775 2/2: Score, sort and annotate flex-style completions according to match tightness Dmitry Gutov
2019-02-06 10:09 ` João Távora
2019-02-06 18:54 ` Dmitry Gutov
2019-02-06 19:47 ` João Távora
2019-02-12 0:25 ` Dmitry Gutov
2019-02-12 13:19 ` Stefan Monnier
2019-02-12 22:55 ` Dmitry Gutov
2019-02-13 16:00 ` Stefan Monnier
2019-02-14 1:33 ` Dmitry Gutov
2019-02-19 16:10 ` Stefan Monnier [this message]
2019-02-24 0:03 ` Dmitry Gutov
2019-02-27 17:12 ` Stefan Monnier
2019-03-11 0:17 ` Dmitry Gutov
2019-03-11 1:15 ` Stefan Monnier
2019-03-11 22:54 ` Dmitry Gutov
2019-03-12 1:10 ` Drew Adams
2019-03-12 22:25 ` Dmitry Gutov
2019-03-12 23:12 ` Drew Adams
2019-03-11 8:47 ` João Távora
2019-03-11 22:57 ` Dmitry Gutov
2019-02-12 17:21 ` João Távora
2019-02-12 23:47 ` Dmitry Gutov
2019-02-11 21:10 ` new-flex-completion-style (was: [Emacs-diffs] scratch/ 2c75775 2/2: Score, sort and annotate flex-style completions according to match tightness) Stefan Monnier
2019-02-11 22:16 ` new-flex-completion-style João Távora
2019-02-11 23:02 ` new-flex-completion-style Dmitry Gutov
2019-02-11 23:11 ` new-flex-completion-style João Távora
2019-02-12 0:10 ` new-flex-completion-style Dmitry Gutov
2019-02-12 0:16 ` new-flex-completion-style Óscar Fuentes
2019-02-12 22:04 ` new-flex-completion-style João Távora
2019-02-13 0:28 ` new-flex-completion-style Óscar Fuentes
2019-02-13 11:20 ` new-flex-completion-style João Távora
2019-02-13 14:23 ` new-flex-completion-style Óscar Fuentes
2019-02-13 14:38 ` new-flex-completion-style Drew Adams
2019-02-13 15:24 ` new-flex-completion-style Stefan Monnier
2019-02-13 15:33 ` new-flex-completion-style Drew Adams
2019-02-13 15:40 ` new-flex-completion-style Óscar Fuentes
2019-02-13 17:34 ` new-flex-completion-style Daniel Pittman
2019-02-12 14:08 ` new-flex-completion-style Stefan Monnier
2019-02-12 22:17 ` new-flex-completion-style João Távora
2019-02-13 17:29 ` new-flex-completion-style João Távora
2019-02-13 18:54 ` new-flex-completion-style Stefan Monnier
2019-02-13 19:13 ` new-flex-completion-style João Távora
2019-02-14 13:36 ` new-flex-completion-style Stefan Monnier
2019-02-14 13:55 ` new-flex-completion-style João Távora
2019-02-14 14:59 ` new-flex-completion-style João Távora
2019-02-14 15:28 ` new-flex-completion-style Óscar Fuentes
2019-02-14 15:44 ` new-flex-completion-style Drew Adams
2019-02-14 16:21 ` new-flex-completion-style João Távora
2019-02-14 15:35 ` new-flex-completion-style Daniel Pittman
2019-02-14 16:12 ` new-flex-completion-style João Távora
2019-02-14 16:16 ` new-flex-completion-style João Távora
2019-02-14 16:34 ` new-flex-completion-style Drew Adams
2019-02-14 17:03 ` new-flex-completion-style João Távora
2019-02-14 17:49 ` new-flex-completion-style Drew Adams
2019-02-14 18:30 ` new-flex-completion-style João Távora
2019-02-14 19:20 ` new-flex-completion-style Drew Adams
2019-02-14 20:54 ` new-flex-completion-style João Távora
2019-02-14 22:03 ` new-flex-completion-style Drew Adams
2019-02-14 22:06 ` new-flex-completion-style João Távora
2019-02-14 22:22 ` new-flex-completion-style Stefan Monnier
2019-02-15 0:54 ` new-flex-completion-style Drew Adams
2019-02-15 4:50 ` new-flex-completion-style Stefan Monnier
2019-02-15 5:52 ` new-flex-completion-style Dmitry Gutov
2019-02-15 6:32 ` new-flex-completion-style Drew Adams
2019-02-18 20:46 ` new-flex-completion-style João Távora
2019-02-18 23:35 ` new-flex-completion-style Stefan Monnier
2019-02-19 9:16 ` new-flex-completion-style João Távora
2019-02-19 12:54 ` new-flex-completion-style Stefan Monnier
2019-02-19 13:01 ` new-flex-completion-style João Távora
2019-02-19 13:32 ` new-flex-completion-style Stefan Monnier
2019-02-11 22:57 ` new-flex-completion-style (was: [Emacs-diffs] scratch/ 2c75775 2/2: Score, sort and annotate flex-style completions according to match tightness) Drew Adams
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=jwvva1fhj40.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=emacs-devel@gnu.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.