PHPCSStandards / PHP_CodeSniffer

PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
BSD 3-Clause "New" or "Revised" License
903 stars 54 forks source link

[Feature] Insert a space after the `fn` keyword for arrow functions #414

Open hirasso opened 6 months ago

hirasso commented 6 months ago

Is your feature request related to a problem?

Not really. It's more of a "nice to have". I'd like phpcbf to format my arrow functions from this:

$ids = array_map(fn($entity) => $entity->getId(), $entities);

to this (note the space after the fn keyword):

$ids = array_map(fn ($entity) => $entity->getId(), $entities);

Describe the solution you'd like

Maybe there already is a rule for this? When I google it, I'm only able to find this resolved issue on the PHP CS Fixer repo.

Additional context (optional)

jrfnl commented 6 months ago

@hirasso Thanks for bringing this up.

There is an open PR for this in the old repo, however, that PR was blocked because PSR-PER (the successor of PSR12) in their wisdom decided that there should be no space after the fn keyword for arrow function - in contrast to the required one space after the function keyword for closures....

I didn't port that PR over (yet) to this repo as it would need an update before it would be viable for merge, but considering your request, maybe the updated version of the PR shouldn't enforce no space, but should make it a configurable option, with the default being no space (to satisfy PSR-PER) and a user override being available to change this to 1 space.

What do you think ?

hirasso commented 6 months ago

That sounds very reasonable to me! Thanks for the link to that PR. It's hugely interesting to read all the thoughts that go into these decisions.

Thank you for your very important work 🙏