tryRewrite($call, $target)) { $arguments = $call->getArguments(); $key = $arguments[0]->toValue(); if ($arguments[1] instanceof ScalarNode) { // @TODO Couldn't convert() derive the schema from $this->defaults? // That'd be preferable to having yet another state property ($schema) // on this class. $this->defaults[$key] = $arguments[1]->toValue(); $this->schema[$key]['type'] = getType($this->defaults[$key]); } else { $comment = << $target->id() ]; $this->buildFixMe($comment, $variables)->prependTo($call->getStatement()); } return ClassMethodCallNode::create('\Drupal', 'config') ->appendArgument($target->id() . '.settings') ->appendMethodCall('get') ->appendArgument(clone $arguments[0]); } } /** * {@inheritdoc} */ public function convert(TargetInterface $target) { parent::convert($target); if ($this->defaults && $this->schema) { $group = $target->id() . '.settings'; $this->write($target, InstallStorage::CONFIG_INSTALL_DIRECTORY . '/' . $group . '.yml', Yaml::encode($this->defaults)); $this->defaults = []; $schema = [ $group => [ 'type' => 'mapping', 'label' => (string) $this->t('Settings'), 'mapping' => $this->schema, ], ]; $this->write($target, InstallStorage::CONFIG_SCHEMA_DIRECTORY . '/' . $target->id() . '.schema.yml', Yaml::encode($schema)); $this->schema = []; } } }