La extensión de Tgroup para los scripts del producto Itris Software
Desde la versión 2.0, además del highlighting y los snippets que ya
proveía, también detecta errores comunes en el panel "Problems" de
VSCode (Ctrl+Shift+M). Desde la 2.1 incluye además formatter de
código, hover con documentación de funciones, y detección de variables
usadas sin inicializar.
Funciones
- Autocompletado y remarcado de funciones ITRIS - INTEGRA.
- Diagnósticos en tiempo real: errores léxicos, sintácticos, validación
contra el catálogo de funciones ITRIS, y variables usadas sin
inicializar.
- Hover con documentación: pasar el mouse sobre una función
Its*
muestra firma, descripción, parámetros, retorno y ejemplo (96
funciones cubiertas).
- Formatter de código:
Shift+Alt+F o paleta → Itris Pascal: Format Document. Modo conservador que respeta alineaciones manuales
en SQL y condiciones multilínea.
Diagnósticos
| Código |
Tipo |
Severidad |
| ITRIS001 |
String sin cerrar |
Error |
| ITRIS002 |
Comentario { } sin cerrar |
Error |
| ITRIS003 |
Comentario (* *) sin cerrar |
Error |
| ITRIS004 |
Carácter inválido |
Error |
| ITRIS010 |
Paréntesis o corchete sin cerrar |
Error |
| ITRIS011 |
Cierre sin apertura |
Error |
| ITRIS012 |
begin sin end |
Error |
| ITRIS013 |
end sin begin |
Error |
| ITRIS014 |
; faltante entre sentencias |
Warning |
| ITRIS015 |
then sin if |
Error |
| ITRIS017 |
Operador binario sin operando derecho |
Error |
| ITRIS018 |
Falta . final del bloque principal |
Error |
| ITRIS101 |
Función Its* desconocida |
Error |
| ITRIS102 |
Función Erp*/Seg*/_* no encontrada |
Warning¹ |
| ITRIS103 |
Cantidad incorrecta de parámetros |
Error |
| ITRIS104 |
Variable inyectada con typo |
Warning |
| ITRIS105 |
Constante de enum con typo |
Warning |
| ITRIS106 |
Variable usada sin inicializar |
Warning² |
¹ Configurable vía itris.diagnostics.unknownPrefixSeverity.
² Configurable vía itris.diagnostics.uninitializedVariableSeverity.
Configuración
itris.libraries.path
Si tenés librerías de modelización custom (funciones con prefijo Erp,
Seg, _) que la extensión no conoce, indicá la carpeta donde viven
los .psc de las librerías:
"itris.libraries.path": "./libs"
o múltiples carpetas:
"itris.libraries.path": ["./libs", "../shared/libs"]
La extensión indexa esos archivos y deja de marcar como warning las
funciones que encuentra ahí.
itris.diagnostics.unknownPrefixSeverity
Severidad de los warnings ITRIS102 (funciones de modelización no
encontradas):
"warning" (default): subrayado amarillo + entrada en Problems.
"info": solo entrada en Problems sin subrayado.
"hint": lampita silenciosa.
"off": no marcar nada.
itris.diagnostics.uninitializedVariableSeverity
Severidad de los warnings ITRIS106 (variables usadas sin inicializar).
Mismo abanico que unknownPrefixSeverity: "warning" (default),
"info", "hint", "off".
"itris.diagnostics.uninitializedVariableSeverity": "info"
itris.diagnostics.enabled
Apaga todo el pipeline de diagnósticos sin desinstalar la extensión:
"itris.diagnostics.enabled": false
Hover
Pasar el mouse sobre una función ITRIS conocida muestra un tooltip con
firma, descripción, parámetros, tipo de retorno, ejemplo y referencia
a la sección del documento de referencia. La base de datos cubre 96
funciones (DataSets, formularios, ClientClass, REST, ScriptEx, etc.).
Si la función no está documentada, no se muestra tooltip (no rompe).
Shift+Alt+F (o paleta → Itris Pascal: Format Document) reformatea
el archivo .psc activo. Modo conservador por defecto: respeta
alineaciones manuales en concatenaciones SQL, condiciones multilínea
y comentarios desplazados. Idempotente: aplicar formato dos veces
produce el mismo resultado.
Para activarlo al guardar:
"[itris]": {
"editor.formatOnSave": true
}
Snippets útiles
iff (agrega un if ItsFlCurValue(Delta, 'CAMPO') condicion then begin .... end;)
ItsFrmCreate Completo (Agrega un ItsFrmCreate de ejemplo)
ItsInputQuery completo (Agrega un ItsInputQuery de ejemplo)
ItsClientClassCreate completo (Agrega un ItsClientClassCreate de ejemplo)
whileds (Agrega un while not ItsDsEof completo como ejemplo)
whiledss (Agrega un while not ItsDsEof completo como ejemplo, sin ItsDsFirst)
ItsConfirmComplete completo (Agrega un ItsConfirmComplete de ejemplo)
ItsFrmCreate abrir frm (Abre un formulario de INTEGRA con los filros seleccionados)
_ObtenerDirTemp (Crea la función para obtener el directorio temporal)
_GuardarDocumento (Genera un procedimiento que permite guardar un archivo. No agrega linea al final)
si_no_es_grilla (Bloque para determinar si un formulario de Integra está en modo grilla)
está_en_modo_edición (Bloque para determinar si un formulario de Integra está en modo edición)
leer_archivo (Bloque para leer un archivo)
GrabarLog rápido (Función para ingresar un GrabarLog rápidamente. anteriormente se tuvo que haber hecho su respectivo Procedure)
Procedure GrabarLog (Función para crear el procedure de un GrabarLog completo desde cero. Los GrabarLog de Inicio y Fin pueden borrarse de no ser necesarios)
Try & Except - atrapar un solo error (Función para crear un try & Except completo el cual al encontrar el primer error detiene el procedimiento entero y guarda el error en un archivo especificado)
Try & Except seguir procesando (Función para crear un try & Except completo el cual al encontrar errores siga procesando)