public function appendConfiguration(ArrayNodeDefinition $rootNode)
    {
        $rootNode
            ->children()
                ->arrayNode('qa')
                    ->children()
                        ->arrayNode('phpcs')
                        ->children()
                        ->arrayNode('dir')
                        ->prototype('scalar')->end()
                        ->performNoDeepMerging()
                        ->end()
                        ->scalarNode('standard')->end()
                        ->scalarNode('options')->end()
                        ->end()
                        ->end()
                        ->arrayNode('jshint')
                        ->children()
                        ->arrayNode('files')
                        ->beforeNormalization()
                        ->ifString()->then(
                        function($v) {
                            return array_filter(array($v));
                        }
                    )
                        ->end()
                        ->prototype('scalar')->end()
                        ->performNoDeepMerging()
                        ->end()
                        ->scalarNode('run')->end()
                        ->end()
                    ->end()
                ->end()
        ->end();
    }