Oh okay, so I totally misunderstood the way that `source` work in fish ^^.
Here is the result of the first command:
#> env _MOLECULE_COMPLETE=source-fish molecule
Usage: molecule [OPTIONS] COMMAND [ARGS]...
_____ _ _
| |___| |___ ___ _ _| |___
| | | | . | | -_| _| | | | -_|
|_|_|_|___|_|___|___|___|_|___|
Molecule aids in the development and testing of Ansible roles.
Enable autocomplete issue:
autoload bashcompinit && bashcompinit # zsh
eval "$(_MOLECULE_COMPLETE=source molecule)"
Options:
--debug / --no-debug Enable or disable debug mode. Default is disabled.
--version Show the version and exit.
--help Show this message and exit.
Commands:
check Use a provisioner to perform a Dry-Run...
converge Use a provisioner to configure instances...
create Start instances.
dependency Mange the role's dependencies.
destroy Destroy instances.
destruct Use a provisioner to destruct instances.
idempotence Use a provisioner to configure the instances...
init Initialize a new role or scenario.
lint Lint the role.
list Lists status of instances.
login Log in to one instance.
syntax Use a provisioner to syntax check the role.
test Test (destroy, create, converge, lint,...
verify Run automated tests against instances.
And adding your modification to ~/.config/fish/completions/molecule.fish gave
me this output when I tab after `molecule`:
#>molecule - (line 4): Expected a command, but instead found a pipe
| |___| |___ ___ _ _| |___
^
from sourcing file -
called on line 3 of file ~/.config/fish/completions/molecule.fish
from sourcing file ~/.config/fish/completions/molecule.fish
called on standard input
in command substitution
called on standard input
source: Error while reading file “-”
And using it with `eval (env _MOLECULE_COMPLETE=source-fish molecule)` :
#> molecule - (line 1): Expected a command, but instead found a pipe ven. 21
juil. 2017 16:56:04 CEST
begin; Usage: molecule [OPTIONS] COMMAND [ARGS]... _____ _ _ | |___| |___ ___ _
_| |___ | | | | . | | -_| _| | | | -_| |_|_|_|___|_|___|___|___|_|___| Molecule
aids in the development and testing of Ansible roles. Enable autocomplete
issue: autoload bashcompinit && bashcompinit # zsh eval
"$(_MOLECULE_COMPLETE=source molecule)" Options: --debug / --no-debug Enable or
disable debug mode. Default is disabled. --version Show the version and exit.
--help Show this message and exit. Commands: check Use a provisioner to perform
a Dry-Run... converge Use a provisioner to configure instances... create Start
instances. dependency Mange the role's dependencies. destroy Destroy instances.
destruct Use a provisioner to destruct instances. idempotence Use a provisioner
to configure the instances... init Initialize a new role or scenario. lint Lint
the role. list Lists status of instances. login Log in to one instance. syntax
Use a provisioner to syntax check the role. test Test (destroy, create,
converge, lint,... verify Run automated tests against instances.
^
from sourcing file -
called on line 60 of file /usr/share/fish/functions/eval.fish
in function “eval”
called on line 3 of file ~/.config/fish/completions/molecule.fish
from sourcing file ~/.config/fish/completions/molecule.fish
called on standard input
in command substitution
called on standard input
source: Error while reading file “-”
Not sure if this autocomplete framework is compatible with fish.
De: "Fabian Homborg" <fhomb...@gmail.com>
À: "Florian Dhaussy" <florian.dhau...@elosi.com>, "fish-users"
<fish-users@lists.sourceforge.net>
Envoyé: Vendredi 21 Juillet 2017 14:52:19
Objet: Re: [Fish-users] Adding completion for a click framework compatible
program
That failing code isn't valid fish script - it's for bash's completion
framework, which is wholly incompatible. So the "source" mode here doesn't work
for fish.
What exactly is the issue with the "source-fish" mode? Can you post the output
of `env _MOLECULE_COMPLETE=source-fish molecule`?
Also, `eval` here adds a bit of overhead. If you don't need the command to have
access to stdin, you can just pipe to `source` - `env
_MOLECULE_COMPLETE=source-fish molecule | source`.
On Fri, Jul 21, 2017 at 10:41 AM Florian Dhaussy < [
mailto:florian.dhau...@elosi.com | florian.dhau...@elosi.com ] > wrote:
Hi fish community !
I'm actually trying to get completion on [
https://github.com/metacloud/molecule | molecule ] (a development helper for
Ansible). This program is in python, and include the [
https://github.com/click-contrib/click-completion | click-completion framework
] for auto-completion.
Following the click documentation (as also the one from fish), I created a
~/.config/fish/completions/molecule.fish :
# molecule.fish - molecule completions for fish shell
eval (env _MOLECULE_COMPLETE=source molecule)
I've just modified source-fish by only source, because it seems not recognized
by fish.
When I'm trying to auto-complete the command with tab, here is the result:
#> molecule - (line 1): Illegal command name “_molecule_completion()”
ven. 21 juil. 2017 09:57:46 CEST
begin; _molecule_completion() { COMPREPLY=( $( env
COMP_WORDS="${COMP_WORDS[*]}" \ COMP_CWORD=$COMP_CWORD \
_MOLECULE_COMPLETE=complete $1 ) ) return 0 } complete -F
_molecule_completion -o default molecule;
^
from sourcing file -
called on line 60 of file /usr/share/fish/functions/eval.fish
in function “eval”
called on line 3 of file ~/.config/fish/completions/molecule.fish
from sourcing file ~/.config/fish/completions/molecule.fish
called on standard input
in command substitution
called on standard input
source: Error while reading file “-”
Do you have any idea to suggest ? Does it come from my completion command in
molecule.fish ?
Thanks for your time :).
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! [ http://sdm.link/slashdot |
http://sdm.link/slashdot ] _______________________________________________
Fish-users mailing list
[ mailto:Fish-users@lists.sourceforge.net | Fish-users@lists.sourceforge.net ]
[ https://lists.sourceforge.net/lists/listinfo/fish-users |
https://lists.sourceforge.net/lists/listinfo/fish-users ]
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users