19

A menudo me encuentro en situaciones en las que me gustaría aplicar sangrías a directivas de preprocesador como el resto del código (por ejemplo, #if sangrado como if). Es seems legal, es common sense that it's sometimes a good thing, pero Visual no lo hará fácil.Indentación de directivas de preprocesador en Visual C++ 2010

¿Hay alguna manera de evitar que el editor de Visual C++ 2010 pegue el código a la izquierda cada vez que presiono inocentemente #? ¿Y para no romper la sangría de directivas del preprocesador con sangría automática (CTRL + K, CTRL + F)? ¿O mejor aún, para manejar directivas de preprocesador como todo lo demás?

+2

Por esta razón comencé a usar un editor externo para editar el código del preprocesador pesado ... – ybungalobill

Respuesta

13

Mi enfoque es mantener el # en la primera columna y la sangría a la palabra siguiente, como en:

#ifdef FIRST 
# include "first.h" 
#else 
# include "second.h" 
#endif 
+2

Excepto que no podrá seleccionar varias líneas y (Mayús +) Tabularlas. – ybungalobill

+1

+1 para un buen estilo de preprocesador. Boost utiliza este estilo y es mucho más claro qué líneas son directivas de preprocesador, manteniendo la sangría de bifurcación – Pyrce

+0

+1, ya que de hecho es una solución alternativa buena, a menudo vista. Pero todavía siento que el soporte correcto de sangría me haría más feliz. Así que esperaré y veré si obtengo otras respuestas. –

10

En el Visual Studio 2010 Opciones (Herramientas-> Opciones)

Ir al texto Editor -> C/C++ -> Pestañas

En sangría, seleccione Bloquear en lugar de inteligente.

Esto evitará que la tecla # lo fuerce al comienzo de la línea, sin embargo, si usa Ctrl + K Ctrl + F, seguirá aplicando un formato inteligente y eliminará las pestañas.

Editar: Esto también deshabilitará la sangría/desincrustación automática en otros lugares. Tener cuidado.

2

Solución: La primera vez que escribe el Estudio # y Visual elimina el sangrado, pulse Ctrl + z para deshacer el formato automático.

8

En algún momento visualstudio (registrado en vs2015) adquirió opciones> editor de texto> c/C++> formateo> sangría> posición de las directivas de preprocesador. Elija 'dejar sangrado'. La muestra no se ve exactamente como lo que quiere, pero funciona, solo inténtelo.

+2

Parece que esta configuración se agregó en VS2015. –

+0

Esto es claramente lo que debe ser ahora la respuesta aceptada. :) Aunque sería bueno si [Ctrl] + [K] [Ctrl] + [F] utilizaran esto. :( – GazB

Cuestiones relacionadas