En la forma escrita de muchos idiomas , la sangría describe el espacio vacío ( espacio en blanco ) que se utiliza antes o alrededor del texto para indicar un aspecto importante del mismo, como por ejemplo:
- Comienzo de un párrafo
- Jerarquía – concepto de subordinación
- Cotización
Muchos lenguajes de programación utilizan la indentación de bloques para delimitar bloques de código fuente .
La sangría es prácticamente la misma independientemente de si el sistema de escritura es de izquierda a derecha (por ejemplo, el latín y el cirílico ) o de derecha a izquierda (por ejemplo , el hebreo y el árabe ) al considerar el inicio y el final de la línea. Por ejemplo, la sangría al inicio de la línea se aplica a la izquierda en un sistema de escritura de izquierda a derecha y a la derecha en un sistema de escritura de derecha a izquierda.
Indentación es tanto un sustantivo como un verbo. El verbo se refiere a la acción de dar formato al texto para que se le aplique una sangría, mientras que el sustantivo se refiere al espacio en blanco resultante.
Tipos
Existen tres tipos principales de sangría: de primera línea, colgante y de bloque.
Cada ejemplo que aparece a continuación se encuentra dentro de un recuadro que representa el límite de la página y utiliza el texto de relleno común "lorem ipsum" . El ancho de la sangría se expresa en unidades de em .
Para la sangría de primera línea, la primera línea de un párrafo se sangra, U+2029 SEPARADOR DE PÁRRAFOS
Una sangría de primera línea de 2 em:
En la sangría francesa, todas las líneas de un párrafo, excepto la primera, se sangran.
Una hendidura colgante de 2 em:
En el caso de la sangría de bloque, todo el párrafo se sangra con respecto al párrafo anterior.
Una sangría de bloque de 2 em a la izquierda:
La sangría de bloque en ambos lados se usa comúnmente para una cita, una cita en bloque , aquí mostrada con 2 em a la izquierda y a la derecha, pero como no está alineada a la derecha , el espacio vacío a la derecha varía según la longitud de la línea:
Aquí está lo mismo que lo anterior, pero justificado (alineado a la izquierda y a la derecha):
Sangría en programación
En programación informática , la indentación describe el formato del código fuente con espacios en blanco a la izquierda del texto , a menudo para mostrar visualmente que una secuencia de líneas de código constituye sintácticamente un bloque de código . Normalmente, las líneas de un bloque se alinean con una cantidad de espacio en blanco que indica la profundidad del bloque en la estructura jerárquica del código. Cada nivel interno de la jerarquía se indenta con un múltiplo de este ancho de indentación .
Los espacios en blanco en el código normalmente se almacenan como caracteres de espacio en blanco .
En un lenguaje de formato libre , la indentación es responsabilidad exclusiva del programador , ya que el procesador de código (es decir, el compilador o el intérprete ) ignora los espacios en blanco. El código puede tener indentación inconsistente o incluso carecer de ella, pero en general se formatea con una indentación relativamente consistente.
Algunos lenguajes se basan en la indentación para delimitar la estructura de bloques, a menudo mediante la regla de sangría . Debido a este requisito sintáctico , el código debe tener un nivel de coherencia que no se exige en el código de lenguajes de formato libre.
Los neologismos outdent , unindent y dedent describen lo opuesto a la indentación : alinear el texto del código de una línea a la izquierda de la línea anterior.
Variaciones
Las variaciones comunes en la implementación de la indentación incluyen: cuánto indentar un bloque en cada nivel de la jerarquía del código, generalmente medido en espacios, y si almacenar los caracteres de espacio en blanco como espacios o tabulaciones . Aunque existen prácticas comunes, no hay consenso universal. [ 1 ] Estas variaciones se deben a factores que pueden incluir, entre otros: la sintaxis del lenguaje, las directrices de la organización y las preferencias personales.
Prácticas comunes
La siguiente tabla identifica prácticas destacadas con respecto a la indentación del código.
pestañas elásticas
En 2006, se propuso un nuevo método de indentación, llamado tabstops elásticos . [ 46 ] [ 47 ] [ 48 ] [ 49 ]
Referencias
- ↑ "Tabulaciones contra espacios: una eterna guerra santa" . Jwz.org . 5 de enero de 2007. Consultado el 18 de enero de 2014 .
- ↑ "Guía de estilo y estándar de codificación de Bash" (PDF) . Lug.fh-swf.de .
- ↑ "Copia archivada" . Archivado del original el 26 de junio de 2014. Recuperado el 23 de junio de 2014 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ "Copia archivada" . Archivado del original el 14 de febrero de 2015. Recuperado el 15 de febrero de 2015 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ "Estilo de codificación del kernel de Linux" . Archivado del original el 11 de junio de 2022. Consultado el 21 de julio de 2022 .
- ↑ "GUÍA DE ESTILO C" . Servidor de informes técnicos de la NASA . Agosto de 1994.
- ↑ Staley, Clinton (2006). "Reglas de estilo de programación en C" . Departamento de Ciencias de la Computación e Ingeniería de Software de Cal Poly .
- ↑ "Directrices de estilo de código" . WebKit . 7 de noviembre de 2015. Consultado el 31 de diciembre de 2021 .
- ↑Archivado el 6 de octubre de 2014 en Wayback Machine.
- ↑ Bill Wagner. "Convenciones de codificación de C# (Guía de programación de C#)" . Msdn.microsoft.com . Consultado el 3 de septiembre de 2017 .
- ↑ "Directrices de formato CSS" . Drupal.org . 14 de enero de 2013. Consultado el 18 de enero de 2014 .
- ↑ "CSS · Guía de estilo · GitHub" . Github.com . Consultado el 18 de enero de 2014 .
- 1 2 "Guía de estilo HTML/CSS de Google" . Google GitHub . Sangría. Archivado del original el 13 de marzo de 2016. Recuperado el 13 de marzo de 2016.
Sangría de 2 espacios en 2 espacios
.Esta es una copia en formato HTML de la versión oficial, que se mantiene en formato XML. - ↑ "styleguide: Style guides for Google-originated open-source projects" . Github.com . 3 de septiembre de 2017 . Consultado el 3 de septiembre de 2017 .
- ↑ "WordPress › Estándares de codificación CSS « Make WordPress Core" . Make.wordpress.org . 17 de julio de 2012. Consultado el 20 de julio de 2018 .
- ↑ "Guía de estilo de Object Pascal de Delphi: uso de espacios en blanco" . Consultado el 13 de diciembre de 2022 .
- ↑ "Directrices de formato de código F#" . docs.microsoft.com . Consultado el 14 de octubre de 2020 .
- ↑ "Go efectivo: el lenguaje de programación Go" . golang.org . Consultado el 3 de septiembre de 2017 .
- ↑ "HaskellStyleGuide – ganeti – Guía de estilo para el código Haskell – Software de gestión de virtualización basado en clústeres – Google Project Hosting" . Code.google.com . 8 de enero de 2014. Archivado del original el 27 de junio de 2013. Consultado el 18 de enero de 2014 .
- ↑ "Referencia rápida de opciones de configuración HTML Tidy" . Tidy.sourceforge.net . 18 de junio de 2008. Consultado el 18 de enero de 2014 .
- ↑ "Convenciones de código para el lenguaje de programación Java: 4. Sangría" . Oracle.com . Consultado el 18 de enero de 2014 .
- ↑ "Directrices de estilo de código para colaboradores | Desarrolladores de Android" . Fuente: android.com . Consultado el 18 de enero de 2014 .
- ↑ "Convenciones de código para el lenguaje de programación JavaScript" . Javascript.crockford.com . 13 de noviembre de 2006. Consultado el 18 de enero de 2014 .
- ↑ "Guía de estilo de JavaScript" . Github.com . Archivado del original el 15 de agosto de 2013. Consultado el 18 de enero de 2014 .
- ↑ "Reglas de estilo de JavaScript" . Google-styleguide.googlecode.com . Archivado del original el 16 de febrero de 2014. Consultado el 18 de febrero de 2014 .
- ↑ Fundación jQuery - jquery.org. "Guía de estilo de JavaScript | Contribuye a jQuery" . Contribute.jquery.org . Consultado el 18 de enero de 2014 .
- ↑ "Guía de estilo · El lenguaje Julia" . docs.julialang.org .
- ↑ "Convenciones de codificación – Lenguaje de programación Kotlin" . Kotlin .
- ↑ "Lua-users wiki: Lua Style Guide" . lua-users.org . Consultado el 3 de septiembre de 2017 .
- ↑ Allen, Jon (JJ) (ed.). "perlstyle: Guía de estilo de Perl" . Documentación de Perl 5 Versión 32.1 . Fundación Perl . Consultado el 19 de abril de 2021 .
- ↑ "Estándares de codificación" . Drupal.org . Consultado el 18 de enero de 2014 .
- ↑ "Manual :: Sangría y longitud de línea" . Pear.php.net . Consultado el 18 de enero de 2014 .
- ↑ "Estándar de codificación PHP (borrador) – Colaboradores – Wiki de Zend Framework" . Framework.zend.com . Archivado del original el 3 de enero de 2008. Consultado el 18 de enero de 2014 .
- ↑ "Guía de estilo : Guía del usuario de CodeIgniter" . Ellislab.com . Archivado del original el 1 de junio de 2013. Consultado el 18 de enero de 2014 .
- ↑ "WordPress › Estándares de codificación PHP « Make WordPress Core" . Make.wordpress.org . 23 de julio de 2012. Consultado el 18 de enero de 2014 .
- ↑ "PHP : Guía de estilo de codificación" . Php-fig.org . Archivado del original el 15 de marzo de 2014. Consultado el 18 de febrero de 2014 .
- ↑ "Diseño y formato del código: práctica y estilo de PowerShell" . Práctica y estilo de PowerShell . Consultado el 17 de octubre de 2021 .
- ↑ "PEP 8 – Guía de estilo para código Python" . Python.org . Consultado el 3 de septiembre de 2017 .
- ↑ Batsov, Bozhidar (3 de septiembre de 2017). "ruby-style-guide: Una guía de estilo de codificación Ruby impulsada por la comunidad" . Github.com . Recuperado el 3 de septiembre de 2017 .
- ↑ "rust: Un lenguaje seguro, concurrente y práctico" . Github.com . 3 de septiembre de 2017. Consultado el 3 de septiembre de 2017 .
- ↑ "Sangría – Documentación de Scala" . docs.scala-lang.org . Consultado el 3 de septiembre de 2017 .
- ↑ "Guía de estilo de Swift" . google.github.io . Consultado el 17 de octubre de 2021 .
- ↑ Ray Johnson. "Guía de estilo Tcl" (PDF) . Tcl.tk. Consultado el 3 de septiembre de 2017 .
- ↑ "Convenciones de codificación estructurada" . msdn.microsoft.com . 4 de enero de 2007. Consultado el 3 de septiembre de 2017 .
- ↑ "Guía de estilo del formato de documento XML de Google" . google.github.io . Google . Consultado el 17 de octubre de 2021 .
- ↑ Gravgaard, Nick (2 de julio de 2006). "Tabulaciones elásticas: una mejor manera de indentar y alinear el código" . Recuperado el 3 de diciembre de 2025.
La solución simple es redefinir cómo el editor de texto interpreta las tabulaciones. En lugar de decir que un carácter de tabulación coloca el texto que le sigue en la siguiente columna N, deberíamos decir que un carácter de tabulación es un delimitador entre celdas de tabla de una manera más parecida a como se usan en archivos de valores separados por tabulaciones (TSV).
- ↑ Gravgaard, Nick (2 de julio de 2006). "Tabulaciones elásticas: la solución al problema de tabulaciones versus espacios" . Archivado del original el 19 de julio de 2006. Recuperado el 3 de diciembre de 2025.
La solución entonces es redefinir cómo el editor de texto interpreta las tabulaciones. En lugar de decir que un carácter de tabulación (una "tabulación dura") moverá el cursor hasta que la posición del cursor sea un múltiplo de N caracteres, deberíamos decir que un carácter de tabulación es un delimitador entre celdas de tabla de manera similar a como se usan en archivos de valores separados por tabulaciones (TSV).
- ↑ cvk (15 de octubre de 2008). "Tabulaciones elásticas: una mejor manera de indentar y alinear código (hilo de comentarios de Reddit)" . Recuperado el 3 de diciembre de 2025 .111 comentarios.
- ↑ Messick, Plasma S. (27 de mayo de 2021). "spaceship-mode y tabble-mode: alineación de texto/código para fuentes de ancho variable" . Recuperado el 3 de diciembre de 2025.
Usando tabble-mode, puedes usar tabulaciones para alinear texto en lugares distintos al borde izquierdo. tabble-mode es esencialmente una implementación de tabulaciones elásticas.
- Tipografía
- Código fuente