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.
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 las palabras clave go
, module
, require
, replace
, exclude
, nombres de las dependencias y reemplazos con rutas locales disponibles para el archivo go.mod
.
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.
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
.
En GoLand 2020.1 puede recuperar las dependencias que falten y quitar las que no se usen mediante Alt-Intro.
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.
GoLand 2020.1 sugerirá if err != nil { ... }
para completar un patrón de tratamiento de errores. Simplemente escriba if
dentro de la expresión.
Defina los tipos de interfaz y struct con más rapidez escribiendo la palabra clave type
o struct
e interface
.
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.
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.
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.
La finalización inteligente de código sugiere un puntero al inicializador de struct.
También sugiere tipos compatibles en afirmaciones y casos switch para tipos primero.
En afirmaciones de tipo, ofrece el tipo de la variable asignada.
Finalmente, proporciona una lista de sugerencias de posibles punteros en la expresión.
¡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.
Además, la finalización básica de código sugerirá literales y conversiones.
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.
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.
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.
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.
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.
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.
La plantilla de finalización Postfix .else
añade rápidamente una instrucción if
para comprobar si la expresión es falsa.
Cambie una llamada sin formato a una con formato de inmediato pulsando Alt+Intro.
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.
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.
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.
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
.
La inspección de código Locks mistakenly passed by value le ayuda a evitar copiar accidentalmente un valor que contenga un bloqueo.
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.
La plantilla fori
inserta el código reutilizable para el bucle for clásico.
La refactorización Extract Method mantiene el orden original de la función principal y los parámetros del método.
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.
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.
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.
La ventana emergente Branches se ha rediseñado en varios aspectos:
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.
¡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.
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.