Novedades de GoLand

GoLand 2023.1 incorpora el comprobador de vulnerabilidades, una mejor navegación en código gRPC y refactorización Rename para receptores genéricos.

Ahora puede ejecutar archivos scratch con paquetes de bibliotecas no estándar, utilizar expresiones regulares para crear sus propias inspecciones de búsqueda y sustitución, así como convertir rápidamente literales de cadena sin formato en literales entre comillas dobles y viceversa. La acción de intención Implement interface funciona ahora para interfaces no exportadas.

Aparte de eso, encontrará varias mejoras para nuestra nueva interfaz de usuario, actualizaciones para Docker y Kubernetes, y mejoras para el desarrollo web.

Si prefiere un enfoque de aprendizaje interactivo, le invitamos a seguir el tutorial sobre las novedades de GoLand 2023.1 desde la pantalla de bienvenida.

Comprobador de vulnerabilidades

GoLand resalta un paquete con vulnerabilidades conocidas en go.mod

Resaltar paquetes vulnerables

Ahora GoLand puede resaltar los paquetes con vulnerabilidades conocidas en go.mod. Pase el ratón por encima del código resaltado o pulse Alt+Intro, seleccione Show vulnerability info for … y GoLand le mostrará una lista de vulnerabilidades con enlaces a la descripción detallada. Los datos sobre vulnerabilidades los proporciona la empresa de seguridad informática Checkmarx.

Usar un arreglo rápido para actualizar una dependencia vulnerable a una versión segura

Actualizar paquetes vulnerables a la versión segura

Puede situar el cursor sobre un paquete resaltado en go.mod, pulsar Alt+Intro y elegir el arreglo rápido Change package-name version to v0.x.x para actualizar una dependencia a una versión que no tenga vulnerabilidades.

GoLand resalta las llamadas a métodos desde un paquete con vulnerabilidades conocidas

Resaltar llamadas a métodos desde paquetes vulnerables

GoLand también resalta las llamadas a métodos desde paquetes con vulnerabilidades conocidas directamente en su editor. Puede pasar el ratón por el código resaltado y ver una ventana emergente con información sobre la vulnerabilidad y un enlace a la descripción detallada.

La nueva ventana de herramientas Dependency Checker

Ventana de herramientas Dependency Checker

Puede acceder a ella mediante Code | Analyze Code | Show Vulnerable Dependencies.

Navegación gRPC

Usar iconos del medianil para navegar entre los servicios de archivos .proto y sus implementaciones en código Go

El cliente HTTP de GoLand admite actualmente ejecutar solicitudes gRPC. También puede ejecutar solicitudes gRPC desde la ventana de herramientas Endpoints.

Esta versión ofrece otra valiosa contribución a nuestro conjunto de funciones gRPC. Ahora puede navegar y acceder a las declaraciones de mensajes, servicios y métodos desde el código Go y sus implementaciones Go desde los archivos .proto.

Para ello, haga clic en el icono específico situado junto a la declaración de un mensaje, servicio, método o su implementación.

Archivos temporales

Ejecutar código con dependencias de bibliotecas no estándar en un archivo temporal

Ejecutar archivos temporales con paquetes de bibliotecas no estándar

Ahora puede ejecutar archivos temporales con dependencias Go de bibliotecas no estándar. Cuando copia su código desde un archivo de proyecto a un archivo temporal y pulsa el botón Run, GoLand crea una configuración Run con el indicador -overlay. Este indicador se utiliza con un archivo JSON que asigna las rutas de los archivos a go.mod y go.sum en su proyecto original.

Genéricos

Usar la refactorización Rename para cambiar receptores genéricos

Refactorización Rename para receptores genéricos

Al cambiar el nombre de un parámetro de tipo en un struct, la refactorización Rename sugiere ahora cambiar los receptores en consecuencia.

Hemos solucionado varias incidencias que afectaban a la navegación entre interfaces, implementaciones y especificaciones de métodos en código genérico. También hemos implementado varias correcciones adicionales para los falsos positivos y falsos negativos relacionados con los genéricos.

Intenciones y arreglos rápidos

Utilizar una acción de intención para convertir literales de cadena

Conversión entre distintos tipos de literales de cadena

Ahora, existe una acción de intención que le permite convertir rápidamente literales de cadena sin procesar (cadenas que están rodeadas de tildes graves) en otras entre comillas dobles y viceversa.

Utilizar un nuevo arreglo rápido para convertir un entero en una cadena

Conversión simplificada de enteros a cadenas

Antes, cuando necesitaba convertir un número entero en una cadena, GoLand le sugería primero el arreglo rápido Convert to ‘string’. Para completar la conversión correctamente, necesitaría otro arreglo rápido: Convert integer to string using strconv.Itoa() call.

Hemos simplificado este flujo de trabajo, y ahora GoLand sugiere directamente el arreglo rápido de la llamada Convert integer to string using strconv.Itoa() call.

Utilizar la acción de intención Implement interface con interfaces no exportadas

Posibilidad de implementar interfaces no exportadas

La acción de intención Implement interface funciona ahora para interfaces no exportadas.

Usar un arreglo rápido para eliminar un espacio inicial de una directiva go

Eliminar los espacios iniciales de directivas Go

GoLand dispone ahora de una inspección y un arreglo rápido que le ayudarán a detectar y eliminar espacios iniciales en directivas Go como //go:embed.

Uso de la función de vista previa para las acciones de intención

Intention Preview: más intenciones y arreglos rápidos compatibles

En la versión anterior habilitamos la funcionalidad Intention Preview de forma predeterminada.

Esta funcionalidad le permite ver al instante cómo se alterará su código una vez que aplique las sugerencias del IDE.

Ahora puede previsualizar una gama más amplia de acciones de intención y arreglos rápidos: Introduce local variable, Create variable/global variable, Create constant/global constant, Create field, Merge declaration up, Delete all unused parameters, Create function, Create method, Fill all fields.

Mejoras de rendimiento

Scanning files to index en modo inteligente

Hemos mejorado la experiencia de arranque del IDE realizando el proceso de Scanning files to index… en modo inteligente, lo que hace que toda la gama de funciones del IDE esté disponible mucho antes en el proceso de arranque. Al abrir un proyecto, GoLand utiliza las cachés existentes de su sesión anterior con el proyecto y busca simultáneamente los archivos que indexar. Si no se encuentra ningún cambio durante el análisis, el IDE estará totalmente listo para comenzar a trabajar con él, lo cual evita los retrasos que antes provocaba la indexación al arrancar.

Sugerencia para reconfigurar los ajustes de Windows Defender

Se activa una nueva notificación cuando se ejecuta Windows Defender con la protección en tiempo real. Dado que estas comprobaciones antivirus pueden disminuir significativamente la velocidad del IDE, GoLand sugiere añadir carpetas específicas a la lista de exclusiones de Defender. La notificación ofrece opciones para reconfigurar estos ajustes automáticamente o consultar primero las instrucciones de configuración de Defender y hacerlo manualmente.

Editor

El número de implementaciones de la interfaz se muestra en el editor

Code Vision: implementación de interfaces

Hemos actualizado la funcionalidad Code Vision. GoLand muestra ahora el número de implementaciones de una interfaz y las especificaciones de sus métodos.

En la versión anterior, incorporamos los usos mostrados cerca de todas las funciones y tipos que indicaban con qué frecuencia se hace referencia a la función o tipo en el proyecto actual. También se muestran los autores del código si la integración del control de versiones está activada.

Crear una inspección personalizada basada en regexp

Inspecciones personalizadas basadas en RegExp

Ya puede utilizar expresiones regulares para crear sus propias inspecciones de búsqueda y reemplazo. Estas inspecciones pueden ser especialmente útiles para resaltar problemas basados en el estilo o el formato.

Vaya a Settings | Editor | Inspections y pulse el icono +. Seleccione Add RegExp Search Inspection en la lista y se le dirigirá a un cuadro de diálogo en el que podrá configurar su nueva inspección. Seleccione el lenguaje que desee, utilice los consejos del panel de la izquierda para crear una RegExp y designe la sustitución necesaria. También puede especificar cómo desea que el IDE las resalte en el proyecto.

Se muestra un enlace mejorado a Go Playground en GoLand

Go Playground: parámetro de versión en la URL compartida

En la versión 2022.3, integramos la funcionalidad Go Playground en GoLand.

En esta versión, hemos mejorado esa funcionalidad. En primer lugar, las URL compartidas incluyen ahora el parámetro de versión si elige la versión dev o las anteriores.

También hemos añadido una opción para desactivar la ventana emergente que le pide permiso para compartir código en el Playground. Puede desactivarla en Settings | Go | Ask before sharing in Go Playground.

Un ajuste que permite controlar la ubicación del contenido pegado

Opción para especificar la ubicación del contenido pegado

Hemos perfeccionado la experiencia del usuario al pegar una línea copiada o cortada sin selección. Ahora hay un ajuste específico que le permite controlar la ubicación del contenido pegado.

En Settings | Advanced Settings, busque la sección Editor y seleccione el comportamiento deseado para la acción Paste en la lista desplegable.

Los espacios en blanco se muestran como puntos en el editor cuando se selecciona el código

Opción para mostrar los espacios en blanco solo en el código seleccionado

Hay una nueva casilla de verificación Selection en Settings | Editor | General | Appearance | Show Whitespace que le permite configurar este ajuste para que el IDE muestre los espacios en blanco como pequeños puntos solo cuando seleccione código.

La ortografía de los hashes y valores especiales no se subraya en el editor

Sin revisión ortográfica para hashes y valores especiales

Hemos actualizado la inspección Typo para que ya no compruebe la ortografía de los hashes y los valores especiales, y no los señale como mal escritos. Esta actualización abarca los siguientes valores:

  • Valores hexadecimales Md5, Sha1 y Sha256.
  • Valores de integridad codificados en base64 Sha384 y Sha512 con el prefijo shaNNN-.
  • Tokens JWT.
El nuevo grupo Call se muestra en la ventana de herramientas Find Usages

El nuevo grupo Call en Find Usages

Hemos introducido un nuevo grupo Find Usages para las llamadas a funciones: el grupo Call.

También hemos implementado algunas correcciones a cómo se representa el uso de elementos de código genérico en la ventana Find Usages.

Experiencia de usuario

Usar la función Zoom de GoLand para aumentar el tamaño de todos los elementos de la interfaz de usuario

Zoom completo en el IDE

Ahora es posible usar el zoom en GoLand para aumentar o disminuir el tamaño de todos los elementos de la interfaz de usuario a la vez. En el menú principal, seleccione View | Appearance | Switch Zoom IDE y ajuste la escala del IDE.

El ajuste Remember size for each tool window se muestra en la sección Appearance

Nuevo ajuste Remember size for each tool window

Hemos introducido una nueva opción de diseño que le permite unificar la anchura de las ventanas de herramientas laterales o conservar la posibilidad de ajustar sus tamaños libremente a medida que personaliza su diseño. La nueva casilla de verificación Remember size for each tool window está disponible en Settings | Appearance | Appearance & Behavior | Tool Windows.

En la nueva interfaz de usuario, el ajuste está desactivado de forma predeterminada, lo que significa que las ventanas de herramientas se muestran con una anchura unificada y sus tamaños permanecen constantes cuando se cambia entre ellas. En la interfaz de usuario antigua, la opción está activada, por lo que las ventanas de herramientas tienen anchuras diferentes, aunque puede optar por alinearlas en cualquier momento simplemente desactivando el ajuste.

Organizar las ventanas de herramientas y guardar los diseños

Guardar varios diseños de las ventanas de herramientas

Ahora puede guardar y gestionar varios diseños de ventanas de herramientas y cambiar entre ellos según sus necesidades.

Para guardar un nuevo diseño, disponga las ventanas de herramientas como desee y vaya a Window | Layouts | Save Current Layout as New. Una vez ajustada la disposición, puede actualizar el diseño actual mediante la opción Save Changes in Current Layout o guardar estos cambios para otro diseño personalizado. Para activar un diseño guardado, búsquelo en la lista de Window | Layouts, pase el ratón sobre su nombre y haga clic en Apply.

Estos ajustes le permiten predefinir el comportamiento de Actions on Save

Ajuste para configurar Actions on Save para nuevos proyectos

Esta versión añade una opción para predefinir el comportamiento de Actions on Save para nuevos proyectos.

Para ello, vaya a File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save y seleccione qué acciones desea que se activen al guardar los cambios en sus proyectos.

La nueva interfaz de usuario

El año pasado incorporamos una nueva interfaz de usuario más minimalista para GoLand y otros IDE de JetBrains. Hemos seguido perfeccionando la nueva interfaz de usuario a partir de sus comentarios. Siga leyendo para conocer los principales cambios en la interfaz de usuario que se han incorporado en esta versión. Puede probar la nueva interfaz de usuario marcando la casilla de verificación New UI en Settings | Appearance & Behavior.

Visite esta página para obtener más información sobre la nueva interfaz de usuario.

Activar el modo Compact

Modo Compact

Para mejorar la experiencia del usuario con nuestra nueva interfaz de usuario en pantallas más pequeñas, hemos introducido el modo Compact, que ofrece un aspecto más consolidado al reducir la altura de las barras de herramientas y de los encabezados de las ventanas de herramientas, y el tamaño de los espacios, los rellenos, los iconos y los botones.

Para activar el modo Compact, vaya al menú View y seleccione Appearance | Compact Mode.

Además, la barra de herramientas superior ya no está visible en los modos Zen y Distraction Free.

Las ventanas de herramientas están divididas verticalmente

División vertical de las ventanas de herramientas

Para la nueva interfaz de usuario, hemos introducido la opción de dividir el área de la ventana de herramientas para que la organice como prefiera.

Para añadir una ventana de herramientas a esta área y colocarla en la parte inferior, arrastre el icono por la barra lateral y suéltelo bajo el separador. Como alternativa, puede hacer clic con el botón derecho del ratón en un icono para llamar al menú contextual y asignar la nueva posición de una ventana de herramientas mediante la acción Move to.

Uso de pestañas de proyecto para cambiar entre proyectos en GoLand

Pestañas de proyecto para usuarios de macOS

Si tiene varios proyectos abiertos, ahora puede cambiar fácilmente entre ellos con las pestañas de proyecto que aparecen debajo de la barra de herramientas principal. Para ello, vaya a Windows | Merge All Project Windows.

Las pestañas se muestran en el menú desplegable

Vuelve Show Hidden Tabs

Hemos añadido la funcionalidad Show Hidden Tabs en la nueva interfaz de usuario. Ahora dispone de un menú desplegable que muestra la lista completa de pestañas abiertas, ya que antes podían estar ocultas.

Un panel muestra los nombres de los archivos

Panel de nombre de archivo visible cuando las pestañas están ocultas

Hemos perfeccionado la experiencia del usuario con la nueva interfaz añadiendo un panel que muestra el nombre del archivo abierto en ese momento cuando las pestañas del editor están ocultas.

El widget Run rediseñado se muestra en el editor

Widget Run rediseñado

Hemos rediseñado el widget Run situado en la parte superior de la ventana del IDE. Con los iconos ahora en verde (en lugar de que la zona a su alrededor se destaque en color), el aspecto es más sutil y más agradable a la vista.

Docker

Utilizar la finalización para un nombre de contenedor en el código de testcontainers

Finalización para testcontainers

En este build, hemos añadido la finalización de los nombres de los contenedores cuando se utiliza el paquete testcontainers-go.

Después de escribir el nombre del contenedor, puede utilizar la acción Pull Docker image que se implementó anteriormente.

Los mensajes de registro de diferentes contenedores se muestran en la misma ventana

Registro fusionado desde todos los contenedores Docker Compose

La pestaña Dashboard del nodo Docker Compose reúne ahora los registros de cada contenedor Docker Compose y los muestra todos en un único lugar, actualizados en tiempo real.

Los ajustes para la conexión a Azure Registry se muestran en el IDE

Compatibilidad con Azure Container Registry

Ahora puede conectarse fácilmente a Azure Container Registry. Vaya a Settings | Build, Execution, Deployment | Docker | Docker Registry y configúrelo seleccionando la opción Docker V2 en el campo de entrada Registry.

Se muestra la configuración para aplicar la opción de montaje :z a los volúmenes de unión en SELinux

Nuevo ajuste para aplicar la opción de montaje :z a los volúmenes enlazados en SELinux

Ahora puede añadir indicadores de configuración :z a los montajes enlazados de Docker, lo que le permite conectar volúmenes a contenedores Docker en estaciones de trabajo SELinux. Para activar esta funcionalidad, vaya a Settings | Advanced Settings | Docker.

Kubernetes

Crear un nuevo recurso Kubernetes

Plantillas de archivos en la ventana emergente New Kubernetes Resource

Para facilitar la creación de nuevos archivos Kubernetes, hemos añadido una nueva acción Kubernetes Resource al menú New que aparece al hacer clic con el botón derecho del ratón en la ventana de herramientas Project.

Una vez que seleccione la opción Kubernetes Resource, verá una ventana emergente que presenta una lista de los tipos de recursos más populares, como Pod, Deployment, ConfigMap, etc.

Añadir un nuevo Kubernetes Secret

Acción para crear nuevos Kubernetes Secrets

Hemos introducido un nuevo cuadro de diálogo para crear Kubernetes Secrets.

Para definir un nuevo Secret, puede introducir una clave y un valor manualmente. Alternativamente, puede especificar un archivo cuyo contenido se utilizará para el valor del Secret resultante.

Uso de marcadores de cambio codificados por colores

Marcadores de cambio codificados por colores para los recursos cargados desde un clúster

Cuando utilice la acción View YAML para los recursos desde un clúster y realice algún cambio en el archivo abierto, el IDE resaltará ahora todas sus ediciones con marcas codificadas por colores en el medianil. De esta forma, puede asegurarse de que los cambios se han realizado en las partes necesarias del recurso antes de volver a aplicarlos al clúster.

Utilizar la función Compare with Cluster

Además, al utilizar el icono Compare with Cluster puede abrir una vista diff completa que obtendrá la versión actual del recurso desde el clúster y la comparará con la versión local.

Abrir un archivo kubeconfig en el editor desde la vista Services

Mejora de la experiencia del usuario con archivos kubeconfig

Ahora puede acceder fácilmente a un archivo kubeconfig en la vista Services y abrirlo en el editor. Si modifica un archivo kubeconfig fuera de GoLand, el IDE lo detectará y actualizará automáticamente su configuración en la ventana de herramientas Services. Además, el IDE admite ahora tanto el resaltado como la finalización de código para los archivos kubeconfig.

Asignación de un acceso directo a la acción Forward Ports

Posibilidad de asignar atajos personalizados para acciones en la vista Services

Ahora puede asignar accesos directos a la mayoría de las acciones de Kubernetes en la vista Services, como Forward Ports, Delete Resource y Describe Resource, entre otras. Para configurar sus accesos directos personalizados, vaya a Settings | Keymap | Plugins | Kubernetes.

Markdown

Utilizar una acción de intención para reformatear una tabla en Markdown

Reformatear una tabla

Una nueva acción de intención le permite corregir el formato de las tablas en los archivos Markdown. Puede acceder al arreglo rápido a través del acceso directo Alt+Intro o pulsando el icono de la bombilla amarilla y seleccionando Reformat table en la lista que aparece.

Uso de la acción del editor Fill Paragraph para dividir una línea larga en varias líneas

Fill Paragraph

La acción del editor Fill Paragraph ahora es compatible con archivos Markdown, lo que le permite dividir textos largos en varias líneas de longitud uniforme. Para ello, coloque el cursor dentro del párrafo que desea editar y active la acción desde el menú Edit, o busque el comando Fill Paragraph mediante Search everywhere (Doble Mayús) y ejecútelo.

Una página con la configuración de Markdown Smart Keys

Nueva página de configuración Smart Keys

Hemos añadido una página específica para configurar y editar sus preferencias de Markdown en Settings | Editor | General | Smart Keys. Esta página debería facilitarle la gestión de sus preferencias, ya que ofrece casillas de verificación independientes para las distintas funciones del editor, en sustitución de la casilla única que antes se almacenaba en Settings | Languages & Frameworks.

Control de versiones

Navegar entre ramas en GoLand

Mejora de la ventana emergente Branches

Hemos mejorado la usabilidad de la ventana emergente Branches. Por ejemplo, navegar entre ramas es ahora más fácil, ya que están agrupadas y almacenadas en listas desplegables.

Uso de la finalización en la ventana emergente Create New Branch

Finalización en la ventana emergente Create New Branch

Hemos implementado la finalización en la ventana emergente Create New Branch. Pulse Ctrl+Espacio, y el IDE le sugerirá los prefijos pertinentes basándose en los nombres de las ramas locales existentes.

Los colores de los objetos de la ventana Structure cambian cuando se añade código nuevo

Sugerencias de color sobre el estado del VCS en la ventana de herramientas Structure

Para que el seguimiento de los cambios en los archivos resulte más cómodo, hemos añadido sugerencias de color a la ventana de herramientas Structure. Los nombres de los objetos modificados pasarán a ser azules y los nombres de los objetos recién añadidos aparecerán en la ventana de herramientas resaltados en verde.

La ventana Notifications muestra el resultado de una comprobación previa a la confirmación

Comprobaciones de confirmación en segundo plano

Hemos reelaborado el comportamiento de las comprobaciones de confirmación de Git y Mercurial con el fin de acelerar el proceso general de confirmación. Las comprobaciones se realizan ahora en segundo plano después de confirmar pero antes de enviar.

Ventana Pull request en GoLand

Flujo de trabajo de revisión de código mejorado para GitHub

Hemos rediseñado la ventana de herramientas Pull Request. Ahora cuenta con una pestaña dedicada para cada solicitud de incorporación de cambios que abra. La pestaña muestra instantáneamente la lista de archivos modificados, pero ahora proporciona menos información que antes. Esto le permite centrarse mejor en su tarea actual. Ahora también hay un botón específico para ejecutar fácilmente la acción que se considere más importante dado el estado actual de la solicitud de incorporación de cambios.

Desarrollo web

La página de complementos con Astro

Compatibilidad con Astro

Ha llegado a GoLand la compatibilidad con Astro. Puede obtenerlo a través de nuestro nuevo complemento Astro, que puede instalarse desde Settings | Plugins. El complemento ofrece funcionalidades básicas, como resaltado de sintaxis, finalización de código con importaciones automáticas, refactorizaciones, navegación, formateo correcto y mucho más.

Conversión de cadenas en literales de plantilla

Conversión automática de cadenas en literales de plantilla

Ahora GoLand transformará de forma automática sus cadenas entre comillas simples o dobles en literales de plantilla siempre que escriba ${. Esto funciona tanto para cadenas sin formato como para propiedades JSX.

Compatibilidad con TypeScript en expresiones de plantillas Vue

Hemos añadido la compatibilidad con TypeScript en las plantillas Vue cuando se establece el atributo lang en una etiqueta script a ts. Anteriormente, JavaScript se utilizaba independientemente del atributo lang de la etiqueta script.

Nota: Para conocer todas las mejoras de desarrollo web de la versión 2023.1, consulte la página de novedades de WebStorm.