COBOL Copybook Data EditorExtensión de Visual Studio Code para visualizar y editar archivos de datos COBOL usando un copybook como layout. Permite modificar campos, añadir y eliminar registros, y guardar los cambios. Pensada para registros generados en UNIX por programas COBOL/Pro*COBOL, con texto y campos COMP o COMP-3, y para trabajar con letra grande. Instalar y probar
También puedes pulsar con el botón derecho sobre un archivo de datos en el Explorador y elegir Editar con COBOL Copybook Data Editor. La extensión pedirá el copybook. En Reabrir editor con… también aparece este editor como opción. El identificador de publicación es Editar y guardar
Se conservan los bytes no modificados, los separadores LF/CRLF existentes, la presencia o ausencia del último salto de línea y el BOM UTF-8. Los nuevos separadores usan el primero encontrado en el archivo (LF si está vacío). Si el archivo cambia por fuera del editor, el guardado sobre el original se detiene y puedes usar Guardar como. Con REDEFINES, editar una interpretación modifica los bytes compartidos: las demás se actualizan inmediatamente. Los campos truncados no se pueden editar. Un registro incompleto de bloques fijos debe corregirse antes de añadir otros. La edición de un campo está limitada a 64 KiB; las vistas abreviadas no se usan como contenido al editar. Guarda o deshaz los cambios antes de cambiar el copybook, el layout, la codificación, el formato de registros o el orden binario. Así no cambias la interpretación mientras editas. Puedes ampliar la letra, cambiar el contraste, navegar y buscar campos con cambios pendientes. Lectura cómoda
Opciones para archivos de UNIXEl valor inicial de Separación de registros es Longitud del layout + LF/CRLF: lee exactamente los bytes que ocupa el copybook y después comprueba el separador. Así, un byte
Selecciona la codificación real del archivo: Windows-1252, UTF-8, Latin-1 o EBCDIC IBM 037. El copybook se lee como UTF-8, con alternativa Windows-1252. Los saltos del formato delimitado son bytes ASCII LF/CRLF; para archivos EBCDIC de bloques usa el formato sin separadores. Las posiciones y longitudes siempre se calculan en bytes, desde 1 en la interfaz. En UTF-8 una letra acentuada puede ocupar más de un byte. Una PIC que corte una secuencia UTF-8 produce un error de decodificación visible. No se aplica ninguna conversión al archivo antes de calcular los campos. COMP y el compilador: esta versión utiliza tamaños de almacenamiento de 2 bytes para 1–4 dígitos, 4 para 5–9 y 8 para 10–18. Puedes elegir por separado el orden de bytes de COMP/BINARY/COMP-4 y de COMP-5. Se inicia con COMP big endian y COMP-5 little endian. UNIX por sí solo no determina esos valores: comprueba el compilador, sus opciones y un campo cuyo valor conozcas. Otros tamaños binarios propios de un dialecto requieren adaptar el lector. Copybooks admitidos
Esta primera versión señala como no admitidos COPY externos, OCCURS DEPENDING ON, SYNC, COMP-1/2/6/X, NATIONAL y otros tipos cuyo almacenamiento no implementa. Las continuaciones que parten una palabra PIC o un literal entre líneas tampoco están implementadas. Es un lector de layouts habituales, no un compilador COBOL completo. Los archivos con cabeceras RDW/BDW, registros de longitud variable, varios tipos de registro con longitudes diferentes, o escapes/inserción de nulos propios de algunos formatos line sequential necesitan un lector específico. El archivo debe conservar sus bytes al transferirse de UNIX; una transferencia en modo texto puede alterar datos COMP/COMP-3. Ejemplos incluidos
Son datos inventados. La extensión trabaja con los archivos mediante el proveedor de archivos de VS Code, no envía datos a un servicio externo ni ejecuta SQL. Escribe al guardar, o cuando Auto Save está activo. Además de las preferencias de lectura, VS Code puede guardar copias de recuperación del documento con sus datos y layout. Con VS Code Remote/SSH, el proveedor realiza la lectura y escritura en el entorno remoto. Límites iniciales: datos de hasta 64 MiB, copybooks de hasta 2 MiB, registros de hasta 16 MiB, un millón de registros y 2000 campos después de expandir OCCURS. Los campos numéricos admiten hasta 38 dígitos (18 en binarios). Los valores de texto largos se abrevian a 4096 caracteres y su hexadecimal a 256 bytes, sin alterar las posiciones del layout. Desarrollo y comprobacionesRequiere Node.js 20 o superior. La extensión no tiene dependencias de ejecución ni necesita Abre esta carpeta en VS Code y pulsa F5 para lanzar otra ventana con la extensión en desarrollo. Después ejecuta COBOL Copybook Data Editor: Abrir ejemplo en esa ventana. En PowerShell se puede usar
Las pruebas automatizadas cubren posiciones, signos, COMP/COMP-3, precisión, codificaciones, límites de registros, OCCURS, REDEFINES y la comunicación de la extensión con un host VS Code simulado. La comprobación visual automatizada usa Python Playwright y Chromium ya instalados:
Esta prueba ejecuta el código real de la extensión con un host simulado y renderiza su interfaz en Chromium; no sustituye una prueba con tus archivos reales y tu compilador. Las pruebas cubren también escritura numérica exacta, validación, conservación de bytes y separadores, añadir/eliminar, historial, guardar/reabrir, cambios externos y recuperación de borradores. La prueba de apertura de una ventana nativa de VS Code en este entorno queda limitada por los permisos ACL de Windows sobre la instalación del editor, antes de cargar la extensión. El ejemplo del menú permite comprobar la apertura en tu sesión habitual. Validación de la versión 0.2.0: 38 pruebas Node correctas, comprobación de sintaxis correcta, prueba de interfaz en Chromium correcta (incluye escritura real de archivos de prueba) e instalación del VSIX en un perfil aislado correcta. El editor usa la API de editores personalizados de VS Code para guardar, registrar ediciones y recuperar documentos. Referencias: instalación de VSIX en VS Code, Webview API y almacenamiento computacional de IBM COBOL. |