JSONCompare - VS Code Extension
Autor: Denison Ceciliano Vega
Extension oficial para ejecutar certificaciones de modernizacion JSON desde Visual Studio Code, con dashboard ejecutivo embebido, visor Excel embebido y historico de ejecuciones.
Funcionalidad final
- Vista lateral dedicada en Activity Bar: JSONCompare.
- Deteccion automatica desde carpeta raiz de:
- carpeta ANTES
- carpeta DESPUES
- carpeta reportes
- Ejecucion de comparacion sin salir de VS Code.
- Generacion de reportes por corrida:
- Excel (.xlsx)
- Dashboard HTML (.html)
- Apertura automatica del dashboard al finalizar (configurable).
- Dashboard embebido en VS Code con navegacion:
- Reporte anterior
- Reporte siguiente
- Visor Excel embebido con tabs:
- RESUMEN
- DETALLE
- METRICAS
- CERTIFICACION
- Fallback a vscode.open cuando falle la lectura embebida del Excel.
- Historico de ejecuciones dentro del panel.
- Comparacion ejecutiva de dos reportes historicos.
- Estilos adaptativos para modo oscuro y modo claro en visores embebidos.
Flujo recomendado
- Abre JSONCompare desde Activity Bar.
- Haz clic en Autodetectar desde raiz.
- Ejecuta comparacion.
- Revisa resultados actuales.
- Abre Dashboard o Excel embebido.
- Consulta historicos y compara ejecuciones.
Configuracion
- comparadorJson.pythonExecutable
- comparadorJson.comparatorScriptPath
- comparadorJson.beforeFolderNames
- comparadorJson.afterFolderNames
- comparadorJson.reportFolderName
- comparadorJson.autoOpenDashboard
- comparadorJson.performanceProfile
Default clave:
- comparadorJson.comparatorScriptPath = main.py
- comparadorJson.autoOpenDashboard = true
- comparadorJson.performanceProfile = balanced
Perfiles de rendimiento:
- balanced: conserva metricas exactas (incluye conteo de registros en archivos identicos).
- max-performance: prioriza velocidad en lotes grandes (omite conteo detallado en archivos identicos).
Arquitectura principal
- src/extension.ts
- src/providers/comparatorViewProviderAdvanced.ts
- src/services/comparatorRunner.ts
- src/services/reportService.ts
- src/services/reportHistoryService.ts
- src/reportHistory/reportScanner.ts
- src/reportHistory/reportLoader.ts
- src/reportHistory/dashboardViewer.ts
- src/reportHistory/excelViewer.ts
- src/models/reportModels.ts
Requisitos
- VS Code 1.85+
- Python 3.11+
- Dependencias del comparador Python instaladas
Instalacion VSIX
code --install-extension json-compare-0.1.7.vsix
Tambien puedes instalar con Extensions: Install from VSIX...
Desarrollo
npm install
npm run compile
Empaquetado
npm run package
Publicacion y actualizaciones en VS Code Marketplace
Para que los usuarios reciban actualizaciones automaticas, la extension debe publicarse en Marketplace con:
- el mismo
name
- el mismo
publisher
- una
version mayor (semver)
Configuracion de este proyecto:
publisher: DenisonCecilianoVega
- scripts de publicacion incluidos en
package.json
Preparacion inicial (una sola vez por equipo)
- Crear/validar publisher en Marketplace:
DenisonCecilianoVega.
- Crear un PAT con permisos de Marketplace (Manage).
- Ejecutar login de
vsce:
npx @vscode/vsce login DenisonCecilianoVega
Publicar nueva version
npm run release:publish:patch
Alternativas:
npm run release:publish:minor
npm run release:publish:major
Solo generar VSIX local
npm run release:package
Nota: instalar VSIX local no habilita auto-update por Marketplace; para eso hay que publicar con vsce publish.
Documentacion oficial ampliada
Consulta la guia completa en: