I read a lot of answers about formatting options for fluent indendation. ( Resharper formatting code into a single line and ReSharper fluent indentation and http://youtrack.jetbrains.com/issue/RSRP-88220 ) like this:
mockCrypto.Expect(c => c.Hash("authenticationHashSalt", "ignoring arguments"))
.IgnoreArguments()
.Return("hashed");
But I have not found information about formatting code like this:
kernel.Bind<ICameraController>()
.To<NikonCameraController>()
.NamedLikeFactoryMethod((ICameraFactory f) => f.GetNikonCamera());
mock.Setup(framework => framework.DownloadExists("2.0.0.0"))
.Returns(true)
.AtMostOnce(); // (it's from moq QuickStart)
But the style is very common and I often see it in the documentation for frameworks. How to set up Resharper auto-formatting for the use of this style?
I'm using next settings in R# in Options -> Code Editing -> C# -> Formatting Style:
Line Breaks and Wrapping -> Arrangement of Member Access Expressions section -> Wrap chained method calls == Chop always
Tabs, Indents, Alignment -> Align Multiple Constructs section -> Chained method calls checked
Result:
Based on https://blog.jetbrains.com/dotnet/2012/11/12/code-formatting-improvements-in-resharper-71/ . Path for Chained method calls was is some version between 7.1 and R# 2018
Unfortunately, Resharper doesn't seem to be able to do this at the moment and it's an issue that's been flagged for quite some time.
As a potentially acceptable trade off, to minimize the pain of Resharper undoing the formatting of existing fluent invocations, you can select "Keep existing line breaks" in Resharper options under "Formatting Style" -> "Line Breaks and Wrapping" -> "Preserve Existing Formatting".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With