c# - Formato ReSharper: alinear operandos iguales
code-formatting (5)
Nota para los Googlers , esta pregunta está un poco desactualizada, ya que la función solicitada ahora es compatible con la versión actual de ReSharper 2017.3.1.
Me gusta formatear mi código para alinear el lado derecho de operandos iguales.
Como aquí:
bool canRead = false;
bool canReadClass = true;
string className = boType.Name;
Recientemente cambié a ReSharper y lo encontré muy útil, pero no puedo encontrar la opción que me permita formatear el código de la manera descrita.
¿Sabes si hay tal opción / plugin?
Tal vez usted sabe que la solución ReSharp lo permite?
EDITAR:
¿Cómo decidir qué parte del código se alineará?
Mi convención es alinear todas las variables en el mismo bloque.
Por "bloque" me refiero a parte del código no dividido por líneas vacías.
p.ej
// First block
int count = 10;
string name = "abc";
bool calculate = true;
.....
.....
// Second block
MyOwnType myType = new MyOwntype();
int count = 10;
EDITAR -2
He abierto el boleto de R # para esto. Si alguien interesado por favor vote !
Creo que vale la pena señalar que las herramientas de poder de productividad de Visual Studio tienen una función de asignación de asignaciones. Aquí hay un enlace a Visual Studio 2013 Productivity Power Tools .
No hay (actualmente) ninguna manera de hacer esto fuera de la caja en ReSharper. Afortunadamente, ReSharper tiene una API de extensibilidad muy rica (aunque mal documentada). He pasado mucho tiempo con Reflector tratando de resolver las cosas.
Utilizamos una guía de alineación similar para los miembros de la clase en una empresa para la que trabajo (hasta el extremo, también alineamos los parámetros del método). Escribí un plugin para ReSharper para ayudarme a hacer precisamente eso. Es un módulo de "Limpieza de código", que se ejecuta en algún momento durante la limpieza del código ( Ctrl - E , Ctrl - F ) y alinea el código para usted. También hace que la clase sealed
, si es posible.
Algunos ejemplos :
Parámetros del método:
public void DoSomething(string name,
int age,
IEnumerable coll)
(para que esto funcione correctamente, tendrá que cambiar Ajustar parámetros formales a Cortar siempre en Opciones-> Estilo de formato-> Saltos de línea y ajuste )
Constantes:
private const int RESOURCEDISPLAYTYPE_DOMAIN = 0x00000001;
private const int CONNECT_COMMANDLINE = 0x00000800;
private const int CONNECT_INTERACTIVE = 0x00000008;
private const string RESOURCE_NAME = "Unknown";
Puede descargar el código fuente de mi SkyDrive.
Editar Parece que perdí el acceso a ese SkyDrive y también perdí los archivos. Esto fue antes de github :(
Tenga en cuenta que necesitará varias cosas para compilarlo / depurarlo:
Actualice los
Command Line Arguments
en la pestañaDebug
enProject Properties
con la ruta correcta de la DLL de salida:/ReSharper.Plugin
"X:/<projects>/MyCompany.CodeFormatter/MyCompany.CodeFormatter/bin/Debug/MyCompany.CodeFormatter.dll"
Esto permite la depuración del complemento a través de F5 , y se instalará automáticamente en los complementos de ReSharper en la nueva instancia de Visual Studio que se abrirá.
- El complemento es para ReSharper 4.5 y hace referencia a los DLL de esta versión. Si instaló ReSharper en otro lugar, excepto
C:/Program Files/JetBrains/ReSharper
, tendrá que arreglar las referencias. - Esto no alinea las variables dentro de los métodos, pero no debería ser difícil de agregar :)
Después de instalar esto, simplemente ejecute Code Cleanup
para corregir su alineación (desafortunadamente, nunca recibí una respuesta de JetBrains sobre cómo hacer esto durante el formato de llaves / puntos y comas).
Asamblea fue renombrada para proteger a los inocentes :)
¡Buena suerte!
Puedes probar esto: Alineación de código
Es compatible
- Alinear por ... (diálogo)
- Alinear por posición ... (Diálogo)
- Alinear por iguales
- Alinear por m_
- Alinear por "
- Alinear por
- Alinear por el espacio
Que yo sepa, desafortunadamente esto no es posible usando Resharper.
Productivity Power Tools 2012 también tiene un comando para esto: ctrl-alt-]
Otras golosinas obviamente también están allí.