# Move VSCode Plugin

By [McMary](https://paragraph.com/@mcmary) · 2023-02-24

---

El complemento VSCode para Move se llama move-analyzer y está disponible en Visual Studio Marketplace. Las nuevas funciones se admiten a través del Protocolo de servidor de idioma; para liberar todo el potencial del complemento, además de instalar el complemento en sí, también debe instalar el servidor de idioma de move-analyzer como se describe en las instrucciones de instalación provistas con la distribución del complemento.

El Protocolo de servidor de idiomas (LSP) fue introducido originalmente por Microsoft, pero también es compatible con una gama de otros editores de código y entornos de desarrollo integrados (IDE), como Sublime Text o Eclipse. Es un protocolo estándar en el que un editor de un IDE puede "pedir" al servidor de idioma ciertos tipos de información sobre el código que se está editando. Y le permite visualizar los datos obtenidos de una manera que mejora y simplifica el proceso de desarrollo de código. Esperamos integrar estas nuevas características con otros editores de IDE, idealmente con la ayuda de la comunidad de idiomas de Move.

Las nuevas funciones proporcionadas por la versión actual del servidor de idiomas de move-analyzer se dividen en dos categorías principales: comprensión de código e informe de errores. Se implementaron mediante la integración del servidor de idioma con el compilador de Move "estándar" (el compilador que fue desarrollado conjuntamente con el lenguaje y es parte del repositorio de código fuente principal de Move). Esta integración no solo garantiza la precisión de la información proporcionada por el servidor de idiomas (por ejemplo, los mensajes de error visualizados por un editor o un IDE se corresponderán directamente con los mensajes de error generados por el compilador), sino que también simplificará el mantenimiento del servidor de idiomas de cara a de posibles cambios futuros en el idioma de Move.

Comprensión de código
---------------------

Uno de los problemas con los lenguajes de contratos inteligentes más tradicionales que el diseño del lenguaje Move está tratando de resolver es la composición y reutilización del código. Para habilitar la reutilización del código, el código se puede agrupar en paquetes (por ejemplo, un paquete de biblioteca estándar) y estos paquetes se pueden compartir entre diferentes implementaciones de contratos inteligentes. Esto significa que los desarrolladores que escriben nuevos contratos inteligentes pueden tener que lidiar con una base de código que en gran medida desconocen.

El nuevo complemento VSCode ofrece un conjunto de características que pueden ayudar a los desarrolladores a comprender mejor su base de código completa.

Escriba al pasar el mouse
-------------------------

Al encontrar un identificador en una base de código desconocida, es posible que no sepa el tipo de identificador. Si pasa el cursor sobre el nombre de un identificador (por ejemplo, el nombre de una variable local o el nombre de una función), verá el nombre de este identificador en una información sobre herramientas. Vea este ejemplo.

Ir a definición
---------------

Otra información sobre un identificador que puede no ser inmediatamente obvia es dónde se define este identificador: puede ser una variable local definida en la misma función pero también, por ejemplo, una función definida en un módulo diferente. Si hace clic con el botón derecho en el nombre del identificador y elige la opción Ir a definición del menú, su cursor será transportado a la ubicación de la definición del identificador. Vea este ejemplo.

Ir a la definición de tipo
--------------------------

Incluso si sabe dónde está la definición de un identificador dado y conoce el nombre de su tipo, no significa necesariamente que sea trivial ubicar su definición de tipo. Por ejemplo, es posible que ya sepa que el tipo de identificador es struct SomeStruct pero aún no sabrá cuáles son los campos de esta estructura. Si hace clic con el botón derecho en el nombre del identificador y elige la opción Ir a definición de tipo del menú, su cursor será transportado a donde se define el tipo de este identificador. Vea este ejemplo.

Buscar referencias
------------------

La última característica que mejora la comprensión del código es la capacidad de encontrar todas las apariciones de un identificador dado en la base de código completa. Esto puede ser útil, por ejemplo, si desea saber dónde se llama a una función determinada. Si hace clic con el botón derecho en el nombre del identificador y elige la opción Buscar todas las referencias del menú, todas las apariciones de este identificador se mostrarán en el panel izquierdo de la ventana del editor de VSCode. Vea este ejemplo.

Error al reportar
-----------------

Un método estándar para obtener diagnósticos del compilador (errores pero también advertencias) para un fragmento de código Move es ejecutar el compilador en la línea de comandos y observar la salida que produce. Si bien este método es ciertamente suficiente, puede que no sea el más conveniente. En cambio, lo que presentamos en la nueva versión del complemento VSCode es mostrar diagnósticos del compilador en la ventana del editor. Siempre que guarde un archivo, el servidor de idioma ejecutará el compilador en segundo plano y enviará la salida resultante a VSCode para que se muestre (la información relacionada con la comprensión del código también se vuelve a calcular al mismo tiempo). Vea este ejemplo.

---

*Originally published on [McMary](https://paragraph.com/@mcmary/move-vscode-plugin)*
