c# - studio - Usando ReSharper para ordenar los miembros por tipo y luego por nombre
resharper free (1)
He estado tratando de conseguir que ReSharpers Code Cleanup no solo ordene a los miembros alfabéticamente por nombre, sino que los ordene principalmente por su tipo (ya sea un tipo de devolución de métodos o un tipo de propiedades, etc.) y luego por su nombre.
Por ejemplo:
#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
Se convertiría:
#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
Idealmente, me gustaría que los otros comportamientos predeterminados sigan siendo los mismos, por ejemplo, donde los Constructores, las Propiedades están posicionados / agrupados, y si aparece una cantidad de miembros dentro de una región (como en el ejemplo anterior), para que ese grupo de miembros se clasifique de forma independiente de miembros fuera de ese grupo / región.
¿Alguien puede recomendar el código necesario dentro del editor de patrones de diseño de miembros de ReSharper Type para lograr esto, por favor?
Mirando el tipo de diseño de miembro en Resharper, supongo que esto no es posible. Aquí hay un fragmento de muestra para la región de eventos:
<Entry>
<Match>
<Kind Is="event"/>
</Match>
<Sort>
<Access Order="public internal protected-internal protected private" />
<Static />
<Name/>
</Sort>
<Group Region="Events"/>
</Entry>
Aquí hay un artículo de los propios JetBrains: Análisis en profundidad de la personalización del diseño de tipos con resharper .
Parece que no hay ningún calificador para el tipo de devolución para la clasificación desafortunadamente. Aquí están las opciones, referenciadas en esa publicación:
- <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/>
Puede ponerse en contacto con JetBrains y solicitar que se agregue un nuevo operando a la lista. Parece bastante simple. Podría ser algo como:
<ReturnType="$val" [Order="$val"][AlphaOrder="true/false"]>