Soporte de servidor de idiomas para Pact. Presentamos el Protocolo de Servidor de Idiomas en… de Robert Soeldner Kadena abr, 2023

Las herramientas que respaldan el proceso de desarrollo de software son cruciales para garantizar la calidad, la seguridad y la puntualidad del software. Esto es especialmente importante en el contexto de los contratos inteligentes, que son programas autoejecutables en un entorno distribuido. Como resultado, los contratos inteligentes requieren un alto nivel de seguridad para protegerse contra las vulnerabilidades que podrían comprometer la integridad del contrato.

El Language Server Protocol (LSP) es un protocolo desarrollado por Microsoft para estandarizar la comunicación entre las herramientas de desarrollo, como los editores y los IDE. El servidor de idioma proporciona servicios específicos del idioma, como finalización de código y verificación de errores. El LSP se ha vuelto cada vez más popular en la comunidad de desarrollo, con el apoyo de un número creciente de lenguajes de programación y herramientas de desarrollo.

Al aprovechar el LSP, Kadena brinda una mejor experiencia de usuario y un mayor soporte para el desarrollo de contratos seguros dentro del entorno de desarrollo integrado preferido del desarrollador.

Si bien el soporte de herramientas anterior se limitaba principalmente al IDE de Atom, el servidor LSP ahora permite la integración con una amplia variedad de editores, incluidos Emacs y vim.

El soporte actual para el Protocolo de servidor de idiomas incluye una variedad de características útiles para desarrollar contratos inteligentes de forma segura. Una de estas características es diagnóstico de documentos, que puede proporcionar comentarios en tiempo real sobre posibles problemas y vulnerabilidades dentro del código. Además de los diagnósticos estándar, este soporte también incluye Huellas del pacto, que permite a los desarrolladores rastrear la ejecución de un contrato inteligente Pact e identificar cualquier problema que pueda surgir durante el tiempo de ejecución. Otra característica es autocompletado de nativos, que puede ahorrar tiempo y reducir el riesgo de errores de sintaxis. Finalmente, documentación sobre nativos a través de la información flotante se proporciona un contexto adicional para los desarrolladores, lo que les permite comprender las funciones y los parámetros disponibles para nativos específicos.

Al combinar estas funciones con otras herramientas habilitadas para LSP, los desarrolladores pueden mejorar la seguridad y la calidad de sus contratos inteligentes, al mismo tiempo que aumentan la productividad y reducen el riesgo de errores.

Los desarrollos futuros para el servidor LSP se centran en mejorar la experiencia de desarrollo y la seguridad de los contratos inteligentes. Una característica actualmente en desarrollo es saltar a la definición, que permite a los desarrolladores navegar rápidamente a la definición de una función o variable dentro de su código. Esto puede ahorrar tiempo y mejorar la productividad, especialmente para proyectos más grandes y complejos. Otra área de enfoque es acciones de código de verificación formal, que permitirá el soporte de verificación automatizada de contratos inteligentes utilizando el método formal de Pactos. Esto puede ayudar a identificar posibles vulnerabilidades de seguridad y garantizar que el contrato se comporte según lo previsto.

Finalmente, los desarrollos futuros incluirán la continuación integración con el código de Visual Studio (VSCode), una opción popular para el desarrollo de contratos inteligentes. Pero también estamos buscando soporte para IntelliJ. Ahora incluso podemos buscar opciones para crear nuestro IDE en un momento dado para que podamos integrar la implementación de contratos inteligentes en su entorno de desarrollo.

Con soporte continuo para LSP, los usuarios de Pact pueden beneficiarse de una gama de funciones de lenguaje y funcionalidad de análisis de seguridad dentro de su IDE preferido. En general, estos desarrollos demuestran un compromiso para mejorar la experiencia de desarrollo y la seguridad de los contratos inteligentes utilizando herramientas habilitadas para LSP.