[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45893] [PATCH 0/2] DRAFT: Hint for options.
From: |
zimoun |
Subject: |
[bug#45893] [PATCH 0/2] DRAFT: Hint for options. |
Date: |
Tue, 19 Jan 2021 19:01:24 +0100 |
Hi,
On Tue, 19 Jan 2021 at 18:38, Ludovic Courtès <ludo@gnu.org> wrote:
>
> zimoun <zimon.toutoune@gmail.com> skribis:
>
> > * guix/ui.scm (run-guix-command): Add command hint.
>
> [...]
>
> > + (fold (lambda (name res)
> > + (if (string-null? res)
> > + (string-append "@code{" name "}")
> > + (string-append "@code{" name "}, " res)))
> > + ""
> > + (string-closest (symbol->string guess) command-names)))
>
> Hmm I thought ‘string-closest’ would return a single string, but
> actually it returns a list of strings?
>
> You cannot append strings together like this as this can break i18n.
Hum? But it is not (G_ "")...
> The proper way would be to write:
>
> "Do you mean one of these: ~a?"
>
> but then, thinking about it, wouldn’t it be more natural to suggest a
> single command rather than several?
...but the real question is this: one or several hints.
Yeah, if we assume that it is about typo on the command line and the
option names are different enough, which are both 2 reasonable
assumptions, then it should always return one hint.
Well, it depends if we consider the case where the typo is at the
exact same distance as 2 different option names.
> Also, it seems to me that there’s always at least one hit, is that
> correct? We should make sure that strings above a certain distance are
> ignored, in which case there’s no hint to display.
The hint reports all the options which are at the same minimum
distance; whatever the minimum is. For instance "guix show --kikoo"
would hint something.
Instead, and including your remarks, maybe if the distance is greater
than a threshold, then return an error as usual. Make more sense.
> Next up is package names, right? :-)
Hehe! I have tried... But it is not "doable" in practise... well, I
find it too slow. The natural improvement is to cut down the
levenhstein-distance by stopping if the score is greater than
threshold. Well, I have not tried yet. :-)
Thanks for the feedback and the comment.
Cheers,
simon
- [bug#45893] [PATCH 0/2] DRAFT: Hint for options., zimoun, 2021/01/15
- [bug#45893] [PATCH 1/2] scripts: search, show: Replace 'args-fold*' by 'parse-command-line'., zimoun, 2021/01/15
- [bug#45893] [PATCH v2 0/3] DRAFT: Hint command line typo, zimoun, 2021/01/15
- [bug#45893] Hint for package name: too slow!, zimoun, 2021/01/19
- [bug#45893] Hint for package name: full matrix iteration, zimoun, 2021/01/20
- [bug#45893] [PATCH 0/2] DRAFT: Hint for options., Ludovic Courtès, 2021/01/26
- [bug#45893] [PATCH 0/2] DRAFT: Hint for options., zimoun, 2021/01/26
- [bug#45893] [PATCH 0/2] DRAFT: Hint for options., Ludovic Courtès, 2021/01/27
- [bug#45893] [PATCH v2 2/3] guix: scripts: Add hint for option typo., zimoun, 2021/01/15
- [bug#45893] [PATCH 0/2] DRAFT: Hint for options., Ludovic Courtès, 2021/01/19
[bug#45893] [PATCH v3 1/3] utils: Add string distance., zimoun, 2021/01/19