El verificador de conexiones

Un beneficio importante de usar Blockly es que garantiza que el código generado sea sintácticamente correcto.

El verificador de conexiones es el objeto que aplica las reglas de Blockly sobre qué conexiones son compatibles. De forma predeterminada, el verificador aplica un sistema de tipos simples, como se describe en la página Verificaciones de tipos.

Los cheques

Blockly aplica tres niveles de comprobaciones: seguridad, tipo y arrastre.

Verificaciones de seguridad

Las verificaciones de seguridad garantizan que los bloques estén en el mismo lugar de trabajo, que las conexiones estén en bloques diferentes, etcétera. Esto asegura que Blockly no entre en un mal estado.

Las verificaciones de seguridad también bloquean combinaciones sin sentido, como la conexión de dos conexiones siguientes.

Verificaciones de tipos

Los desarrolladores pueden etiquetar las conexiones con información de tipo. Las verificaciones de tipo usan esta información para aplicar un sistema de tipos, p.ej., mediante el bloqueo de la conexión de una string cuando se espera un número.

Controles de arrastre

Las verificaciones de arrastre solo se aplican cuando se arrastran bloques, en lugar de hacerlo de manera programática. Por ejemplo, durante un arrastre, solo se deben considerar las conexiones dentro de un radio determinado.

Anula el verificador de conexiones

Los desarrolladores que deseen proporcionar su propia lógica para las comprobaciones de tipo o de arrastre pueden registrar un objeto de verificador de conexiones sustituto que implemente la interfaz IConnectionChecker.

Para implementar tus propias verificaciones de seguridad, anula doSafetyChecks en tu verificador de conexión.

Para implementar tus propias verificaciones de tipo, anula doTypeChecks en tu verificador de conexión.

Para implementar tus propias verificaciones de arrastre, anula doDragChecks en tu verificador de conexión.

Ejemplo de código

El complemento estricto de verificador de conexiones es un ejemplo simple de un verificador personalizado.