csharpier icon indicating copy to clipboard operation
csharpier copied to clipboard

Break InvocationExpression chain before breaking ArguementList

Open belav opened this issue 4 years ago • 6 comments

This prettier PR may help - https://github.com/prettier/prettier/pull/8063/files

These are a number of examples.

        string signedRequest = htmlHelper.ViewContext.HttpContext.Request.Params[
            "signed_request____________"
        ];
// should be
        string signedRequest = htmlHelper.ViewContext.HttpContext.Request
            .Params["signed_request____________"];

        result[i / ReferenceFrameSize] = RenderTreeFrame.ComponentReferenceCapture(
            0,
            null__________,
            0
        );

        ref var parentFrame = ref diffContext.NewTree[
            newFrame.ComponentReferenceCaptureParentFrameIndexField
        ];

        var newComponentInstance = (CaptureSetParametersComponent)oldTree.GetFrames().Array[
            0
        ].Component;
        
        parent = (ContainerNode)parent.Children[
            childIndexAtCurrentDepth__________ + siblingIndex__________
        ];

        configuration.EncryptionAlgorithmKeySize = (int)encryptionElement.Attribute(
            "keyLength__________________"
        )!;

But if we know the ArgumentList will break, I think this is preferred

        var y = someList.Where(
            o =>
                someLongValue_______________________
                && theseShouldNotIndent_________________
                && theseShouldNotIndent_________________
                    > butThisOneShould_________________________________________
        );

belav avatar Oct 11 '21 15:10 belav

Probably related

        // breaking after the = makes this look better
        var cbTempSubkeys = 
            checked(_symmetricAlgorithmSubkeyLengthInBytes + _hmacAlgorithmSubkeyLengthInBytes);

        // but then this looks better with checked next to =
        var cbEncryptedData = checked(
            cbCiphertext
            - (
                KEY_MODIFIER_SIZE_IN_BYTES
                + _symmetricAlgorithmBlockSizeInBytes
                + _hmacAlgorithmDigestLengthInBytes
            )
        );  

belav avatar Oct 11 '21 15:10 belav

        httpContext.Response.Headers[
            HeaderNames.XFrameOptions
        ] = "SAMEORIGIN1111111111111111111111";
// should be
        httpContext.Response.Headers[HeaderNames.XFrameOptions]
            = "SAMEORIGIN1111111111111111111111";

belav avatar Oct 19 '21 13:10 belav

These all need to end up consistent too

        var someLongValue_________________ = memberAccessExpression[
            elementAccessExpression
        ].theMember______________________________;

        var someLongValue_________________ = memberAccessExpression[
            elementAccessExpression
        ].theMember______________________________();

        var someLongValue_________________ = memberAccessExpression(
            elementAccessExpression
        ).theMember______________________________;

        var someLongValue_________________ = memberAccessExpression(elementAccessExpression)
            .theMember______________________________();

belav avatar Mar 07 '22 20:03 belav

some more examples

        var node = FindToken(span.Start, findInsideTrivia).Parent.FirstAncestorOrSelf(
            (a, span) => a.FullSpan.Contains(span),
            span
        );

        var node = FindToken(span.Start, findInsideTrivia)
            .Parent()
            .FirstAncestorOrSelf((a, span) => a.FullSpan.Contains(span), span);

belav avatar Mar 12 '22 17:03 belav

This is semi-related

            HttpActionDescriptor actionDescriptorMock = new Mock<HttpActionDescriptor>()
            {
                CallBase = true
            }.Object;

belav avatar Mar 26 '22 15:03 belav

Related, we should abide by the rectangle rule in these situations

ValueProviderResult valueProviderResult = bindingContext
    .ValueProvider
    .GetValue(bindingContext.ModelName);
    
// vs

ValueProviderResult valueProviderResult = 
    bindingContext.ValueProvider.GetValue(bindingContext.ModelName);



ValueProviderResult valueProviderResult = bindingContext
    .ValueProvider
    .SomeLongProperty____________________
    .GetValue(bindingContext.ModelName);

// vs

ValueProviderResult valueProviderResult = 
    bindingContext
        .ValueProvider
        .SomeLongProperty____________________
        .GetValue(bindingContext.ModelName);

belav avatar Oct 03 '23 21:10 belav