Использование 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, чтобы достичь этого?
Ответы
Ответ 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"]>