2009-11-28 9 views
19

Estoy intentando usar el programa "sangría" para sangrar programas en C++. Pero no parece funcionar bien. Está ensuciando la sangría mucho más.¿Hay alguna utilidad para sangrar programas en C++?

Es un archivo de clase. ¿Puede sugerir las opciones correctas para ello u otro programa que funcione?

Gracias

+0

Tal vez pueda dar un ejemplo de lo que está haciendo que no le gusta y, lo que es más importante, cómo quiere que se comporte. –

Respuesta

18

Prueba Artistic Style:

Estilo artístico es un código fuente penetrador, formateador y embellecedor para el C, C++, C# y lenguajes de programación Java.

+1

Eso no funciona. Es solo para Microsoft. – tchrist

+7

No, no lo es: "El paquete de Windows contiene un binario compilado. Otras plataformas necesitarán compilar el código fuente. Los archivos Make se incluyen para los compiladores más populares" –

11

en el estudio visual, CTRL +un,CTRL + k ,CTRL + f se auto-guión todo el archivo que está trabajando en

5

Muchos editores como Vim y Emacs tienen una característica que reintroduce el código según su estándar de sangría incorporado.

En Vim, puede escribir = con cualquier movimiento. (Como =% en cualquier delimitador de bloque o S-v para seleccionar una región y luego = para volver a formatear.) El gq comando se puede utilizar para cambiar el formato de comentarios y otro texto.

En Emacs, puede escribir M-xindent-region después de seleccionar una región. (Tal como ocurre con M- < y M->.) También puede cambiar el formato de los comentarios con M-xfill-paragraph.

+2

emacs: Escape-x indent-region. (Seleccione la región primero.) –

+1

y use 'M- < C-space M->' para seleccionar la totalidad del búfer actual ... – dmckee

+0

Emacs no puede hacer lo que se denomina "indentación compleja", es decir, hacer que las abrazaderas se cuelguen, o viceversa. [Es wiki] (http://www.emacswiki.org/emacs/IndentingC) consejos para usar herramientas externas. –

2

bcpp, disponible en cualquier distribución de Linux (y probablemente para MinGW/cygwin, pero no lo he comprobado) es penetrador y un embellecedor de C++. Puede parametrizar cómo funciona con el código.

1

Otro corto clave en Visual Studio 2008:

Ctrl + A, Alt + F8

+0

No funciona bien con el código Qt. en los archivos de cabecera de cada señal, la macro de la ranura se sangra un nivel más. La anulación de indentación solo se realiza cuando el próximo público/privado/protegido ocures. –

3

Esto es en respuesta a la OP y otros carteles: Yo trabajo con Windows y estaba buscando una sangría también. Esto es lo que aprendí:

Intenté bcpp. Parece ser bastante antiguo (más o menos desde 1996) y necesitas encontrar un exe de Windows. Encontré uno aquí: http://www.zeusedit.com/zforum/viewtopic.php?t=1067. Aún así, creo que no merece la pena, ya que solo puede hacer espacio/pestaña, nivel de sangría y conversión de llaves.

Luego está Artistic Style, que es más reciente y está en sourceforge. Parece ser muy capaz, pero no puede, por ejemplo, cambiar el formato de los espacios alrededor de los nombres de funciones y parámetros (como, a su vez if (a (b)) en if (a(b)).

me gusta Cygwin guión (http://www.cygwin.com/) la mejor, pero sólo funciona bien en archivos separados de nueva línea, por lo que debe usarlo como "dos2unix < infile | indent ...". Pero la sangría no reformateará los comentarios encuadrados ... :)

Quizás una combinación de estilo artístico y sangría Cygwin funcione mejor . Ahora uso esta línea de comando: astyle --style=kr -s3 --break-closing-brackets < infile.cpp | dos2unix | indent --no-tabs --k-and-r-style --indent-level 3 --dont-cuddle-else | unix2dos. He mordido mucho, estoy de acuerdo, pero aparte de eso, produce un muy buen resultado. :)

+1

Creo * Estilo artístico * ** ** puede manejar espacios de reformateo hoy en día con la opción '--unpad-paren'. – Magnus

0

En netbeans, simplemente puede hacer

Alt + Shift + F

Por favor asegúrese de que los plugins se instalan para el idioma correspondiente. Por ejemplo, para la sangría del código PHP, tiene que elegir netbeans PHP o instalar complementos PHP desde el repositorio.

Cuestiones relacionadas