PHP_CodeSniffer icon indicating copy to clipboard operation
PHP_CodeSniffer copied to clipboard

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

Open hirasso opened this issue 11 months ago • 2 comments

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)

  • [x] if I would know the ins and outs of PHP_CodeSniffer, I'd certainly propose a PR. But I'm only beginning to use it...

hirasso avatar Mar 23 '24 21:03 hirasso

@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 ?

jrfnl avatar Mar 24 '24 22:03 jrfnl

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 🙏

hirasso avatar Mar 25 '24 08:03 hirasso