In bash, when I type "guix system build" and press tab to autocomplete, I get a list of packages. I would expect it to list scheme source files like the "guix system {container,disk-image,docker-image,extension-graph,init,reconfigure,shepherd-graph,vm,vm-image}" autocompletes.
--- etc/completion/bash/guix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix index 26480e5863..ef98e9feca 100644 --- a/etc/completion/bash/guix +++ b/etc/completion/bash/guix @@ -235,7 +235,7 @@ _guix_complete () fi elif _guix_is_command "build" then - if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f + if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f || _guix_is_command "system" then _guix_complete_file else -- 2.32.0 I am absolutely unsure about the commit message for such changes.
Hi,
Solene Rapenne via Bug reports for GNU Guix <bug-guix@gnu.org> skribis:
> ---
> etc/completion/bash/guix | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
> index 26480e5863..ef98e9feca 100644
> --- a/etc/completion/bash/guix
> +++ b/etc/completion/bash/guix
> @@ -235,7 +235,7 @@ _guix_complete ()
> fi
> elif _guix_is_command "build"
> then
> - if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f
> + if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f || _guix_is_command "system"
It seems to me that if _guix_is_command "build" is true, then
_guix_is_command "system" cannot also be true. WDYT?
Thanks for addressing this longstanding issue!
Ludo’.
Le Fri, 18 Jun 2021 11:59:53 +0200,
Ludovic Courtès <ludo@gnu.org> a écrit :
> Hi,
>
> Solene Rapenne via Bug reports for GNU Guix <bug-guix@gnu.org> skribis:
>
> > ---
> > etc/completion/bash/guix | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
> > index 26480e5863..ef98e9feca 100644
> > --- a/etc/completion/bash/guix
> > +++ b/etc/completion/bash/guix
> > @@ -235,7 +235,7 @@ _guix_complete ()
> > fi
> > elif _guix_is_command "build"
> > then
> > - if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f
> > + if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_f || _guix_is_command "system"
>
> It seems to me that if _guix_is_command "build" is true, then
> _guix_is_command "system" cannot also be true. WDYT?
>
> Thanks for addressing this longstanding issue!
>
> Ludo’.
the file has been reworked in commits
- dc3ba8c83602d69294e21d1b0c066f0d89890b56
- 80a17aae7991c6df061a98bb71734485f4ca17e2
now the code is entirely different and works as expected.
IIRC when I worked on this piece of code, _guix_is_command "foobar" was
looking for foobar in all words of the command. So you could have
_guix_is_command returning true for "build" and "system" at the same
time when using "guix system build".
Hi, Solene Rapenne <solene@perso.pw> skribis: > the file has been reworked in commits > > - dc3ba8c83602d69294e21d1b0c066f0d89890b56 > - 80a17aae7991c6df061a98bb71734485f4ca17e2 > > now the code is entirely different and works as expected. Heh, looks like Tobias & you felt the need to address this annoyance at the same time. :-) > IIRC when I worked on this piece of code, _guix_is_command "foobar" was > looking for foobar in all words of the command. So you could have > _guix_is_command returning true for "build" and "system" at the same > time when using "guix system build". Ah OK. Anyway, glad that it’s fixed now; thank you! Ludo’.