Подтвердить что ты не робот

Использование ReSharper для сортировки участников по типу, затем Имя

Я пытаюсь получить очистку кода ReSharpers, чтобы не только сортировать элементы по алфавиту по имени, но и сортировать их в основном по их типу (будь то тип возвращаемых методов или тип свойств и т.д.), а затем их имя.

Например:

#region " Properties "

public string Name { get; set; }
public int Age { get; set; }

#endregion

#region " Instance Methods "

public void SecondMethod()...
public void FirstMethod()...
public Post GetPost()...
public List<Post> GetPosts()...

#endregion

Стало бы:

#region " Properties "

public int Age { get; set; }
public string Name { get; set; }

#endregion

#region " Instance Methods "

public List<Post> GetPosts()...
public Post GetPost()...
public void FirstMethod()...
public void SecondMethod()...

#endregion

В идеале я хотел бы, чтобы другие поведения по умолчанию оставались теми же, например. где конструкторы, свойства позиционируются/сгруппированы, и если в пределах региона (как в примере выше) появляется несколько членов, для этой группы членов необходимо сортировать независимо от членов вне этой группы/области.

Может ли кто-нибудь порекомендовать код, необходимый в редакторе шаблонов Layers Layers типа ReSharper, чтобы достичь этого?

4b9b3361

Ответ 1

Глядя на макет члена типа в Resharper, я предполагаю, что это невозможно. Здесь пример фрагмента для области событий:

<Entry>
    <Match>
        <Kind Is="event"/>
    </Match>
    <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Static />
        <Name/>
    </Sort>
    <Group Region="Events"/>
</Entry>

Вот статья из самих JetBrains: Углубленный взгляд на настройку макета типа с помощью resharper.

Похоже, что для типа возврата для сортировки нет. Вот варианты, указанные в этом сообщении:

 - <Kind Is="$val" [Order="$val"]>
 - <Name Is="$val" [IgnoreCase="true/false"]>
 - <HasAttribute CLRName="$val" [Inherit="true/false"]>
 - <Access Is="$val">
 - <Static/>
 - <Abstract/>
 - <Virtual/>
 - <Sealed/>
 - <Readonly/>
 - <ImplementsInterface CLRName="$val" [Immediate="true/false"]>
 - <HandlesEvent/>

Вы можете связаться с JetBrains и запросить добавление нового операнда в список. Кажется довольно простым. Может быть что-то вроде:

<ReturnType="$val" [Order="$val"][AlphaOrder="true/false"]>