Novedades de GoLand

GoLand 2021.1 le permite crear y ejecutar su programa de forma remota mediante Docker, SSH y WSL 2, utilizar las nuevas funcionalidades admitidas de Go 1.16, incluido //go:embed, generar código rápidamente desde JSON y gestionar los errores fácilmente con los nuevos arreglos rápidos.

GoLand es mucho más que un IDE de Go; además de las funcionalidades para trabajar con código de Go, obtendrá nuevas funcionalidades para JavaScript, TypeScript y bases de datos.

¿Prefiere aprender interactivamente en lugar de leer? Complete el tutorial What's New in GoLand 2021.1 dentro del IDE en la pantalla de bienvenida.

Run Targets

Configuración de destinos creados en la ventana «Run Configuration»

En GoLand 2021.1 puede desarrollar en su máquina, con todo el código fuente a su disposición de forma local, y ejecutándose en equipos remotos de destino. Actualmente, el IDE admite Docker, SSH y WSL 2 (Subsistema de Windows para Linux).

En la configuración, seleccione Run | Manage Targets…, haga clic en el icono Add (+) y seleccione los destinos con los que quiere trabajar. Después de completar la configuración, tiene que especificar la Run Configuration (configuración de ejecución) en Run | Edit Configurations… y seleccionar el destino con el que quiere trabajar.

Go 1.16

Añadir una carpeta a una directiva de inserción

Compatibilidad con //go:embed

A partir de Go 1.16, podrá insertar archivos y directorios en un binario de Go en el momento de la compilación.

Embedding works on a few types of variables: string, []byte, and embed.FS. Necesita declarar estas variables en el nivel superior de su paquete. Finalmente, necesita añadir la directiva //go:embed para que funcione la inserción.

GoLand proporciona el resaltado de código, la navegación desde las referencias dentro de la directiva de inserción a los archivos y carpetas en su proyecto, la refactorización Rename, Find Usages, la finalización de código y algunas inspecciones de código. Por ejemplo, GoLand le notificará si intenta insertar archivos en una variable del tipo equivocado.

Reemplazo del método «Fatal» con el método «Error» a través de un arreglo rápido

Detección de utilizaciones incorrectas de (t/b).Fatal

GoLand le advierte de las llamadas no válidas al método testing.T Fatal dentro de una goroutine creada durante la prueba.

El arreglo rápido dedicado reescribirá el código que llama a t.Fatal (o un método similar) para que señale el fallo de la prueba utilizando t.Error y salga de la goroutine pronto con una declaración de retorno.

El IDE muestra una advertencia y proporciona un arreglo rápido adecuado para resolverlo

Detección de utilizaciones incorrectas de asn1.Unmarshal

En Go 1.16, go vet detecta las utilizaciones incorrectas de asn1.Unmarshal, para garantizar que el valor en el que se extrae un segmento de bytes no sea nulo.

GoLand 2021.1 proporciona una comprobación similar con un arreglo rápido para resolver este problema.

Trabajar con JSON

Pegar datos de JSON en el editor copiando y pegando

Genere un struct con campos y etiquetas desde JSON en un momento simplemente copiando y pegando los datos de JSON en el editor.

Si quiere ajustar el JSON antes de generar un struct, pulse Alt+Intro para invocar la intención Generate type from JSON. GoLand abrirá la ventana Generate type from JSON con el JSON copiado. Lo puede ajustar como desee en la ventana y, a continuación, pulsar el botón Generate para que su struct esté listo. Por supuesto, también es posible pegar el JSON en la ventana de forma manual.

Además, es posible convertir el JSON dentro de un struct vacío que ya exista. Para ello, simplemente haga clic en este struct vacío y llame a la acción de intención Generate struct fields from JSON pulsando Alt+Intro o utilizando el menú Generate.

Aparte de eso, GoLand le notificará si utiliza un código JSON no válido en la ventana Generate type from JSON.

Generar un struct a partir de datos de JSON mediante la ventana «Generate Go type from JSON»

Ahora es mucho más sencillo crear etiquetas JSON y XML para todos los campos exportados en el struct.

Cuando utiliza Alt+Intro para invocar Add key to tags en el struct o en cualquier campo en el struct, GoLand añade una etiqueta a todos los campos en el struct con nombres de campo. Si quiere cambiar el estilo del nombre de campo para todas las etiquetas, pulse Alt+Intro de nuevo en cualquier tecla y seleccione Change field name style in tags. Los estilos admitidos son fieldName, FieldName, field-name y field_name.

Puede actualizar todos los valores de las etiquetas a la vez con la acción de intención Update key value in tags. Pulse Alt+Intro en cualquier valor de etiqueta en su struct y GoLand añadirá símbolos de intercalación al final de los valores de las etiquetas en cada campo.

Además, el IDE ofrece la finalización de tokens conocidos dentro de los valores de las etiquetas proporcionados por SDK para el código JSON, XML y ASN.1.

Un archivo JSON en un nuevo estilo admitido

Por último, pero no menos importante, GoLand 2021.1 admite el formato JSON Lines delimitado por línea nueva que se emplea para trabajar con registros y datos estructurados. El IDE reconocerá los tipos de archivo .jsonl, .jslines, .ldjson y .ndjson.

En este formato, los archivos contienen varias líneas, y cada línea nueva es un objeto JSON separado por un carácter de línea nueva. Ya no son necesarias las comas al principio o al final de las líneas, y no hay que incluir todo el contenido del archivo entre corchetes ni entre llaves.

Gestión sencilla de los errores

La inspección de código «Unhandled Error» en acción con el arreglo rápido «Wrap error handling in a closure quick-fix»

La inspección de código Unhandled Error ha recibido toda una serie de arreglos rápidos:

  • El arreglo rápido Handle error asigna los resultados de la llamada a variables y genera una verificación if error not nil.
  • El arreglo rápido Wrap error handling in a closure, que está disponible para las declaraciones defer y go, produce código similar a Handle error, pero lo ajusta todo en una clausura.
  • Hemos ampliado la zona de la aplicación Ignore explicitly para que incluya las declaraciones defer y go. El arreglo rápido asigna los resultados de las llamadas a variables en blanco y lo ajusta todo en una clausura.

Más arreglos rápidos

Convertir byte a cadena mediante el nuevo arreglo rápido

Arreglo rápido para la incompatibilidad de tipo dentro de los literales compuestos

Hemos ampliado la zona de la aplicación del arreglo rápido que aborda la incompatibilidad de tipo. Ahora también sugiere implementar una interfaz y convertirla al tipo esperado dentro de los literales compuestos.

Crear un tipo con todos los campos necesarios mediante el nuevo arreglo rápido

El arreglo rápido «Create Type» genera los campos que faltan

El arreglo rápido Create Type le ofrece no solo crear un tipo cuando GoLand descubre que usted está utilizando uno que aún no se ha definido, sino que también creará los campos por usted.

Generación de getters y setters del struct mediante la ventana «Select Fields»

Generar todos los getters y setters a la vez

Generar métodos get y set para cada campo en structs grandes puede ser una tarea tediosa. Ahora puede generar getters y setters para todo el struct a la vez.

Pulse Alt+Intro en el nombre de cualquier campo del struct y, a continuación, seleccione Generate getter and setters en el menú desplegable. GoLand abrirá la ventana Select Fields, donde podrá generar los métodos get y set para todos los campos o solo para los campos que necesita.

Refactorización

Extraer un tipo de la estructura existente

La refactorización «Extract Type»

La refactorización Extract Type le permite extraer un tipo de uno existente o convertir un tipo de una estructura anónima en un tipo con nombre. Pulse Ctrl+Alt+Mayús+T para invocarla.

Go Modules

Cambiar el nombre de un módulo mediante la refactorización «Rename»

Refactorización Rename para el archivo go.mod

A veces necesita cambiar el nombre de un módulo cuando ha experimentado lo suficiente con el proyecto y ya ha hecho todo el trabajo inicial. Hemos añadido la refactorización Rename al archivo go.mod. Le permite cambiar el nombre del módulo por uno nuevo de manera segura, sin tener que buscar y reemplazar en el árbol del proyecto para cambiar el nombre antiguo del módulo.

Invoque la refactorización Rename en el nombre del módulo con Mayús+F6. GoLand abrirá la ventana Rename, donde podrá cambiar el nombre actual, elegir si quiere modificarlo en los comentarios y en las cadenas, y abrir una vista previa de la refactorización. Desde la pestaña Refactoring Preview, puede desplazarse a todas las utilizaciones de este nombre del módulo. Puede utilizar la opción de deshacer para revertir rápidamente todos los cambios implementados con la refactorización.

Finalización Postfix

La nueva finalización Postfix en acción

Nueva finalización Postfix varCheckError

Escriba .varCheckError después de un identificador que devuelve un error, y el IDE añadirá de forma automática los nombres de variable predeterminados y devolverá el error de la función.

Formateador

Configuración de «Import»

El formateador integrado ahora puede agrupar las importaciones del mismo modo que lo hace goimports -local.

Para habilitarlo, vaya a Settings | Editor | Code Style | Go | Imports y habilite la agrupación de importaciones. A continuación, puede especificar qué importaciones deben agruparse en bloques separados.

Ejecución y depuración

Configuración de «Process Elevation»

GoLand 2021.1 le permite ejecutar una sesión sudo ampliada. En la primera ejecución, GoLand le preguntará si quiere mantener sudo en ejecución o si prefiere finalizarlo de inmediato. Si desea cambiar su respuesta, vaya a Settings | Appearance & Behavior | System Settings | Process Elevation.

Tenga en cuenta que al habilitar esta opción otorga acceso a su sistema a GoLand y a todos los complementos de terceros.

Finalización de código

Resultados de la finalización de código con la finalización asistida por aprendizaje automático habilitada

Hemos habilitado la finalización asistida por aprendizaje automático. Este cambio introduce las etapas iniciales de la finalización de código basada en el aprendizaje automático, que es una alternativa al mecanismo de clasificación estándar.

Marque Mark position changes in the completion popup en Settings | Editor | General | Code Completion para marcar las opciones reclasificadas por la finalización asistida por aprendizaje automático con los iconos de flechas arriba/abajo en la lista de finalización.

Mejoras en la interfaz de usuario

Cambiar el tema del IDE utilizando el nuevo menú de acceso rápido

Menú de acceso rápido

El widget Configuration, que previamente estaba disponible en la esquina inferior izquierda del IDE, se ha sustituido por un menú de acceso rápido. Este nuevo menú aparece en la esquina superior derecha. Pulse el icono de rueda dentada para cambiar temas o mapa de teclas, acceder a complementos o dirigirse a la configuración.

Acceso rápido a los proyectos recientes en Windows

Acceso rápido a proyectos recientes en Windows desde el menú «Inicio»

Ahora puede acceder a sus proyectos recientes haciendo clic con el botón derecho en el icono de GoLand en la barra de tareas o en el menú Inicio de Windows.

Nueva visualización de descripciones emergentes

Mejor visualización de descripciones emergentes

Las descripciones emergentes ahora se muestran una tras otra para evitar que se solapen.

Configuración de «Typography»

Variantes de la fuente

Ahora puede seleccionar las variantes de fuente en el panel Settings | Editor | Font.

Otros cambios

Nueva vista previa del navegador integrada en acción

Vista previa HTML integrada

Hemos añadido una nueva vista previa del navegador integrada que le ayuda a previsualizar los archivos HTML rápidamente. Cualquier cambio que haga en los archivos HTML en el IDE, así como en los archivos CSS y JavaScript enlazados, se guardará de inmediato y la vista previa se actualizará sobre la marcha.

Para abrir la vista previa, haga clic en el icono del logotipo de GoLand en el widget ubicado en la esquina superior derecha del editor.

Cambiar el tamaño de la pestaña en el editor

Maximizar pestañas del editor en la vista dividida

¿Necesita más espacio cuando trabaja en varios archivos al mismo tiempo en un editor dividido? Haga clic en la pestaña en la que está trabajando para maximizar su ventana del editor. Para devolver la pestaña a su tamaño original, simplemente haga doble clic en ella de nuevo.

Complemento «Makefile Language» instalado en la página «Plugins» del IDE

El complemento «Makefile Language» funciona de forma predeterminada

El complemento Makefile Language (previamente de terceros), que ofrece la compatibilidad con el lenguaje GNU Make, ahora está integrado de forma predeterminada. A partir de GoLand 2021.1, obtendrá el resaltado de sintaxis, documentación rápida, Find Usages para destinos y algunas acciones de navegación y finalización de código para Makefile desde el primer momento.

Code With Me

'Code With Me' en acción

Code With Me, un nuevo servicio de JetBrains para el desarrollo colaborativo y la programación en pares, ahora está incluido en GoLand.

Defina el nivel de acceso requerido para su proyecto y comparta el enlace con sus invitados. Sus compañeros ni siquiera necesitan tener su propio IDE instalado para poder colaborar con usted. Las llamadas de audio y vídeo integradas, junto con el servicio de mensajería instantánea, ayudarán a los equipos a hablar sobre el código, compartir sus conocimientos y cooperar de un modo más eficaz.

Para los negocios que necesiten seguridad adicional, Code With Me local se puede instalar y ejecutar de forma segura en la red privada de su propia empresa.

Para obtener más información sobre la disponibilidad de Code With Me con su licencia actual de JetBrains, consulte la página de precios.

Docker

Finalización de código en el campo «Run Options»

Configuraciones de ejecutar/depurar mejoradas

Hemos mejorado el cuadro de diálogo Run/Debug Configuration de varias maneras:

  • Para añadir todas las opciones de build necesarias, haga clic en Modify options; para añadir opciones de ejecución, haga clic en Modify. El IDE ahora valida cada opción para asegurarse de que es compatible.
  • Para Docker-compose, admitimos todas las opciones existentes, incluidas la opción para declarar archivos de variables de entorno (.env).
  • Para Dockerfile, no tiene que recordar todos los comandos de ejecución porque la finalización de código funciona en el campo Run Options.
  • Para Imagen de Docker, puede utilizar la finalización de código para introducir el nombre de la imagen en el campo Image ID o name.
El IDE crea la imagen utilizando BuildKit

Compatibilidad con BuildKit

Hemos añadido una compatibilidad experimental con BuildKit, que agiliza considerablemente la creación de proyectos. Puede activar esta opción en Run/Debug Configurations haciendo clic en Modify options y seleccionando Enable BuildKit (experimental).

Solo tiene que hacer clic en el icono del martillo situado junto al nombre de la etapa y el IDE creará la imagen utilizando BuildKit. Si añade la sección Run en Run/Debug Configurations, el icono cambiará. Cuando haga clic en él, no solo creará una imagen, sino que ejecutará un contenedor.

Plegar etapas en el editor

Mejoras de la interfaz de usuario en Dockerfiles multietapas

Si utiliza varias declaraciones FROM en su Dockerfile, cada instrucción FROM comienza una nueva etapa. En GoLand 2021.1, ahora puede plegar las etapas y ver una línea de separación entre ellas.

Detenga Docker con el botón dedicado en la ventana de herramientas Services

Cancelación de la ejecución de Docker

Si decide detener un Dockerfile en ejecución, puede hacerlo fácilmente en la ventana de herramientas Services. Seleccione el elemento en ejecución, invoque el menú contextual y haga clic en Stop Deploy.

Finalización de código en la ventana «Bind Mounts»

Variables de entorno y macros para los montajes Docker

Cuando utiliza montajes bind, ahora puede introducir una ruta a un directorio en la máquina host más rápidamente. El mecanismo de finalización le permite seleccionar macros y variables de entorno en la opción Bind mount en Run/Debug Configurations.

Finalización de código para imágenes en el Dockerfile

Finalización de imágenes en Dockerfiles

Por último, pero no menos importante, hemos añadido la finalización para los nombres de las imágenes.

Cambios en el desarrollo web

Descripción emergente con documentación de MDN en el editor

Documentación de MDN integrada

La documentación de MDN ahora está incluida con GoLand. Esto le ayudará a evitar problemas de conectividad con el sitio web MDN y hará que la documentación integrada en el editor en sus archivos HTML, CSS y JavaScript se muestre más rápidamente. La documentación integrada en el editor también será más informativa. Por ejemplo, ahora verá información sobre las versiones compatibles del navegador para las API JavaScript.

Stylelint en acción con el arreglo rápido correspondiente

Compatibilidad mejorada para Stylelint

La inspección de su código CSS con Stylelint ahora es más sencilla. Ahora puede corregir los problemas con este linter popular en solo unos clics. Pase el ratón sobre un problema en su archivo o coloque el signo de intercalación en él y pulse Alt+Intro. A continuación, seleccione Stylelint: Fix current file.

Además, ahora puede especificar una ruta al archivo de configuración debajo del campo correspondiente en Settings | Languages & Frameworks | Style Sheets | Stylelint.

Ventana emergente de documentación para un selector

Especificidad de los selectores para CSS

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. Si lo prefiere, puede hacer clic en un selector y pulsar Ctrl+Q para ver esta información en la ventana emergente Documentation.

Trabajo con bases de datos

Nuevo campo «ORDER BY» en una tabla

Mejor clasificación

Hemos mejorado la clasificación de los datos:

  • Un nuevo campo ORDER BY funciona de forma similar al campo WHERE (que antes se denominaba Filter): introduzca una cláusula funcional para que se aplique a la consulta de la tabla.
  • La clasificación no se «acumula» de forma predeterminada. Esto significa que si hace clic en el nombre de una columna para ordenar los datos, la clasificación según las otras columnas se ignorará. Si prefiere utilizar la clasificación acumulada, haga clic en el nombre de una columna mientras mantiene pulsada la tecla Alt.
  • Si quiere utilizar la clasificación en el lado del cliente (GoLand no volverá a ejecutar la consulta ni ordenará los datos dentro de la página actual), desmarque Sort via ORDER BY.
  • También es posible abrir las tablas con una clasificación predefinida sobre la base de una clave principal numérica.
«Select first N rows from a table» en el editor

Plantillas activas de contexto

Esta es nuestra solución para todo el que quiera generar declaraciones sencillas directamente desde el explorador de la base de datos. Las plantillas activas generales cubren muchos casos en los que necesita escribir una consulta sencilla rápidamente. Pero también comprendemos que, en ocasiones, cuando está en el contexto del explorador de la base de datos y ya está centrado en el objeto que necesita, hay un modo mejor de obtener una consulta sencilla utilizando ese objeto.

Select first N rows from a table parece una plantilla general (y se puede usar como tal). Como esta sintaxis concreta no puede utilizarse en todas las bases de datos, los dialectos correspondientes se definen para la plantilla. La principal diferencia que hace que se pueda aplicar esta plantilla en el explorador de la base de datos es la expresión especial dbObjectName, que se utiliza para la variable $table$.

Añadir un permiso a un objeto mediante la nueva ventana

Interfaz de usuario para derechos de acceso

Hemos añadido una interfaz de usuario para la edición de permisos al modificar objetos.

La ventana Modify user, que puede invocar en un usuario en el explorador de la base de datos con Ctrl+F6, ahora tiene una interfaz de usuario para añadir permisos a los objetos.

Esto está disponible para PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server y Sybase.