GraphQLBundle icon indicating copy to clipboard operation
GraphQLBundle copied to clipboard

Multiline documentation with a graphql schema leads to unnececairy indent/code block formatting

Open mousetail opened this issue 1 year ago • 1 comments

Q A
Bug report? yes
Feature request? no
BC Break report? no
RFC? no
Version/Branch 1.2.0

I have a schema like this:

"""
A date time in RFC3339-Extended format.

Eg. 2023-03-02T14:12:12.1222Z
"""
scalar DateTime

However, it renders like this:

afbeelding

In the JSON schema:

"A date time in RFC3339-Extended format.\n            \n            Eg. 2023-03-02T14:12:12.1222Z"

It seems to be inserting unnecessary spaces after every line break.

Some more debug info

The generated class seems to have indented the string:


<?php
/**
 * THIS FILE WAS GENERATED AND SHOULD NOT BE EDITED MANUALLY.
 */
final class DateTimeType extends CustomScalarType implements GeneratedTypeInterface, AliasedInterface
{
    public const NAME = 'DateTime';
    
    public function __construct(ConfigProcessor $configProcessor, GraphQLServices $services)
    {
        $config = [
            'name' => self::NAME,
            'description' => 'A date time in RFC3339-Extended format.
            
            Eg. 2023-03-02T14:12:12.1222Z',
            'serialize' => fn() => CustomScalarNode::mustOverrideConfig(...\func_get_args()),
            'parseValue' => fn() => CustomScalarNode::mustOverrideConfig(...\func_get_args()),
            'parseLiteral' => fn() => CustomScalarNode::mustOverrideConfig(...\func_get_args()),
        ];

Using a double quoted string with escapes instead of actual newlines might be better, or wrapping it in a function that can properly remove the indentation.

mousetail avatar Mar 18 '24 10:03 mousetail

The generation is made by https://github.com/murtukov/php-code-generator.git It should be handled there. @mousetail can you re-open the issue here describing the need to have multilines string?

Vincz avatar Mar 30 '24 16:03 Vincz