2010-12-27 8 views
5

estoy tratando de encontrar una manera de tener ReSharper formato a una sentencia switch como esto (usando Ctrl + E, Ctrl + C):¿Pueden resurgir las declaraciones de casos de formato comenzar en la misma línea que el caso?

switch (int_i) { 
    case 1 : Console.WriteLine("You entered one"); 
       break; 
    case 2 : Console.WriteLine("You entered two"); 
       break; 
    case 3 : Console.WriteLine("You entered three"); 
       break; 
    default : Console.WriteLine("Please enter a number between 1 and 5"); 
       break; 
} 

Yo personalmente no me gusta este estilo en absoluto, pero es se usa en un libro que estoy estudiando y me gustaría que Resharper me ayude a formatear mi código de la misma manera.

hay dos cosas a tener en cuenta aquí:

  1. Los estados tienen que empezar en la misma línea que la declaración de caso.
  2. los dos puntos tienen que ser alineados, así porque default es más largo que case 3 tiene que haber un espacio extra antes de los dos puntos en case 1, case 2 y case 3.

Can Resharper hacer esto?

+3

Así que no te gusta el estilo, y formatearlo como en el libro no está agregando ningún valor a tu capacidad para aprender del libro, pero quieres pasar el tiempo tratando de encontrar la manera de formatearlo de esta manera ? Puedo ver una cantidad mínima de valor en el aprendizaje de cómo usar ReSharper para hacer esto, pero francamente enfocaré mis esfuerzos en adquirir habilidades más fructíferas que esta. Además, espero que el libro del que estás aprendiendo no te haya dado el nombre de variable 'int_i'; eso es horrible Lo siento, es difícil no parecer un idiota en 600 caracteres. – jason

+2

@Jason está completamente de acuerdo, pero si las muestras del código eran complejas y el libro hacía referencia a la "línea 123" sin ningún otro contexto, podría ser útil alinear las muestras. –

+2

@ Jason: Me decepcionó ver una variable llamada 'int_i' también. Sin embargo, viene del libro. – comecme

Respuesta

1

Puede personalizar el formato del código en ReSharper - Opciones - Idiomas - C# - Estilo de formato, pero parece que no hay nada acerca de usted que lo esté preguntando. Lo más cercano que encontré - formato de llaves en la declaración de cambio.

+0

Gracias por publicar una respuesta. Ya sabía que puede personalizar el formato, mi pregunta era si era posible obtener el formato que describí. – comecme

1

Sé que esto es viejo, pero es posible. Simplemente no es obvio. Acabo de tropezar con eso.

Ir a Opciones de ReSharper/Edición de código/C#/Estilo de formato/Disposición de paréntesis. Seleccione 'Bloquear debajo' caso 'etiqueta' para ver que la muestra es incorrecta. Ahora selecciona Otro. Establézcalo en "Al final de la línea (K & R Style)". Nada en la muestra cambiará. Seleccione 'Bloquear debajo' caso 'etiqueta' nuevamente para ver que el formato ahora es correcto.

Prefiero el estilo BSD que también funciona.

+0

Cuando cambio la configuración "Otro" de "En la línea siguiente (estilo BSD)" a "Al final de la línea (Estilo K & R)", veo un cambio en la muestra. Cuando cambio a "Bloquear en 'mayúscula/minúscula' etiqueta 'No veo un cambio. Entonces tengo Otro: "fin de línea (K y R)" y Bloquear debajo de etiqueta de caso: "En línea siguiente (BSD)". – comecme

0

Creo que ahora hay una opción para eso. Tengo la versión 2017.3.2.

Opciones de revisión/edición de código/C#/Estilo de formato/Saltos de línea y envoltura/Disposición de instrucciones incrustadas y establecer Coloque una declaración simple de "mayúsculas y minúsculas" en la misma línea que Siempre.

+0

Eso no funciona para mi ejemplo. Debido a que cada 'case' tiene dos líneas (' WriteLine' y 'break'), ReSharper no lo considera una simple declaración de caso, por lo que aún colocará un salto de línea después de cada' case'. E incluso con solo una declaración, no alineará los dos puntos. Simplemente colocaría un espacio único entre el 'caso' y la declaración. – comecme

Cuestiones relacionadas