Copiar y pegarlo simplemente no te los acomoda, Lo que hacen los IDE es que al presionar el Enter, luego de abrir una llave o escribir el case solo se acomoda. Imagino que eso es lo que tiene el notepad++, pero copiarlo y pegarlo y que solo al pegarlo lo idente realmente nunca lo vi.
De todas formas lo probe en eclipse y luego de seleccionarlo lo puse que arregle la identacion (Click derecho - Source - Correct Identation o Ctrl+I), quedando asi (Configraucion por default K&R):
switch ( divisionMicrostepping ) {
case 1: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW ); // 0
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
case 2: { // halfStep1_2: Menor torque, movimientos suaves y menor ruido
digitalWrite( microstep_mode0, HIGH );// 1
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 001 = 1
stepsPerRevolution = fullStep * microstep_div; // 200*2=400
anglePerStep = rev / stepsPerRevolution; // 360/400 = 9/10 = 0.9º/paso
// 400 pasos * 0.9 deg = 360 deg
// ...
break;
}
...
default: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW );
digitalWrite( microstep_mode1, LOW );
digitalWrite( microstep_mode2, LOW ); // 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
}
Despues de generar un nuevo Profile de formato de codigo, en Window-> Preference
C/C++ -> Code Style ->Formater
Seleccionar Edit, En la pestaña Identation, tildar la opcion "Statements within 'switch' body" , cambiarle el nombre para guardar el nuevo perfil ( para no sobreescribir el deaful K&R). Termina quedando asi, luego de ejecutar el comando de "Identacion Correcta"
switch ( divisionMicrostepping ) {
case 1: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW ); // 0
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
case 2: { // halfStep1_2: Menor torque, movimientos suaves y menor ruido
digitalWrite( microstep_mode0, HIGH );// 1
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 001 = 1
stepsPerRevolution = fullStep * microstep_div; // 200*2=400
anglePerStep = rev / stepsPerRevolution; // 360/400 = 9/10 = 0.9º/paso
// 400 pasos * 0.9 deg = 360 deg
// ...
break;
}
...
default: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW );
digitalWrite( microstep_mode1, LOW );
digitalWrite( microstep_mode2, LOW ); // 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
}
Que creo que es lo que estas buscando. Otros cambios que pueden hacerse es:
default:
{ // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW );
digitalWrite( microstep_mode1, LOW );
digitalWrite( microstep_mode2, LOW ); // 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
En el mismo lugar que antes, nomas que en la pestaña Bracer, usas el "block in case statement", Usas next Line o Next Line Idented, esta ultima posee un TAB mas. es Decir las llaves se desplazan un TAB mas, y por ende desplazan al contenido un TAB mas, el codigo que pase es sin el Idented
De la misma forma el switch en caso que quieras el { en la otra linea.
------------------
Folding. Tambien tenes la opcion de habilitar el folding en los if/swithc etc. Eso habilita el folding de los case tambien, es decir podes reducir el cuerpo y que solo se muestre el "case xxx"
Imagen de como queda:
Y no es necesario las llaves para crear un bloque y poder hacerle un folding
------------------
Finalmente buscando por internet ( que es lo primero que deberias haber realizado)
http://stackoverflow.com/questions/412427/auto-indent-in-notepad