Novedades de GoLand

GoLand 2020.1 trae una variedad de mejoras para la compatibilidad de Go Modules, así como funcionalidades para la edición de código que apenas requieren interacción por parte del usuario y una familia de finalización de código ampliada.

Además, hay nuevas inspecciones de código, arreglos rápidos y otras mejoras, como el nuevo modo LightEdit, que le permite abrir un archivo en el editor de texto sin crear o cargar un proyecto, comprobaciones inteligentes de la ortografía y la gramática, y nuevas funcionalidades para el desarrollo web y el trabajo con bases de datos.

¿Prefiere aprender interactivamente en lugar de leer al respecto? Complete el tutorial Funcionalidades de GoLand 2020.1 dentro del IDE.

Mejoras en Go Modules

Configuración de GOPROXY la elección sugerida automáticamente por GoLand entre los valores 'direct' y 'off' en el nuevo cuadro de diálogo 'Environment Variables'.

Las variables de entorno de Go 1.13 GOPROXY, GOPRIVATE, GOSUMDB, GONOPROXY, y GONOSUMB ahora son compatibles.

Configure sus valores por defecto utilizando la plantilla de proyectos Go Modules. Solo tiene que hacer clic en el icono Browse del campo Environment para abrir el nuevo cuadro de diálogo Environment Variables.

Finalización de código para la palabra clave 'replace', nombre de dependencia y ruta para el reemplazo en acción.

Finalización de código para las palabras clave go, module, require, replace, exclude, nombres de las dependencias y reemplazos con rutas locales disponibles para el archivo go.mod.

GoLand sugiere la importación de un paquete.

Las refactorizaciones Rename y Move también están listas. Cuando cambia el nombre o mueve los directorios referenciados por las instrucciones replace, GoLand cambiará la ruta en el archivo go.mod en consecuencia.

Utilización de Find Usages para buscar dónde se utiliza el directorio en el archivo go.mod y navegar hasta su fuente.

Ahora también puede llamar a Find Usages mediante Project View para explorar dónde se utiliza la ruta a un directorio concreto en el archivo go.mod.

GoLand resalta las dependencias que no se usen y las que falten, y le sugiere que las quite y las recupere utilizando arreglos rápidos mediante Alt-Intro.

En GoLand 2020.1 puede recuperar las dependencias que falten y quitar las que no se usen mediante Alt-Intro.

GoLand notifica que la confirmación incluye el archivo go.mod con reemplazos a rutas locales.

Por último, la nueva versión mostrará una notificación antes de que confirme si hay reemplazos con sus rutas locales, para que no las confirme accidentalmente.

Funcionalidades de la finalización de código que no necesita aprender a utilizar

Finalización de un patrón para gestionar los errores escribiendo 'if' dentro de la función.

GoLand 2020.1 sugerirá if err != nil { ... } para completar un patrón de tratamiento de errores. Simplemente escriba if dentro de la expresión.

Declaración de «struct» e «interface» utilizando la finalización de código.

Defina los tipos de interfaz y struct con más rapidez escribiendo la palabra clave type o struct e interface.

«Fill Fields» añade espacios después de los dos puntos.

La acción Fill Fields añade espacios después de los dos puntos cuando lo exijan las reglas de formateo. También añade una coma al final de la instrucción en las declaraciones de los literales compuestos.

GoLand desplaza el cursor afuera del corchete de cierre.

Cuando trabaje con mapas, la finalización de código mueve el cursor detrás del corchete de cierre después de que complete un tipo de clave.

GoLand proporciona sugerencias para completar las variables locales en el tipo de retorno de la función.

Para el tipo de retorno de la función, la finalización proporciona sugerencias de variables locales y valores cero que serán adecuados para el tipo de valor de retorno correspondiente.

Finalización inteligente de código (Ctrl+Mayús+Espacio)

GoLand sugiere un puntero para inicializar el struct.

La finalización inteligente de código sugiere un puntero al inicializador de struct.

GoLand sugiere un tipo compatible en la afirmación.

También sugiere tipos compatibles en afirmaciones y casos switch para tipos primero.

GoLand sugiere el tipo de la variable asignada en la afirmación.

En afirmaciones de tipo, ofrece el tipo de la variable asignada.

GoLand proporciona una lista de posibles punteros en la expresión mediante «Smart Code Completion».

Finalmente, proporciona una lista de sugerencias de posibles punteros en la expresión.

Finalización básica de código (Ctrl+Espacio)

GoLand completa el nombre de la función en el bloque de comentario.

¡Presentamos la finalización básica de código para los comentarios, que facilita enormemente la escritura de documentación! Sugiere nombres para las declaraciones de paquetes actuales y nombres de parámetros para funciones y métodos.

GoLand sugiere conversiones en la expresión.

Además, la finalización básica de código sugerirá literales y conversiones.

Edición de código

GoLand añade paréntesis entre el tipo «int» después de escribir la coma para añadir el siguiente tipo de retorno.

GoLand 2020.1 añade paréntesis entre los tipos de retorno después de la coma al escribir la firma de una función de retorno de valor múltiple.

GoLand hace escape de comillas dobles después de pegar el texto en un literal de cadena.

Cuando pega texto en un literal de cadena, el IDE hace escape de comillas dobles.

Para obtener más información acerca de funcionalidades que se llevan a cabo de manera automática, lea el artículo GoLand Editing Features You Didn’t Know About.

Compatibilidad con Go 1.14

Diferencia entre GoLand 2019.3 y 2020.1 en cuanto a la compatibilidad con interfaces superpuestas.

Compatibilidad con interfaces superpuestas

Go 1.14 ahora permite incrustar interfaces superpuestas, ¡y nosotros también! Cuando describe diferentes aspectos de un tipo con interfaces superpuestas, GoLand no considerará sus métodos duplicados como errores.

Nueva configuración en la sección «Go Modules».

Modo proveedores automático

El modo proveedores está habilitado de forma automática en Go 1.14 si la raíz del módulo contiene un directorio de proveedores. Para GoLand 2020.1, hemos decidido implementar un comportamiento similar para la versión 1.13 y anteriores de Go. El IDE resolverá de forma automática las importaciones al proveedor/carpeta si está presente en el módulo.

Actualizaciones del depurador

Exploración de goroutines con etiquetas de perfilador en la ventana «Debug».

Compatibilidad con etiquetas de perfilador

Para ayudarle a distinguir más fácilmente entre goroutines durante la depuración o el análisis con volcado de memoria, les hemos añadido etiquetas de perfilador.

Si quiere obtener más información, consulte este artículo: How to Find Goroutines During Debugging.

Elegir macros predefinidas en el nuevo cuadro de diálogo «Macros» para el campo «Program arguments» en «Run/Debug Configurations».

Compatibilidad con macros

Ahora puede utilizar macros como parámetros para ejecutar o depurar su aplicación. En el cuadro de diálogo Run/Debug Configurations, haga clic en + en los campos Go Tool o Program arguments para abrir el nuevo cuadro de diálogo Macros con la lista de macros disponibles para usar.

Además, ahora puede guardar el archivo de configuración en el proyecto. Seleccione Store como opción de archivo de proyecto en la parte superior del cuadro de diálogo Run/Debug Configurations.

Finalización Postfix

Funcionamiento de la plantilla Postfix «.else».

La plantilla de finalización Postfix .else añade rápidamente una instrucción if para comprobar si la expresión es falsa.

Arreglos rápidos

Conversión de Println a Printf

Cambie una llamada sin formato a una con formato de inmediato pulsando Alt+Intro.

'Create variable’ sugiere la finalización de una expresión con un valor esperado para su tipo.

El arreglo rápido Create variable ahora muestra un consejo de escritura esperado para que le resulte más fácil introducir el valor correcto.

Inspecciones de código

GoLand avisa de llamadas no válidas de métodos puntero en receptores no puntero y le ofrece un arreglo rápido.

Esta nueva inspección de código le avisa de llamadas no válidas de métodos puntero en receptores no puntero y le ofrece un arreglo rápido.

GoLand avisa de un posible mal uso de unsafe.Pointer.

La inspección de código Invalid conversions of uintptr to unsafe.Pointer le avisa sobre usos incorrectos de uintptr y unsafe.Pointer para convertir enteros en punteros.

GoLand avisa de que un argumento de la función «Unmarshal» debe tener un tipo de puntero.

La inspección Unmarshal is called with incorrect argument analiza las llamadas a json.Unmarshal y funciones similares de los paquetes encoding/json, encoding/xml y encoding/gob.

GoLand avisa de que el argumento debe tener un tipo de puntero.

La inspección de código Locks mistakenly passed by value le ayuda a evitar copiar accidentalmente un valor que contenga un bloqueo.

Live templates

Declaración de «var» y «consts».

Hemos añadido nuevas plantillas para ayudarle a crear rápidamente grupos de declaraciones. Estos incluyen consts, vars, types e imports. Cuando emplea una de estas plantillas, GoLand añadirá llaves entre los nombres de la declaración.

Funcionamiento de la plantilla «fori».

La plantilla fori inserta el código reutilizable para el bucle for clásico.

Refactorizaciones

«Extract Method» conserva el orden original tras su ejecución.

La refactorización Extract Method mantiene el orden original de la función principal y los parámetros del método.

«Rename» propone renombrar las utilizaciones utilizando Alt+Intro.

La refactorización Rename ahora detecta el cambio de nombre de una declaración automáticamente. Esto significa que cuando cambia el nombre de una declaración manualmente, el IDE mostrará un icono del medianil que se ofrecerá a cambiar el nombre de todas sus utilizaciones.

Navegación

«Find Usages» muestra las utilizaciones de los métodos de la interfaz.

Navigate to implementations (Ctrl+Alt+B) y Navigate to Declaration o Usages (Ctrl+B) ahora muestran primero los resultados del proyecto actual.

Además, la acción Find Usages (Alt+F7) ahora siempre busca usos de los métodos de interfaz de forma predeterminada. Para buscar usos del método actual como antes, utilice Alt+Mayús+Ctrl+F7.

Mejoras de VCS

Nueva ventana de herramientas «Commit» con el diff en el editor.

Nueva ventana de herramientas Commit

La nueva ventana de herramientas Commit ahora incorpora las pestañas Local Changes y Shelf. Esta ventana de herramientas cubre todas las tareas relacionadas con la confirmación, como comprobar diffs, seleccionar archivos y fragmentos que confirmar, e introducir un mensaje de confirmación. Commit es una ventana de herramientas vertical ubicada en el lado izquierdo de la pantalla, por lo que deja espacio en todo el editor para mostrar el diff.

Ventana emergente «Branches»

Mejora de la ventana emergente Branches

La ventana emergente Branches se ha rediseñado en varios aspectos:

  • Hemos añadido un campo de búsqueda explícito que le permite buscar branches remotas y locales existentes.
  • Ahora puede utilizar el botón Refresh para actualizar las ramas remotas existentes.
  • Se han añadido a la barra de estado los indicadores de confirmación entrante (azul) y saliente (verde).
Ventana «Rebasing Commits»

Cuadro de diálogo Interactively Rebase from Here

Hemos rediseñado sustancialmente Interactively Rebase from Here. Se trata de un cuadro de diálogo que le permite editar, combinar y eliminar sus confirmaciones previas para que su historial de confirmaciones sea más lineal y exhaustivo.

Para invocar este cuadro de diálogo, vaya a la pestaña Log de la ventana de herramientas Git, seleccione la confirmación más antigua de la serie de confirmaciones que quiere editar, haga clic derecho en ella y seleccione Interactively Rebase from Here.

Actualizaciones de bases de datos

Los resultados se muestran en el editor de código.
  • Ejecute archivo de script y fragmentos de código con Run configurations. Esta funcionalidad le permite ejecutar varios archivos a la vez, reordenarlos, añadir nuevos y ejecutar otros programas o configuraciones antes del inicio.
  • Ahora puede ver los resultados en el editor de código. Esta opción está deshabilitada de forma predeterminada. Para activarlo, utilice: Settings/Preferences | Database | General | Show output results in the editor.
  • Cree una configuración del túnel de SSH y úselo en muchas fuentes de datos e incluso proyectos.
  • Hemos añadido la posibilidad de exportar datos a un archivo de Excel.
  • Además, puede seleccionar el formato de datos que prefiere en la lista desplegable del extractor.

Desarrollo web

GoLand propone convertir el código existente a encadenamiento opcional y/o fusión de null con Alt+Intro.

Nuevas intenciones e inspecciones inteligentes para JavaScript y TypeScript

¡Utilice las nuevas intenciones e inspecciones inteligentes (Alt+Intro) para ahorrar tiempo al escribir código! Por ejemplo, ahora puede convertir rápidamente el código existente en encadenamiento opcional y/o fusión nula, la sintaxis introducida en las versiones más recientes de JavaScript y TypeScript.

La ventana emergente «Documentation» muestra el tipo de símbolo y el lugar donde se define dicho símbolo.

Documentación rápida más útil

Para JavaScript y TypeScript, la ventana emergente Documentation ahora muestra información más útil, incluidos detalles sobre el tipo y la visibilidad del símbolo, así como el lugar donde se define dicho símbolo.

Más cambios

Un archivo abierto en el editor de texto sin crear o cargar un proyecto mediante el nuevo modo «LightEdit».
  • JetBrains Mono, una nueva fuente de JetBrains, está disponible de forma predeterminada. Para obtener más información sobre la fuente, visite esta página.
  • Grazie, un complemento que proporciona comprobaciones inteligentes de la ortografía y la gramática del texto que escribe en el IDE, viene incluido de forma predeterminada.
  • El nuevo modo LightEdit le permite abrir un archivo en el editor de texto sin tener que crear o cargar un proyecto. Para probar esta nueva funcionalidad, primero tiene que crear un iniciador de línea de comando desde Tools | Create Command-line Launcher, tal como se describe aquí (si utiliza JetBrains Toolbox App, los pasos serán ligeramente diferentes). Para obtener instrucciones más detalladas sobre cómo abrir un archivo, comparar/combinar archivos e incluso ejecutar inspecciones de código, consulte esta sección de ayuda web.
  • Hemos añadido el nuevo modo Zen para eliminar posibles distracciones y ayudarle a centrarse por completo en su código. Fundamentalmente, este modo combina el modo sin distracciones y el modo en pantalla completa. Para habilitarlo, vaya a View | Appearance | Enter Zen Mode o selecciónelo en la ventana emergente Quick Switch Scheme (Ctrl+` | View mode | Enter Zen Mode).
  • La documentación externa ahora dirige a https://pkg.go.dev en vez de a https://godoc.org.
  • Hemos recuperado el esquema de color Default, pero ahora tiene un nombre nuevo: Classic Light.