Novedades de GoLand

GoLand 2021.3 cuenta con compatibilidad nativa para proyectos Go en WSL, la refactorización Inline Function y compatibilidad con desarrollo remoto en modo Beta.

A partir de esta versión, gofmt al guardar está habilitado de forma predeterminada. GoLand 2021.3 incorpora algunas mejoras para el depurador, como Delve para ARM64, la opción Show Types y más.

Presenta dos nuevos postfix para convertir cadenas en números, una nueva plantilla para pruebas de tablas con aserciones testify, y una mejor finalización de valores en etiquetas struct.

Como es habitual, la nueva versión de GoLand aporta mejoras en el desarrollo web y una serie de nuevas funciones para trabajar con bases de datos.

Si prefiere un enfoque de aprendizaje interactivo, siga el tutorial sobre las novedades de GoLand 2021.3 desde la pantalla de bienvenida.

Compatibilidad con WSL

Creación de un proyecto en WSL y elección de un SDK en WSL

Hemos incorporado la posibilidad de abrir un proyecto en WSL y especificar un SDK ubicado allí.

Si crea un nuevo proyecto (o abre uno existente) en WSL, GoLand le dirá que para este proyecto tiene que usar un SDK de Go en WSL. Puede descargar un SDK de Go o seleccionar uno existente en el subdirectorio \\wsl$.

Formateador

El código se formatea cuando se guarda el archivo

gofmt al guardar

La opción Reformat code, que permite ejecutar tanto gofmt como el propio formateador de GoLand al guardar, está ahora habilitada de forma predeterminada.

La ventana emergente muestra una notificación sobre el formato del código al guardar

Este cambio puede tomar a algunos usuarios por sorpresa, por lo que hemos añadido una notificación que se mostrará una vez en cada proyecto. Puede desactivarla haciendo clic en Don’t show again.

Puede hacer clic en Edit actions on save y el IDE abrirá Settings | Tools | Actions on save, desde donde puede configurar sus ajustes.

Refactorizaciones

Inline Function e Inline Method

Ya está disponible la refactorización Inline para funciones y métodos. Para probarla, sitúe el signo de intercalación en una función, método o invocación y pulse Ctrl + Alt + N.

Al invocar la refactorización Inline, se abre una ventana emergente con varias opciones. Desde esta ventana emergente, también puede abrir la vista previa de refactorización, que le ayuda a encontrar todas las invocaciones de un método o función.

Finalización de código

La finalización de código sugiere diferentes opciones para los valores en las etiquetas struct

Mejor gestión de los estilos de valores en las etiquetas struct

Hemos mejorado la forma en que se gestionan los diferentes tipos de palabras compuestas, p. ej. camelCase, snake_case, etc. cuando se añaden etiquetas en los campos struct.

Cuando rellena una etiqueta, GoLand le sugiere una lista de varias opciones. Después de elegir una, el IDE recuerda su elección y le sugerirá el mismo estilo en primera posición de la lista para otros campos en esta struct.

Finalización Postfix

Uso de postfix para convertir cadenas en números

Nuevos postfix para la conversión de cadenas a números

Tenemos un par de nuevos postfix para convertir cadenas en números. Simplemente escriba un número entre comillas dobles, luego escriba un punto y GoLand le sugerirá dos opciones para analizar el número: parseInt y parseFloat.

Mostrar usos

Visualización del archivo fuente cuando se utiliza la opción Show Usages

Vista previa de la fuente

Se ha mejorado la función Show Usages: ahora puede activar la vista previa del código fuente de un uso encontrado haciendo clic en el icono cuadrado.

Destinos de ejecución

Configuración de carpetas en un destino remoto

Configure carpetas para fuentes y ejecutables

Ahora puede poner nombres significativos a las carpetas de la máquina remota donde se almacenan las fuentes y los ejecutables de su proyecto. Para configurar las carpetas, vaya a Run | Manage targets | Additional Settings.

Configuración de destino de ejecución predeterminado en todo el proyecto

Destino de ejecución predeterminado en todo el proyecto

Ahora es posible establecer un destino de ejecución predeterminado para todo el proyecto. Vaya a Run | Manage targets. Se abrirá una ventana con la opción Project default target. Si elige un destino concreto para el proyecto, todas las nuevas configuraciones se crearán con este destino.

Configuración del proxy en la ventana de configuración de SSH

Compatibilidad con proxy para conexiones SSH

Hemos añadido la nueva sección HTTP/SOCKS Proxy a SSH Configurations para que pueda especificar un servidor proxy. Encontrará esta sección en Settings | Tools | SSH Configurations. Alternativamente, desde el proyecto abierto, vaya a Run | Manage Targets | ...

Depurador

Una nueva representación de las interfaces nil en el depurador

Mejor representación de las interfaces nil

Las interfaces en Go tienen dos componentes, un tipo y un valor de ese tipo. Para que una interfaz sea nil, ambos componentes deben ser nil.

Si tiene una interfaz con un valor que contiene un puntero nil a un int, esa interfaz no será igual a nil, porque el tipo interno no es nil (es *int). Esto puede ser confuso.

Para detectar estos casos, hemos cambiado la forma en que se representan las interfaces en la pestaña Variables de la ventana de herramientas Debug. Por ejemplo, si tienes una interfaz con tipo interno *int, y valor nil, se mostrará así {interface{} | *int} *int(nil).

La diferencia entre cómo se representan los nombres de los paquetes en 2021.2 y 2021.3

Nombres cortos de paquetes en la pestaña Variables

GoLand ya no muestra el nombre completo del paquete en la pestaña Variables del depurador. Ahora solo verá la última parte del nombre completo.

Demostración del funcionamiento de Show Types

Ocultar/mostrar tipos de objetos

Si los tipos de objetos ocupan demasiado espacio en la pestaña Variables, puede hacer clic con el botón derecho del ratón en el área de la pestaña y desactivar la opción Show Types en el menú que aparece. Puede volver a activarla seleccionándola de nuevo en el mismo menú.

El ejecutable de Delve creado para ARM64 ya está disponible en GoLand

Delve para Linux ARM64

A partir de esta versión, GoLand incluye Delve creado para la arquitectura ARM64, y la depuración en Linux ARM ahora está lista para usar.

También hemos mejorado los mensajes de error cuando GoLand no incluye Delve para arquitecturas específicas. El IDE ahora te dice explícitamente qué está mal.

Pruebas

Generación de código con aserciones <i>testify</i>

Una plantilla para aserciones testify

Hemos añadido una nueva plantilla para las pruebas de tabla con aserciones testify. Si ya ha utilizado assert en su paquete, GoLand generará un código con aserciones cuando pulse Alt + Ins y elija la opción necesaria.

Nuevos arreglos rápidos

Utilización de un arreglo rápido para formatear una cadena correctamente

Arreglo rápido del formato de las cadenas de errores

GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Pulse Alt + Intro y GoLand le sugerirá que arregle el formato de la cadena.

Uso de un arreglo rápido para exportar el tipo

Arreglo rápido Export type

Si ha escrito una función exportada que devuelve un tipo no exportado, GoLand le sugerirá un arreglo rápido para exportar ese tipo.

Otros cambios relacionados con Go

Una ventana emergente muestra información sobre context.TODO()

inspeccióncontext.TODO()

Hemos añadido una inspección que destaca los usos de context.TODO(). Puede habilitarla en Settings | Editor | Inspections. La inspección servirá como recordatorio para cambiar context.TODO() si no estaba claro qué Context se debería haber utilizado en el momento de la escritura.

Se añade el comentario TODO cuando se utiliza la acción Implement Methods

Comentario //TODO implement me

Hemos añadido el comentario //TODO implement me para las plantillas generadas cuando utiliza la acción Implement Methods. Estos comentarios especiales se resaltan en el editor, se indexan y se enumeran en la ventana de herramientas TODO, lo que permite que sirvan como recordatorio de los métodos no implementados.

Desarrollo remoto

Sección de desarrollo remoto en la pantalla de bienvenida de GoLand

GoLand ahora es compatible con una versión Beta para flujos de trabajo de desarrollo remoto.

Puede configurar los flujos de trabajo de desarrollo remoto directamente desde la pantalla de bienvenida de GoLand. Como alternativa, puede utilizar JetBrains Gateway, nuestra nueva aplicación que sirve como punto de entrada a todos sus backends remotos.

Encontrará instrucciones sobre cómo iniciarse en el desarrollo remoto en esta página.

Cliente HTTP

Añadir una petición grpc en un archivo http

Compatibilidad con solicitudes gRPC

El cliente HTTP de GoLand ahora admite solicitudes gRPC y ofrece finalización de estas. Inicie sus solicitudes con la palabra clave GRPC y el cliente HTTP las tratará como solicitudes gRPC.

Generación de una solicitud gRPC haciendo clic en un icono de medianil en un archivo proto

Puede generar automáticamente una solicitud gRPC en el cliente HTTP haciendo clic en los iconos del medianil en sus archivos .proto.

Ejecutar una llamada a procedimiento remoto con streaming de servidor

Actualmente, el cliente HTTP puede ejecutar RPC unarios y de streaming de servidor. Como en las solicitudes HTTP ordinarias, el cuerpo de la solicitud y las respuestas son archivos JSON simples.

El cliente HTTP disfruta de otras varias mejoras, sobre las cuales puede leer aquí.

Mejoras de VCS

Ejecutar la acción Checkout and Rebase onto Current

Checkout and Rebase onto Current para ramas remotas

La acción Checkout and Rebase onto Current le permite extraer la rama seleccionada y volver a situarla sobre una rama que está actualmente extraída. Ahora está disponible para ramas remotas.

Ejecutar la acción Push All up to Here

Nueva acción Push All up to Here

A veces, puede que tenga varias confirmaciones listas para su envío mientras que otras todavía están en curso. En estos casos, es posible que desee hacer push solo con las que le inspiren confianza.

Ahora puede hacer push de las confirmaciones hasta la que haya seleccionado en la pestaña Log de la ventana de herramientas Git. Para ello, elija la confirmación en la que desea detenerse, haga clic con el botón derecho del ratón para llamar al menú contextual y seleccione la acción Push All up to Here.

Configuración del control de versiones

Configuración de VCS reorganizada

Hemos hecho que las configuraciones del VCS sean más visuales y estructuradas. El nodo Version Control en Settings ahora enumera todos los ajustes disponibles.

Mejoras en la interfaz de usuario

Barra Evaluate expression en la pestaña Variables

Evaluate expression en la pestaña Variables

La funciónEvaluate expression está ahora disponible en la pestaña Variables de la ventana de herramientas Debug.

División de pestañas en la ventana de herramientas Run

Divida las pestañas de la ventana de herramientas Run

Ahora puede dividir la ventana de herramientas Run arrastrando y soltando las pestañas al área resaltada. Para eliminar la división de la ventana, haga clic con el botón derecho en el panel superior y seleccione Unsplit en el menú contextual.

Uso de la ventana Bookmarks

Nueva ventana Bookmarks

Tenemos una nueva ventana de herramientas Bookmarks. A partir de ahora, todos los archivos y carpetas que marque como importantes con el acceso directo F11 se encontrarán en esta ventana.

Perfilador

Comparación de dos instantáneas y visualización de la diferencia en el gráfico de llamas

Visualizar las diferencias entre instantáneas

Puede visualizar la diferencia entre las dos instantáneas en el gráfico de llamas. Pulse dos veces Mayús y escriba «Open Profiler Snapshots» en la barra de búsqueda. Abra una instantánea de la lista, repita las mismas acciones y abra otra.

A continuación, haga clic en el botón Compare With Baseline en una pestaña de una de las instantáneas. En el menú, seleccione la instantánea con la que desea comparar. Se abrirá una pestaña Diff por separado con los resultados de la comparación.

Terminal

Demostración de la compatibilidad con el color de 24 bits en el terminal integrado en Windows

ConPTY

GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.

Con ConPTY, los colores de 24 bits son compatibles con el terminal integrado.

Escribir en el terminal de GoLand con compatibilidad con Typeahead mientras se trabaja en una máquina remota

Typeahead

Anteriormente, cuando se escribían caracteres en el terminal de GoLand mientras se trabajaba en una máquina remota, el IDE no podía mostrar los caracteres tan rápido como lo haría en una máquina local debido a la latencia.

Esto ya no es un problema porque hemos introducido la compatibilidad con typeahead. Nuestro terminal integrado predice las modificaciones de texto y las muestra instantáneamente en gris claro.

Desarrollo web

Descargar módulos remotos ES6 utilizando un arreglo rápido en la ruta de importación en los archivos ES6

Compatibilidad con URL en las declaraciones import

Puede descargar módulos remotos ES6 utilizando un arreglo rápido en la ruta de importación en los archivos ES6. El módulo se descargará con todas sus dependencias. Para probarlo, coloque el signo de intercalación en la ruta de importación, pulse Alt + Intro y seleccione Download module.

Escribir código en un archivo html y aceptar la sugerencia de finalización

Mejor finalización de código para HTML

Hemos mejorado el funcionamiento de la finalización del código en los archivos HTML. Cada vez que escriba un nombre de etiqueta o una abreviatura en el editor, o invoque la finalización de código, GoLand le mostrará sugerencias relevantes de inmediato.

Anteriormente, solo se mostraban si se escribía el signo < primero. También se ha mejorado la finalización del código para las referencias a entidades de carácter.

Actualización de los paquetes npm con el arreglo rápido «Update 'package name' to the latest version»

Nueva inspección para actualizar las dependencias

Puede actualizar sus paquetes npm a la última versión directamente desde el editor. Abra su archivo package.json, sitúe el signo de intercalación sobre la versión del paquete que desee actualizar, pulse Alt + Intro y seleccione Update … to the latest version.

Situar elementos en un archivo JavaScript en líneas separadas, y de vuelta a una línea

Situar elementos en varias líneas

GoLand se ha actualizado con una acción de intención para proyectos de JavaScript que le permite situar rápidamente elementos separados por comas en líneas separadas y, si es necesario, de nuevo en una línea.

Mejoras de las bases de datos

Vista agregada para un rango de celdas en una base de datos

Aggregate view para un rango de celdas

Hemos añadido la posibilidad de mostrar la vista agregada de un rango de celdas. Seleccione el rango de celdas para el que desea la vista, haga clic con el botón derecho y seleccione Show Aggregate View. En la barra de estado se muestra un valor agregado, y puede elegir qué valor quiere que sea.

Dividir la pestaña del editor

Pestañas de editor independientes

Si divide el editor y abre la misma tabla, los editores de datos serán completamente independientes. Puede establecer diferentes opciones de filtrado y ordenación para ellos.

Nueva inspección de expresiones booleanas en cláusulas WHERE y HAVING

Comprobación de expresiones booleanas

Tenemos una nueva inspección para expresiones booleanas en las cláusulas WHERE y HAVING.

Si la expresión no parece ser explícitamente booleana, la resaltamos en amarillo y le advertimos antes de ejecutar dicha consulta.

Funciona con ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite y Vertica. En todas las demás bases de datos, se resaltará como un error.

Navegación desde las celdas seleccionadas a los datos relacionados

Navegación con clave externa utilizando varios valores

En el editor de datos, puede seleccionar varios valores y navegar hasta los datos correspondientes.

Se detecta un tipo de columna en un archivo CSV y se muestra en una ventana emergente

Tipos de columna automáticos en archivos CSV

GoLand detecta los tipos de columna en los archivos CSV, y ahora puede ordenar los datos por un valor numérico. Antes, los datos de las columnas se trataban como texto y la ordenación no funcionaba como se esperaba.

Se muestran sugerencias de finalización de código para un operador de filtro de MongoDB

MongoDB: finalización para filter {} y sort {}

La finalización del código ahora funciona al filtrar datos en las colecciones de MongoDB.

Se muestran diferentes fuentes para el editor y el resto del IDE

Fuente personalizada para el editor de datos

Puede configurar las fuentes para el editor de datos por separado del resto del IDE. Para escoger la fuente, vaya a Settings | Tools | Database | Data views | Use custom font.

Actualizaciones de accesibilidad

Hemos solucionado algunos problemas de accesibilidad para que el trabajo con el lector de pantalla sea más cómodo. Hemos desactivado la ventana emergente del widget de herramientas y la ventana emergente de documentación rápida que solía aparecer al pasar el ratón por encima.

Se ha mejorado la compatibilidad con la accesibilidad en macOS. Hemos resuelto varios problemas de enfoque de la voz en off y hemos hecho posible la creación de proyectos con un lector de pantalla. Para minimizar las distracciones mientras codifica, hemos disminuido el número de ayudas emergentes que reproducen sonidos.