Resharper Clean-up Code - how to affect sorting of methods?

Anders Juul picture Anders Juul · Oct 2, 2009 · Viewed 23.7k times · Source

I've got a customized clean-up and it's almost 'there'.

However, R# appears to want to sort the member methods, but at least it does not appear to be alphabetically.

Is there a way to force that sorting?

Answer

James Kolpack picture James Kolpack · Oct 5, 2009

Customizing the layout can indeed be accomplished with Resharper. Go to:

Resharper->Options->Languages->C#->Formatting Style->Type Members Layout

ReSharper 2017

Resharper -> Options-> Code Editing -> C# -> File Layout -> Interface Implementations/All Other Members

and uncheck the "Use Default Patterns" option.

Now you'll want to edit the xml in the "Custom Patterns" box. I'd recommend copying it out to an editor that can properly hi-light the xml (notepad++ or visual studio should work fine).

Now, find the section near the bottom:

    <!--all other members-->
    <Entry/>

and change it to:

    <!--all other members-->
    <Entry>
      <Match>
        <Kind Is="method"/>
      </Match>
      <Sort>
        <Name/>
      </Sort>
    </Entry>

Now, make sure that your cleanup profile has "Reorder type members", and then right click on the filename in solution explorer and do "Cleanup code...". I've just tried this myself and it does order the methods alphabetically.

If you want to also sort by access type, you can add this under the <Sort> element:

<Access Order="public protected internal private" />

Here's an article to learn more.