New in Symfony 6.1: Improved Console Autocompletion

In Symfony 5.4 we introduced console autocompletion for the argument names, option names and option values of any command created with the Symfony Console component. In Symfony 6.1 we're improving it with new features.

Autocompletion for Fish Shell

        Contributed by Guillaume Aveline
         in #43641.

Autocompletion works differently depending on your shell. Previously we only supported autocompletion in Bash shell. Starting from Symfony 6.1 we also support Fish shell, which is popular among many developers. To enable autocompletion in your Fish shell, you only need to run the following command once and then source the file:

    $ php bin/console completion fish >> ~/.config/fish/completions/sf_console.fish

Completion Values in Input Definitions

        Contributed by Jérôme Tamarelle
         in #44948.

Autocompletion is currently based on defining a method called complete() in your command. There you can provide the possible values of nay of the command arguments and options. In Symfony 6.1 you can also define autocompletion values directly in the command input definition:

    new InputArgument('command_name', InputArgument::OPTIONAL, 'The command name', 'help', function () {
// here we return the name of all app commands
return array_keys((new ApplicationDescription($this->getApplication()))->getCommands());

}),

new InputOption('format', null, InputOption::VALUE_REQUIRED, 'The output format (txt, xml, json, or md)', 'txt', function () { // here we return an array of possible values defined somewhere return (new DescriptorHelper())->getFormats(); }),

// when using addOption() and addArgument() you can also provide autocompletion ->addArgument('shell', InputArgument::OPTIONAL, '...', null, fn () => $this->getSupportedShells())

                Sponsor the Symfony project.

https://symfony.com/blog/new-in-symfony-6-1-improved-console-autocompletion?utm_source=Symfony%20Blog%20Feed&utm_medium=feed

Létrehozva 3y | 2022. máj. 19. 11:20:18


Jelentkezéshez jelentkezzen be

EGYÉB POSTS Ebben a csoportban

SymfonyLive Paris 2025 :  Async avec Messenger, AMQP et Mercure

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here. 🚨 Tod

2025. febr. 26. 14:31:31 | Symfony
Symfony 6.4.19 released

Symfony 6.4.19 has just been released. Here is the list of the most important changes since 6.4.18:

bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComm
2025. febr. 26. 12:20:03 | Symfony
Symfony 7.2.4 released

Symfony 7.2.4 has just been released. Here is the list of the most important changes since 7.2.3:

bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComman
2025. febr. 26. 12:20:03 | Symfony
Just one month to go before SymfonyLive Paris 2025 workshops begin!

SymfonyLive Paris 2025, conference in French language only, will already start in 1 month with the workshops! Have a look on the topics and join us! Schedule details are available here.

📣

2025. febr. 25. 15:20:33 | Symfony
New Core Team Members, 2025 Edition

A few weeks ago, I had the pleasure of announcing the formation of the Symfony UX Core Team, a dedicated group working to enhance the frontend development experience within the Symfony ecosystem. Toda

2025. febr. 24. 16:20:03 | Symfony
SymfonyLive Paris 2025 : Du lego de composants pour un bundle Gotenberg !

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here.

Al

2025. febr. 24. 13:50:07 | Symfony
A Week of Symfony #947 (17-23 February 2025)

This week, development activity focused on new security features. The upcoming Symfony 7.3 version added support for security voters to explain their vote, improved the IsGranted attribute to allow us

2025. febr. 23. 10:10:09 | Symfony