phpowermove / php-code-formatter

A code formatting library for php
MIT License
29 stars 12 forks source link

Call-chain indentation #13

Open gossi opened 10 years ago

gossi commented 10 years ago

Indentation for call-chains, probably customizable.

tree-wise call-stack e.g. ProfileDefinition

$node
    ->children()
        ->arrayNode('indentation')
            ->children()
                ->enumNode('character')
                    ->values(['tab', 'space'])
                ->end()
                ->integerNode('size')->end()
                ->booleanNode('struct')->end()
                ->booleanNode('function')->end()
                ->booleanNode('blocks')->end()
                ->booleanNode('switch')->end()
                ->booleanNode('case')->end()
                ->booleanNode('break')->end()
                ->booleanNode('empty_lines')
            ->end()
        ->end()
    ->end()
;

Subindentations e.g. php-code-generator

$class = new PhpClass();
$class->setQualifiedName('gossi\codegen\tests\fixture\Entity')
    ->setAbstract(true)
    ->setDocblock($classDoc)
    ->setDescription($classDoc->getShortDescription())
    ->setLongDescription($classDoc->getLongDescription())
    ->setProperty(PhpProperty::create('id')
        ->setVisibility('private')
        ->setDocblock($propDoc)
        ->setDescription($propDoc->getShortDescription()))
    ->setProperty(PhpProperty::create('enabled')
        ->setVisibility('private')
        ->setDefaultValue(false))
;

$method = PhpMethod::create()
    ->setName('__construct')
    ->setFinal(true)
    ->addParameter(new PhpParameter('a'))
    ->addParameter(PhpParameter::create()
        ->setName('b')
        ->setType('array')
        ->setPassedByReference(true))
    ->addParameter(PhpParameter::create()
        ->setName('c')
        ->setType('stdClass'))
    ->addParameter(PhpParameter::create()
        ->setName('d')
        ->setDefaultValue('foo'))
    ->addParameter(PhpParameter::create()
        ->setName('e')
        ->setType('callable'))
    ->setDocblock($methodDoc)
    ->setDescription($methodDoc->getShortDescription())
    ->setLongDescription($methodDoc->getLongDescription())
;