Las mejores prácticas en TI a veces cambian, y la gestión de ciertos caracteres invisibles en los archivos de texto es un ejemplo. Los caracteres de fin de línea (EOL) han evolucionado, sobre todo para la integración de sistemas de control de versiones. Del mismo modo, la marca de orden de bytes (BOM) en los archivos de texto Unicode se utiliza cada vez menos.
Con 4D v19 R2, 4D ha evolucionado sin problemas para seguir estas mejores prácticas, dándole más flexibilidad en el camino.
RECORDATORIO
Fin de línea (EOL)
Usted sabe que las líneas en los archivos de texto se separan con caracteres de fin de línea. En Windows, es una combinación de dos caracteres
- Retorno de carro (#13, llamado CR) y,
- el salto de línea (#10, llamado LF).
En macOS, es el carácter CR heredado.
Los sistemas de control de versiones como Git no manejan CR como carácter EOL, por lo que es necesario utilizar LF en su lugar.
Marca de orden de bytes (BOM)
También sabe que un archivo de texto Unicode puede contener bytes de encabezamiento invisibles, llamados Byte Order Mark, que definen el conjunto de caracteres utilizado.
4D siguió las mejores prácticas actuales al introducir Unicode, escribiendo archivos de texto con una BOM por defecto. Pero como UTF-8 se ha convertido casi en el formato de archivo de texto estándar, la BOM se utiliza cada vez menos.
NUEVA convención de 4D sobre archivos de texto
A partir de ahora, siguiendo las tendencias, 4D escribe los archivos de texto sin una lista de materiales. Y en macOS, 4D utiliza LF como carácter EOL. Esto es completamente automático para todos los archivos escritos por 4D, como 4DSettings, 4dm, 4DForm, etc.
Al abrir archivos en una versión anterior de 4D, no encontrará ningún problema, incluso si fueron escritos en 4D v19 R2, porque estas versiones anteriores fueron capaces de abrir archivos sin BOM y usando LF como carácter EOL.
Ajustes de compatibilidad
¿Quiere seguir el comportamiento de 4D? Existen nuevos ajustes de compatibilidad que permiten TEXT TO DOCUMENT y File.setText() generar archivos sin lista de materiales y utilizar LF como carácter EOL en macOS cuando los parámetros opcionales «charSet» y «breakMode» faltan. Esto es totalmente automático; no es necesario reescribir el código fuente para beneficiarse de este nuevo comportamiento.
NUEVOS JUEGOS DE CARACTERES
Los nuevos ajustes de compatibilidad se aplican a los comandos TEXT TO DOCUMENT y File.setText() cuando se utilizan sin los parámetros opcionales «charSet» o «breakMode».
No se han realizado cambios para el carácter EOL. Todavía se puede forzar utilizando el parámetro «breakMode».
De la misma manera, se puede definir con precisión si los archivos generados por TEXT TO DOCUMENT y File.setText() contienen una lista de materiales o no. Para ello, defina un conjunto de caracteres Unicode que termine con «-no-bom», como «UTF-8-no-bom» o «UTF-16-no-bom», para escribir un archivo sin BOM. Para escribir un archivo con una lista de materiales, puede seguir utilizando los conjuntos de caracteres existentes sin el sufijo «-no-bom», como «UTF-8» o «UTF-16».