Indentación

La palabra Indentación es un anglicismo (de la palabra inglesa indentation) de uso común en informática; no es un término reconocido por la Real Academia Española (consultado en la vigesimosegunda edición). La Real Academia recomienda utilizar «sangrado» o «sangría». Este término significa mover un bloque de texto hacia la derecha insertando espacios o tabuladores, para así separarlo del margen izquierdo y mejor distinguirlo del texto adyacente; en el ámbito de la imprenta, este concepto siempre se ha denominado sangrado o sangría.

En los lenguajes de programación de computadoras, un estilo de indentación es una convención que gobierna la indentación (o sangría) de bloques de código para transmitir la estructura del programa. Se aplica en los lenguajes como C y sus descendientes, pero puede aplicarse (y a menudo se aplica) a la mayoría de los otros lenguajes de programación (especialmente los de la familia de llaves), donde el espacio en blanco es insignificante. El estilo de indentado es solo un aspecto del estilo de programación.

Son frecuentes las discusiones entre programadores sobre cómo o dónde usarse el indentado, si es mejor usar espacios en blanco o tabuladores, ya que cada programador tiene su propio estilo.

La indentación no es un requisito en la mayoría de los lenguajes de programación, donde se usa como notación secundaria. Más bien, la indentación ayuda a transmitir mejor la estructura de un programa a los lectores humanos, es decir que hace a su legibilidad. Especialmente, se utiliza para aclarar el vínculo entre construcciones de flujo de control, como condiciones o bucles, y el código contenido dentro y fuera de ellos. Sin embargo, algunos lenguajes (como Python, Occam y Haskell) usan sangría para determinar la estructura en lugar de usar llaves o palabras clave; esto se denomina la regla de fuera de juego . En tales lenguajes, la indentación es significativa para el compilador o intérprete; es más que solo una cuestión de claridad o estilo.

Colocación de llaves en declaraciones compuestas

La principal diferencia entre los estilos de indentación radica en la colocación de las llaves de la instrucción compuesta ( {…} ) que a menudo sigue a una instrucción de control ( if , while , for …). La siguiente tabla muestra esta ubicación para el estilo de las declaraciones discutidas en este artículo; El estilo de declaración de función es otro caso. El estilo para la colocación de llaves en las declaraciones puede diferir del estilo para la colocación de llaves de una definición de función. Para mantener la coherencia, la profundidad de sangría se ha mantenido constante en 4 espacios, independientemente de la profundidad de indentación preferida de cada estilo.

Colocación de llaves
Estilo

KyR-Indent

K&R y variantes: 1TBS , Stroustrup , kernel de Linux , BSD KN

Allman-Indent

Allman

gnu-Indent

GNU

whitesmiths-Indent

Whitesmiths

Horstmann-Indent

Horstmann

pico-Indent

Pico

ratliff-Indent

Ratliff

lisp-Indent

Lisp

haskell-Indent

Haskell

Tabulaciones, espacios y tamaños de indentación

Muchos de los primeros programas usaban caracteres de tabulación para indentar, por simplicidad y para ahorrar en el tamaño del archivo fuente. Los editores de Unix generalmente ven las pestañas como equivalentes a ocho caracteres, mientras que los entornos Macintosh y Windows los establecerían en cuatro, creando confusión cuando el código se transfirió entre entornos. Los editores de programación modernos ahora a menudo pueden establecer tamaños de indentación arbitrarios e insertarán la combinación adecuada de tabulaciones y espacios.

La cuestión del uso de tabulaciones  o espacios duros es un debate continuo en las comunidades de programación. Algunos programadores como Jamie Zawinski afirman que los espacios en lugar de las tabulaciones aumentan la portabilidad multiplataforma . Otros, como los escritores de los estándares de codificación de WordPress afirman lo contrario, que las tabulaciones duras aumentan la portabilidad. Una encuesta de los 400,000 repositorios principales en GitHub encontró que los espacios son más comunes.

El tamaño de la indentación suele ser independiente del estilo. En un experimento de 1983 realizado en código PASCAL, se encontró una influencia significativa del tamaño de la indentación en la comprensión. Los resultados indican que los niveles de indentación en el rango de 2 a 4 caracteres aseguran la mejor comprensión. Para Ruby , muchos lenguajes de shell script y algunas formas de formato HTML , generalmente utilizan dos espacios por nivel de indentado.

Herramientas

Hay muchos programas de computadora que corrigen automáticamente los estilos de indentación (de acuerdo con las preferencias del autor del programa) y la longitud de las indentaciones asociadas con las pestañas. Una herramienta famosa es indent , un programa incluido con muchos sistemas operativos tipo Unix .

En Emacs , hay varios comandos disponibles para corregir automáticamente los problemas de indentado, incluido presionar Tab en una línea determinada (en la configuración predeterminada). Mx indent-region se puede utilizar para indentar correctamente grandes secciones de código. Dependiendo del modo, Emacs también puede reemplazar los espacios iniciales de indentación con el número apropiado de tabulaciones seguidas de espacios, lo que resulta en el número mínimo de caracteres para indentar cada línea de origen.

Elastic tabstops es un estilo de tabulación que requiere soporte del editor de texto, donde bloques completos de texto se mantienen automáticamente alineados cuando cambia la longitud de una línea en el bloque.