Coloreo de sintaxis, hover, validación, status bar y panel de documentación
para los archivos de regímenes informativos ARCA del ecosistema PSP /
billeteras virtuales (RG 4614/2019).
| Formulario |
Versión |
Régimen |
Vigencia |
| F.8125 |
v1.0 |
Agrupadores o Agregadores de Medios de Pago (Título I) |
11/2019+ |
| F.8126 |
V00200 |
Administración e Intermediación de Cuentas Virtuales (Título II) |
07/2021 – 03/2026 |
| F.8126 |
V00300 |
Administración e Intermediación de Cuentas Virtuales (Título II) |
04/2026+ |
La versión de F.8126 se detecta dinámicamente leyendo el campo VERSIÓN del
registro cabecera (Reg 01). El formulario se detecta por nombre de archivo
(F8125.*.txt / F8126.*.txt) o por el languageId asignado.
Funcionalidades
- Coloreo de sintaxis (TextMate grammars) por formulario y versión.
- Hover sobre cualquier posición muestra el campo, su rango, tipo,
obligatoriedad, valor actual y los valores válidos de tabla si aplica.
- Status bar muestra en tiempo real el formulario/versión activo, el
registro y campo bajo el cursor.
- Panel de documentación lateral con la referencia completa de todos
los registros y campos del formulario activo. Atajo:
Ctrl+Shift+F8.
- Resaltado del campo bajo el cursor.
- Diagnostics inline (15 reglas):
longitud de registro, formato (numérico/fecha/CUIT con checksum/booleano),
valores fijos, valores de tabla, campos obligatorios vacíos, primer registro
debe ser cabecera, cardinalidad, suma declarada vs real, mezcla de versiones.
Instalación
En devcontainer
Commitear daas-consulting-arca-forms-syntax-highlighter-1.0.0.vsix (o esta carpeta) al repo y agregar en
.devcontainer/devcontainer.json:
{
"postAttachCommand": {
"install-arca": "code --install-extension ${containerWorkspaceFolder}/.devcontainer/extensions/daas-consulting-arca-forms-syntax-highlighter-1.0.0.vsix --force"
}
}
Como .vsix local
docker run --rm -v "$PWD:/app" -w /app node:lts sh -c "npm ci && npm run compile && npx vsce package"
# Genera daas-consulting-arca-forms-syntax-highlighter-1.0.0.vsix
# Luego en VS Code: Extensions → ··· → Install from VSIX
Asociación de archivos
Los patrones F8125.*.txt y F8126.*.txt se reconocen automáticamente.
Para .txt con otro nombre: Ctrl+K M → F8125 o F8126.
O en settings.json:
{
"files.associations": {
"F8125.*.txt": "f8125",
"F8126.*.txt": "f8126"
}
}
Estructura del proyecto
daas-consulting-arca-forms-syntax-highlighter/
├── package.json
├── tsconfig.json
├── language-configuration.json
├── syntaxes/
│ ├── f8125.tmLanguage.json
│ └── f8126.tmLanguage.json (patterns V00200 y V00300)
├── src/
│ ├── extension.ts entry point mínimo
│ ├── forms/
│ │ ├── types.ts FormDef, RegisterDef, FieldDef
│ │ ├── index.ts FORMS registry
│ │ ├── __validate__.ts integrity checks (sumas/no-gap)
│ │ ├── f8125.ts
│ │ ├── f8126-v00200.ts
│ │ └── f8126-v00300.ts
│ ├── core/
│ │ ├── resolveForm.ts detección filename + contenido
│ │ ├── fieldLookup.ts helpers genéricos
│ │ ├── cuitChecksum.ts checksum AFIP
│ │ └── validators.ts por FieldType
│ └── providers/
│ ├── hover.ts
│ ├── statusBar.ts
│ ├── decorations.ts
│ ├── docPanel.ts webview parametrizado por FormDef
│ └── diagnostics.ts 15 reglas + debounce
└── examples/ archivos de muestra para cada variante
Mantenimiento de las specs
Las definiciones de campos en src/forms/*.ts provienen de los manuales
oficiales de ARCA:
Para regenerar desde los PDFs:
mkdir -p /tmp/arca && cd /tmp/arca
curl -sSL -o v200.pdf https://www.afip.gob.ar/economia-digital/ayuda/documentos/Interfaz-F8126-v-00200.pdf
curl -sSL -o v300.pdf https://www.afip.gob.ar/economia-digital/ayuda/documentos/Interfaz-F8126-v300.pdf
curl -sSL -o f8125.pdf https://www.afip.gob.ar/economia-digital/ayuda/documentos/Interfaz-F8125.pdf
pdftoppm v200.pdf v200 -png -r 200
pdftoppm v300.pdf v300 -png -r 200
pdftoppm f8125.pdf f8125 -png -r 200
Requiere poppler-utils (apt) o poppler (brew).
## Atajos
| Acción | Atajo |
|---|---|
| Abrir panel documentación | `Ctrl+Shift+F8` |
| Asignar lenguaje manualmente | `Ctrl+K M` → `f8125` / `f8126` |