Novedades de GoLand 2023.3

GoLand 2023.3 incorpora varias importantes novedades:

  • JetBrains AI Assistant ya está disponible para todos con una serie de funcionalidades nuevas y mejoradas para aumentar su productividad en los IDE de JetBrains.
  • Los Dev Containers ahora son oficialmente compatibles. Estamos trabajando en un conjunto de funcionalidades y desarrollando activamente la compatibilidad con los Dev Containers, por lo que llevan la etiqueta «Beta».
  • Una enorme actualización para el estilo de plegado de código para el manejo de errores, returns y panics de una línea, y otros elementos de código.
  • Varios consejos, refactorizaciones y arreglos rápidos para mejorar su productividad, como sugerencias para expresiones slice, información del código para funciones personalizadas tipo printf y mejoras del depurador.

GoLand 2023.3 también ofrece actualizaciones para las integraciones de Docker y Kubernetes, VCS y algunos retoques para el desarrollo web. ¡Sumérjase de lleno!

AI Assistant Disponibilidad general

Las últimas actualizaciones incluyen una generación de código mejorada directamente dentro del editor, un chat de IA consciente del contexto que responde a las consultas relacionadas con el proyecto sin necesidad de copiar el código, y acciones de IA conscientes del proyecto que utilizan el contexto ampliado para ofrecer resultados más completos. Un nuevo visor diff facilita la identificación de los cambios que las acciones de la IA han realizado en su código.

Utilice AI Assistant en GoLand como función complementaria con una suscripción a JetBrains AI Service.

AI Assistant para GoLand: Rename

¡Poner nombres es difícil! Por eso, AI Assistant de GoLand le sugerirá algunas ideas de nombres para las funciones con el fin de mejorar la legibilidad.

AI Assistant para GoLand: Write documentation

Documentar su código es una rutina tediosa, aunque necesaria. La acción Write documentation facilita un código bien comentado en solo un par de clics.

AI Assistant para GoLand: Generate Unit Test

AI Assistant puede ayudarle a crear una prueba para una función o método específico y le sugerirá que añada más casos de prueba una vez creada la clase de prueba inicial.

Refactorizaciones

Arreglo rápido Create function en otro paquete

Este arreglo rápido le permite escribir un nombre de función que no exista y, a continuación, generar su implementación en un paquete de su elección.

Refactorización Extract Parameter

La versión 2023.3 incorpora la primera parte de la muy esperada refactorización Extract Parameter. El arreglo rápido Create Parameter para referencias sin resolver le permite seleccionar una referencia sin resolver y utilizar la opción de arreglo rápido para crear un parámetro. También permite cambiar su tipo si no es lo suficientemente preciso, indicar un valor predeterminado y cambiar las llamadas con el valor predeterminado.

Dev Containers Beta

Compatibilidad con Dev Containers

GoLand es ahora compatible con los Dev Containers, lo que le permite utilizar contenedores como un entorno de desarrollo completo para editar, compilar y ejecutar sus proyectos. Los Dev Containers pueden ejecutarse de forma remota a través de una conexión SSH o de forma local utilizando Docker.

Compatibilidad con Dev Container Features

GoLand 2023.3 ofrece compatibilidad con Dev Container Features, y proporciona una forma cómoda y rápida de integrar herramientas adicionales, tiempos de ejecución y bibliotecas esenciales para el desarrollo.

Compatibilidad con Docker Compose dentro de Dev Containers

También hemos introducido la compatibilidad con Docker Compose dentro de los Dev Containers, lo que permite lanzar sin problemas tanto el contenedor principal con el IDE como cualquier contenedor dependiente, como los que contienen bases de datos o colas de mensajes, que resultan útiles durante el proceso de desarrollo.

Plegado de código mejorado

returns y panics de una línea

Los returns y panics de una línea ahora disponen de una opción para utilizar el nuevo estilo de plegado de código conciso, que se parecerá mucho más al código original.

La nueva sintaxis de plegado está activada de forma predeterminada.

Utilizamos un enfoque similar para las cláusulas case: se elimina la flecha hacia arriba y solo se pliegan los dos puntos dobles.

Funciones con returns únicos

Al igual que hemos hecho para los returns y panics de una línea, también hemos habilitado el plegado para funciones con una única declaración return.

Gestión de errores

Para mejorar la legibilidad del código de gestión de errores, GoLand pliega automáticamente los bloques if de gestión de errores.
En el caso de los bloques if con código de gestión de errores, GoLand pliega también todas las declaraciones individuales, por ejemplo, con llamadas al registro.

Desactivado el plegado de código para el formato string

Hemos desactivado el plegado de código para el formato string para que la sintaxis relevante sea más visible. Además, el nuevo enfoque del plegado de código le permite editar bloques de código sin tener que expandirlos.

Finalización de código

Generación de switch para enums

GoLand ahora puede ayudar a escribir declaraciones switch para enums. Sugiere generar casos para todos los valores en la finalización del código.

Advertencia sobre ramas que faltan cuando los casos contienen constantes declaradas usando iota

La inspección le ayuda a realizar un seguimiento de las expresiones switch para las constantes iota. La inspección le advierte de los casos no cubiertos por switch y le ofrece dos soluciones: añadir las cláusulas que faltan o añadir una cláusula predeterminada.

Run y Build

Perfiles de cobertura del código para programas

Esta función le permite ver exactamente qué código se ha alcanzado en una o varias ejecuciones. También ayuda a detectar código muerto.
Anteriormente, solo funcionaba para ejecuciones de prueba; ahora, también puede ejecutar la función main con Coverage.

Otras funcionalidades relacionadas con Go

Sugerencias de parámetros para expresiones slice

Las expresiones slice pueden resultar confusas, especialmente las que tienen tres índices. GoLand le mostrará ahora sugerencias mientras compila segmentos.

Información del código para funciones personalizadas tipo printf

GoLand añade un gran número de funcionalidades útiles para funciones estándar tipo printf: resaltado de marcadores de posición, detección de errores, plegado de código, etc. Ahora, todas estas funcionalidades están disponibles para funciones similares a printf definidas por el usuario.

Análisis de flujo de datos

GoLand 2023.3 introduce un analizador de flujo de datos refinado basado en el motor utilizado en CLion. Esta funcionalidad detecta en mayor medida problemas de código como una posible desreferencia nil, una gestión de errores incorrecta o inexistente y condiciones siempre true/false.

Tenga en cuenta que esta función se encuentra actualmente en fase de acceso anticipado y está desactivada de forma predeterminada. ¡Puede activarla en Settings | Editor | Inspections | Go | Data Flow Analysis (experimental) y enviarnos sus comentarios!

Compatibilidad con instalaciones locales de Go con asdf

asdf es una herramienta de CLI que le permite gestionar las versiones de tiempo de ejecución de varios lenguajes. En respuesta a los comentarios de la comunidad, hemos decidido incluir la compatibilidad con asdf en esta nueva versión. Con esta versión, GoLand comprobará la versión de Go en el archivo .tool-versions y utilizará la versión de Go adecuada para el proyecto seleccionado.

Compatibilidad y gestión de la cadena de herramientas para Go 1.21

Go 1.21 y sus versiones posteriores permiten evitar errores de compilación de código que requiere una versión todavía más actual de Go. Específicamente, la línea go en go.mod ahora especifica una versión mínima requerida de la cadena de herramientas Go, mientras que en versiones anteriores, era una sugerencia casi sin aplicación.

Ahora, GoLand es totalmente compatible con este flujo y descarga automáticamente la versión del SDK especificada en un archivo go.mod mediante la línea go o toolchain. La versión especificada también se establece de forma automática en los ajustes de Go project.

Mejoras en el rendimiento de la compatibilidad con proveedores

GoLand 2023.3 ha migrado a la moderna API de IntelliJ Platform, por lo que no ejecuta go list -m por segunda vez si el proyecto contiene directorios de proveedores. Una utilización más eficaz de las cachés mejora el rendimiento de los proyectos que contienen muchos módulos Go.

Depurador

Opción de inserción Run to Cursor

Una nueva opción de inserción Run to Cursor que ofrece una forma rápida de navegar hasta una línea específica de código mientras se depura. Una vez suspendido su programa, puede pasar el ratón por encima de la línea de código en la que desee continuar la ejecución. A continuación, puede utilizar la ventana emergente Run to Cursor para ejecutar su código hasta llegar a la línea en la que se encuentra el cursor.

VCS

Compatibilidad con fragmentos de GitLab

Para ampliar la integración con GitLab, hemos añadido la compatibilidad con los fragmentos de GitLab. Ahora puede crear fragmentos públicos o privados directamente dentro del IDE.

Kubernetes

Opción para añadir contextos de clústeres desde un archivo

Ya puede añadir fácilmente contextos kubeconfig desde clústeres ubicados en directorios fuera del sistema requerido. El proyecto incluirá enlaces a los archivos kubeconfig, para que estos clústeres estén disponibles mientras usted trabaja en su proyecto. El contenido de kubeconfig añadido de esta forma no se copiará ni modificará en el sistema (~/.kube/config). Esta funcionalidad resulta especialmente útil cuando se añaden y eliminan con frecuencia clústeres Kubernetes de entornos en la nube o locales. Más información.

Autoinstalación de herramientas Kubernetes

Cuando empiece a utilizar el complemento de Kubernetes, es posible que necesite instalar kubectl o Helm. Si aún no los tiene en su máquina, el IDE le ofrecerá instalarlos automáticamente.

Depuración mejorada con Telepresence

Telepresence le permite depurar los microservicios de una aplicación Kubernetes localmente, como si su estación de trabajo formara parte del clúster. En esta versión, hemos hecho más accesible el flujo de trabajo de Telepresence trasladándolo al menú contextual del clúster. También hemos racionalizado la gestión de la interceptación para una experiencia de depuración más fluida.

Compatibilidad con el bloque import en Terraform

GoLand admite bloques import de nivel superior de la versión 1.5 del lenguaje de configuración Terraform. Los bloques import le permiten poner la infraestructura actual bajo la gestión de Terraform. Cuando se utiliza import dentro de un bloque de código, pasa a formar parte del ciclo estándar de planificación y aplicación, y deja de ser una operación de estado. Terraform realiza la generación automática de código para los recursos importados, lo que le ahorra tiempo a la hora de desarrollar la infraestructura como código.

Otras actualizaciones

Mejoras para TypeScript

GoLand 2023.3 resuelve algunas de las incoherencias encontradas al añadir declaraciones import type. Hemos añadido la opción de configurar el uso de la declaración de tipo de importación de TypeScript o el especificador de tipo al importar un tipo. También hemos mejorado el comportamiento del campo exports de package.json para los archivos TypeScript.

Mejoras en el cliente HTTP

Hemos mejorado la vista Structure para una mejor navegación dentro de archivos .http de gran tamaño. Esta actualización también presenta etiquetas codificadas por colores para los tipos de solicitud y proporciona un listado más claro de su contenido. Además, hemos añadido la compatibilidad con la declaración de variables utilizando @ y la autenticación con contraseña OAuth 2.0 y los tipos de concesión de credenciales de cliente.

Compatibilidad con Cypress y Playwright

GoLand detectará automáticamente sus pruebas de Cypress y Playwright y le permitirá ejecutarlas y depurarlas con un solo clic del ratón. La compatibilidad también incluye la posibilidad de explorar los resultados y detectar problemas navegando por el Test Tree.

Visor diff todo en uno

Se trata de una forma renovada de revisar los cambios en el código. Ahora, en lugar de recorrer cada archivo uno por uno, puede ver todos los archivos modificados a partir de un conjunto de cambios en un único marco por el que puede desplazarse. Más información.