Versión: 2.0.1
Autor: David Alberto Quispe Miranda
🧠 ¿Qué hace esta extensión?
Esta extensión para Visual Studio Code permite ejecutar una validación completa de Pull Requests Salesforce de forma local, combinando:
✅ Reglas custom BCP
✅ Salesforce Code Analyzer (PMD, ESLint, Flow)
✅ Reporte unificado en HTML
El análisis se ejecuta solo sobre los archivos modificados en tu branch, comparándolos contra una rama base (por defecto develop), simulando el comportamiento del pipeline de CI antes de subir el PR.
🚀 ¿Cómo funciona?
Ubícate en tu branch de trabajo (feature / bugfix).
Ejecuta el comando: BCP: Validate Pull Request desde la paleta (Ctrl+Shift+P).
La extensión:
Detecta el repositorio Git o proyecto Salesforce
Compara tu branch contra origin/develop
Identifica los archivos modificados
Ejecuta validaciones custom y Code Analyzer
Genera un reporte HTML unificado
Abre el reporte automáticamente en el navegador
✅ ¿Qué valida?
🔎 Validaciones custom BCP
Reglas de indentación
Uso de WITH SECURITY_ENFORCED
Validaciones de ejecución con SYSTEM_MODE
Estas validaciones no detienen el flujo de inmediato:
El reporte siempre se genera y, si hay errores, el comando lo informa al final.
🧪 Salesforce Code Analyzer
pmd:bcp
eslint
flow
📄 Resultados generados
Archivo
Descripción
ca_results.html
✅ Reporte final (se abre en el navegador)
ca_results.json
Resultados estructurados
ca_results.csv
Resultados en formato tabular
custom_results.json
Snapshot de reglas custom
job_summary.md
Resumen local (opcional) / GitHub Job Summary en CI
🌐 Visualización del reporte
El archivo HTML se abre automáticamente en el navegador
El resumen (job_summary.md) puede visualizarse en VS Code usando Markdown: Open Preview (Ctrl/Cmd + Shift + V)
🛠️ Requisitos
Salesforce CLI con soporte para sf code-analyzer
Proyecto Salesforce con estructura estándar (force-app)
Git configurado y acceso a la rama base (develop)
Windows, macOS o Linux ✅
📋 Comando ejecutado internamente
sf code-analyzer run \
--rule-selector pmd:bcp \
--rule-selector eslint \
--rule-selector flow \
--workspace "<ruta de cada elemento>" \
--output-file results.html