Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MadDataProNew to Visual Studio Code? Get it now.
MadDataPro

MadDataPro

MadcapSoftware

|
2 installs
| (0) | Free
Visualiza archivos mainframe (COBOL, EBCDIC) y ábrelos directamente desde JCL.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MadDataPro

MadDataPro es una extensión de Visual Studio Code para explorar y visualizar ficheros mainframe (COBOL / EBCDIC) y para integrar la navegación desde JCL hacia esos ficheros locales. Está pensada para desarrolladores que trabajan con JCL y datasets (DSN) y quieren abrir y revisar ficheros mainframe locales directamente desde VS Code.


Resumen

  • Nombre del paquete: mad-data-pro
  • Display name: MadDataPro
  • Versión: 1.0.0
  • Publisher: MadcapSoftware
  • Descripción: Visualiza archivos mainframe (COBOL, EBCDIC) y ábrelos directamente desde JCL.

Esta extensión ofrece:

  • Un editor personalizado (Mainframe Data Editor) para visualizar ficheros mainframe.
  • Soporte para abrir ficheros a partir de nombres DSN detectados en ficheros JCL.
  • Un panel/árbol (Explorer view) llamado MadDataPro JCL Structure que muestra pasos (STEP) y DDs detectados en el JCL.
  • Un panel webview opcional para renderizar la estructura JCL de forma interactiva.
  • CodeLens en líneas JCL donde se detecta un DSN para acciones rápidas (Abrir / Copiar).
  • Validaciones/diagnósticos básicos del JCL (longitud de DSN, espacios en DSN o DISP no estándar).

Características en detalle

Editor personalizado

La extensión registra un customEditor con viewType madDataPro.mainframeEditor que se usa para abrir ficheros mainframe con una visualización especial. Puedes abrir ficheros mediante comandos o desde el árbol JCL.

Integración con JCL

Al abrir o cambiar un archivo con lenguaje jcl, la extensión:

  • Analiza su contenido para detectar pasos (STEP) y DDs.
  • Crea una estructura que se muestra en la vista MadDataPro JCL Structure del Explorador.
  • Añade CodeLens encima de las líneas con DSN detectado para acciones "Abrir en MadData" y "Copiar DSN".
  • Publica diagnósticos (warnings/errors) en el panel de Problemas si detecta DSN muy largos, espacios en DSN o DISP no estándar.
  • Opcionalmente abre un panel webview con la estructura JCL para navegación y acciones.

Árbol (Explorer view)

La vista MadDataPro JCL Structure muestra:

  • Cada paso (STEP) como nodo expandible.
  • Dentro de cada paso, sus DDs con el DSN detectado (si lo hay) y, si el DD tiene SYSIN, un sub-nodo con el contenido.
  • Menú contextual para abrir o copiar el DSN.

Webview panel

Un panel (webview) con interfaz HTML/JS que muestra los pasos y DDs de forma interactiva. Desde ahí podrás copiar DSNs o pedir abrirlos en el editor personalizado.


Comandos disponibles

Estos comandos se encuentran en package.json y están registrados por la extensión:

  • madDataPro.openDsnInEditor — Abrir un DSN en el editor personalizado. Si se invoca sin argumento lee el DSN en la posición del cursor (archivo JCL). También copia el DSN al portapapeles.
  • madDataPro.openMainframeFile — Abrir un fichero manualmente (diálogo de selección de fichero) y visualizarlo con el editor personalizado.
  • madDataPro.copyDsn — Copiar un DSN al portapapeles (útil desde el árbol o CodeLens).
  • madDataPro.openDsnFromTree — Abrir DSN desde el árbol sin añadir sufijo.
  • madDataPro.openDsnFromTreeWithExtension — Abrir DSN desde el árbol y añadir el sufijo configurado (madDataPro.extensionSuffix).
  • madDataPro.copyDsnAtCursor — Copiar el DSN donde esté el cursor en un archivo JCL.
  • madDataPro.setBasePath — Pedir por UI la ruta base (madDataPro.basePath) y guardarla en la configuración global de VS Code.
  • madDataPro.setExtensionSuffix — Pedir por UI qué sufijo usar al abrir DSNs desde el árbol (por ejemplo .DAT).
  • madDataPro.showJclStructure — Mostrar/actualizar el panel webview con la estructura del JCL y dar indicaciones para ver la vista en Explorer.
  • madDataPro.revealJclStep — Comando interno para centrar el editor activo en la línea de un STEP (usado por la vista).

Keybindings incluidos por defecto (puedes cambiarlos):

  • Ctrl+Alt+O — madDataPro.openDsnInEditor (sólo en archivos JCL)
  • Ctrl+Alt+J — madDataPro.showJclStructure

Activación (activationEvents principales):

  • onCustomEditor:madDataPro.mainframeEditor
  • onLanguage:jcl
  • onCommand:madDataPro.openDsnInEditor
  • onView:madDataPro.jclStructure

Configuración

La extensión expone las siguientes opciones en la sección de configuración madDataPro:

  • madDataPro.basePath (string)

    • Descripción: "La ruta base desde la que se intentarán abrir los ficheros (DSN)."
    • Ejemplo: D:\\Trabajo (en Windows usa backslashes)
    • Uso: Cuando pides "Abrir DSN" la extensión concatena basePath\\<DSN> y abre ese fichero en el editor personalizado.
  • madDataPro.extensionSuffix (string)

    • Descripción: "Sufijo/ extensión que se añadirá al nombre de fichero al abrir desde el árbol (por ejemplo: .DAT)"
    • Valor por defecto: .DAT
    • Uso: si un DD tiene DSN FOO.BAR, y extensionSuffix es .DAT, se intentará abrir FOO.BAR.DAT en basePath.
  • madDataPro.autoOpenJclPanel (boolean)

    • Descripción: "Si está activo, la pestaña 'MadDataPro JCL Structure' se abrirá automáticamente al abrir un archivo JCL."
    • Valor por defecto: false

Cómo modificarlo desde VS Code: abrir la paleta (Ctrl+Shift+P) -> "Preferences: Open Settings (JSON)" o usar el UI de configuración y buscar MadDataPro.

También hay comandos para actualizar basePath y extensionSuffix desde UI sin editar el settings.json manualmente (madDataPro.setBasePath, madDataPro.setExtensionSuffix).


Uso rápido

  1. Configura madDataPro.basePath con la ruta local donde están tus ficheros mainframe.
  2. Abre un fichero JCL en VS Code (extensiones .jcl o .jcllib).
  3. Usa el CodeLens encima de una línea con DSN para "Abrir en MadData" o "Copiar DSN".
  4. Abre la vista MadDataPro JCL Structure en el Explorador para navegar por pasos y DDs.
  5. Desde la vista puedes abrir el archivo relacionado o copiar su DSN. Usa el sufijo configurado si necesitas añadir la extensión (por ejemplo .DAT).

Compilar, probar y empaquetar

Requisitos: Node.js y npm instalados. VS Code (se recomienda >= 1.80.0 por la propiedad engines en package.json).

Instala dependencias y compila TypeScript:

npm install
npm run compile

Para compilar en modo watch durante desarrollo:

npm run watch

Tests (si existen):

npm test

Empaquetado y publicación en Visual Studio Marketplace (resumen):

  1. Regístrate y crea un publisher en https://marketplace.visualstudio.com/manage
  2. Genera un Personal Access Token (PAT) con el scope necesario para publicar extensiones.
  3. Puedes usar la herramienta oficial @vscode/vsce para empaquetar y publicar. Ejemplo con PowerShell:
# instalar la herramienta globalmente (si no la tienes)
npm install -g @vscode/vsce

# crear paquete .vsix
vsce package

# publicar (usa --pat o configura VSCE_PAT environment variable)
vsce publish --pat <YOUR_PERSONAL_ACCESS_TOKEN>

Alternativa con npx (no instalar globalmente):

npx @vscode/vsce package
npx @vscode/vsce publish --pat <YOUR_PERSONAL_ACCESS_TOKEN>

Nota: package.json ya contiene vscode:prepublish que llama a npm run compile antes de publicar.


Depuración / Troubleshooting

  • Asegúrate de que madDataPro.basePath está configurado y que los ficheros existen con los nombres esperados.
  • Las rutas en Windows usan \\ en settings.json o puedes usar / en la mayoría de los casos, pero la extensión concatena rutas con \\ internamente (uso de vscode.Uri.file()).
  • Para ver logs: abre "Help > Toggle Developer Tools" o en la paleta ejecuta "Developer: Open Webview Developer Tools" mientras el webview esté abierto. También puedes ver la salida en la consola del host de la extensión (Output panel -> Extension Host).
  • Si una acción falla al abrir un fichero, revisa el mensaje de error que muestra la extensión y confirma el basePath y el nombre final (DSN + sufijo si aplica).

Estructura interna (técnica)

  • src/extension.ts — punto de entrada. Registra providers, comandos, CodeLens, la vista de árbol y el webview panel.
  • src/MainframeEditor.ts — proveedor del custom editor (visualización de ficheros mainframe).
  • src/jclUtils.ts — analizador/parsing de JCL que detecta steps, DDs, DSNs, SYSINs, etc.
  • src/comp3*, src/pic*, src/parseCobolChecks.ts — utilidades y comprobaciones relacionadas con PIC/COMP-3 y parseo de COBOL (herramientas auxiliares para análisis de ficheros/mainframe).
  • media/ — recursos para el webview (scripts, imágenes, etc.).

Contribuciones

Si quieres contribuir, crea un issue o un PR. Recomendaciones:

  • Mantén el estilo TypeScript del proyecto.
  • Añade tests para nuevas funciones en la carpeta test/.
  • Ejecuta npm run compile y npm test antes de enviar un PR.

Licencia

Incluye aquí la licencia adecuada antes de publicar (por ejemplo MIT). Si aún no decidiste una licencia, añádela al repositorio como LICENSE.


Notas finales

Este README describe la funcionalidad actual (código en src/extension.ts y package.json). Si vas a publicar el paquete, verifica package.json (campo publisher) y que la cuenta del publisher existe en el Marketplace.

Si quieres, puedo:

  • Añadir un CHANGELOG.md básico para el primer release.
  • Preparar una acción de GitHub Actions para publicar automáticamente.
  • Generar capturas de pantalla para el Marketplace y actualizar README.md con imágenes.

Dime qué prefieres que haga a continuación.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft