google / yapf

A formatter for Python files
Apache License 2.0
13.75k stars 888 forks source link

Allow joining of case statements in `line_joiner.py` #1211

Open MarcelSimader opened 6 months ago

MarcelSimader commented 6 months ago

Allows for the same joining rules that govern if-then statements to be applied to simple case statements.

Examples

This will allow the common (at least in C switch-case blocks, from my experience) idiom of converting if-else-if chains into simple match-case statements, e.g.:

match format:
    case 'l': return string.ljust(width)
    case 'c': return string.center(width)
    case 'r': return string.rjust(width)

Without the proposed changes, the block above would be formatted like this:

match format:
    case 'l': 
        return string.ljust(width)
    case 'c': 
        return string.center(width)
    case 'r': 
        return string.rjust(width)

This is my first time contributing to any open source project, so bear with me. Thanks!

google-cla[bot] commented 6 months ago

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.