Novedades de IntelliJ IDEA 2021.3

IntelliJ IDEA 2021.3 ofrece compatibilidad con desarrollo remoto (Beta) e introduce una nueva forma de solucionar problemas del IDE con la acción Repair IDE.... También incorpora actualizaciones del depurador y la inspección de condiciones constantes para Kotlin, junto con otros cambios verdaderamente prácticos. Las siguientes descripciones breves explican con más detalle estas y otras funcionalidades dignas de mención.

Novedades principales

Desarrollo remoto

Desarrollo remoto
Beta
Ultimate

IntelliJ IDEA Ultimate ahora admite una versión Beta de nuestro flujo de trabajo de desarrollo remoto. Le permite conectarse a una máquina remota que ejecute el backend de IntelliJ IDEA desde cualquier parte del mundo. Todo el procesamiento se realizará en esa potente máquina remota, y podrá trabajar en su proyecto con la misma fluidez que si estuviera en su máquina local. Esta funcionalidad puede iniciarse desde la pantalla de bienvenida de IntelliJ IDEA o desde una nueva aplicación llamada JetBrains Gateway, que está disponible en JetBrains Toolbox App.

Además, puede crear, precompilar, compartir, reproducir, hibernar y gestionar entornos de desarrollo con Space, una plataforma unificada para todo el proceso de desarrollo de software.

Consulte este artículo del blog para conocer más detalles.

Solución de problemas del IDE

Solución de problemas del IDE

IntelliJ IDEA 2021.3 presenta una nueva manera más rápida de diagnosticar y solucionar los problemas que hacen que su IDE no funcione correctamente. Si su IDE no funciona correctamente, invoque la nueva acción Repair IDE... del menú File. Esta le guiará a través de una secuencia de pasos para solucionar algunos de los problemas más comunes.

Inspección Constant conditions para Kotlin

Inspección Constant conditions para Kotlin

Hemos añadido la nueva inspección Constant conditions, que ayuda a IntelliJ IDEA a informar de condiciones y valores no triviales que se sabe estáticamente que son siempre verdaderos, falsos, nulos o cero. Funciona de la misma manera que la inspección similar para Java, y es compatible con la mayoría de las mismas comprobaciones. Encontrará esta nueva inspección en Preferences/ Settings | Editor | Inspections | Kotlin | Probable bugs.

Actualizaciones del depurador para Kotlin

Smart Step Into

Si desea depurar una expresión con llamadas a método encadenadas y lambdas, la acción Step Into le ofrecerá la funcionalidad de Smart Step Into de forma predeterminada. Destaca los métodos y lambdas donde puede usar Step Into. Para utilizarla, haga clic en el botón Step Into situado en el panel superior de la ventana de herramientas Debug o utilice el acceso directo F7. El IDE resaltará los lugares en los que puede entrar en el código, y podrá seleccionar la línea que desee haciendo clic en ella.

Marcos de pila inline

El depurador ahora es capaz de detectar las funciones inline de Kotlin y mostrar las llamadas a funciones inline en el panel de traza de pila. Puede navegar a estas llamadas e inspeccionar y evaluar las variables de cada marco.

Editor

Cambiar el tamaño de la letra en todas las pestañas

Como nos han solicitado, hemos hecho posible cambiar el tamaño de la fuente en todas las pestañas abiertas simultáneamente con ⌘+rueda del ratón en macOS o Ctrl+rueda del ratón en Windows y Linux. Para habilitar esta función, vaya a Preferences/ Settings | Editor | General, escoja Change font size with Command + mouse wheel in y seleccione All editors. Si selecciona Active editor, el acceso directo cambiará el tamaño de la fuente solo en el archivo en el que esté trabajando actualmente.

Mejora de la vista previa de las intenciones

IntelliJ IDEA tiene una opción muy útil que le permite previsualizar los resultados de las acciones de intención y los arreglos rápidos antes de aplicarlos a su código. Esta funcionalidad está disponible en el menú Intention actions. Para activar la vista previa, pulse F1 en macOS o Ctrl+Q en Windows y Linux.

Desde su introducción en la v2020.1, hemos seguido trabajando para mejorar la vista previa de intenciones. En IntelliJ IDEA 2021.3, funciona para más acciones de intención y arreglos rápidos en Kotlin, y el mensaje «Preview isn't available» se ha sustituido por descripciones HTML más informativas de las acciones de intención que no son compatibles. Además, en el caso de una acción que modifique varios archivos, la vista previa muestra parte de un posible resultado. Este resultado parcial debería ser suficiente para darle una idea general de lo que la acción cambiará.

Compatibilidad mejorada con Markdown

Compatibilidad mejorada con Markdown

En IntelliJ IDEA 2021.3 se pueden crear tablas con facilidad. Simplemente invoque el menú contextual y seleccione Insert | Table. ¡Y ya está! Puede seleccionar el tamaño preferido utilizando el teclado o la acción de pasar el ratón por encima.

El ancho de las celdas de la tabla se ajustará a medida que escriba. Puede editar el contenido de la tabla utilizando las barras de herramientas flotantes.

Para crear una nueva fila puede usar Mayús+Intro, y Tab para navegar a la siguiente celda.

Acceso rápido a todas las acciones para pestañas

Acceso rápido a todas las acciones para pestañas

Trabajar con pestañas del editor ahora es más sencillo. Solo tiene que hacer clic en los tres puntos de la esquina derecha del panel de la pestaña para acceder a todas las acciones de esa pestaña.

Experiencia de usuario

Nueva ventana de herramientas Bookmarks

Hemos introducido la nueva ventana de herramientas Bookmarks concebida para reemplazar una instancia similar: Favorites. Así que, a partir de ahora, solo tiene que utilizar el atajo F3 en macOS o F11 en Windows y Linux para marcar sus archivos, carpetas y clases como importantes.

Cuando añade un marcador, IntelliJ IDEA lo coloca de forma predeterminada en el nodo con el nombre de su proyecto en la ventana de herramientas Bookmarks. Cada vez que añada un nuevo marcador, aparecerá en la parte superior de la lista dentro de este nodo. Puede clasificar sus marcadores por tipo utilizando la opción Sort Groups and Bookmarks en la configuración de la ventana de herramientas. También puede crear nuevos nodos y arrastrar y soltar elementos en ellos.

Posibilidad de dividir la ventana de herramientas Run

Posibilidad de dividir la ventana de herramientas Run

En la v2021.3, hemos hecho posible dividir la ventana de herramientas Run con pestañas. Esto le permite ejecutar varias configuraciones simultáneamente y ver todos los resultados.

Para dividir la ventana, arrastre la pestaña que desea ver al área resaltada dentro de la ventana de herramientas Run y suéltela allí. 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.

Búsqueda de acciones basada en ML en Search Everywhere

Búsqueda de acciones basada en ML en Search Everywhere

Cuando se buscan acciones, Search Everywhere en IntelliJ IDEA ahora funciona con aprendizaje automático de forma predeterminada. Hemos entrenado una fórmula basada en ML que tiene en cuenta:

  • El historial de uso de acciones del usuario específico.
  • Frecuencias de uso de las acciones en toda la base de usuarios.
  • La longitud de la consulta de búsqueda, el nombre de la acción, etc.

Esperamos que los modelos basados en ML aumenten la calidad de sus búsquedas y le den resultados adaptados a sus necesidades específicas.

Find Usages mejorado

Find Usages mejorado

Cuando se buscan usos de una implementación de método mediante ⌥F7 en macOS o Alt+F7 en Windows y Linux, el IDE ya no pregunta si desea encontrar usos del método base en una ventana emergente. En su lugar, IntelliJ IDEA utilizará de forma predeterminada los métodos de la jerarquía de nivel superior como objetivos de su búsqueda. Si desea cambiar este comportamiento, desactive la casilla Search for base method usages en la configuración de la ventana de herramientas Find Usages, a la que puede acceder haciendo clic en el icono del engranaje.

Show Usages renovado

El cuadro de diálogo Show Usages ahora cuenta con varias nuevas y prácticas funcionalidades. Hemos introducido la vista previa del código fuente por uso encontrado, que puede ver haciendo clic en el icono cuadrado del panel superior de la barra de herramientas. Otra actualización le permite cambiar el alcance de su búsqueda con la nueva lista desplegable situada junto al icono de vista previa. Además, la barra de título de la ventana muestra ahora el tipo de elemento de código que se busca y el número de usos encontrados.

Otra actualización menor pero muy práctica le permite establecer el ancho del cuadro de diálogo, que el IDE conservará la próxima vez que lo invoque.

Empty Project rediseñado y nuevos nodos Multi-Module Project

En la v2021.3 notará algunos cambios en los nodos del IntelliJ IDEA Project Wizard.

Ahora puede seleccionar el nodo Empty Project para crear un proyecto básico para trabajar con archivos separados de diferentes tipos y añadir clases Java y Kotlin. El IDE configurará de forma automática el proyecto para que pueda compilarlo si hay alguna clase Java o Kotlin.

El nuevo nodo de Multi-Module Project permite crear un proyecto con una estructura compleja desde cero. Una vez creado el proyecto, se abrirá el cuadro de diálogo Project Structure y podrá añadir varios módulos.

Actualizaciones de accesibilidad

IntelliJ IDEA 2021.3 aborda algunos problemas de accesibilidad para que el trabajo con el lector de pantalla sea más cómodo. Respondiendo a sus peticiones, 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. También hemos solucionado un problema con la llamada al cuadro de diálogo Go to Declaration.

En esta versión también se ha mejorado la compatibilidad con la accesibilidad en macOS. Hemos resuelto varios problemas con el enfoque en la voz en off y hemos hecho posible que los lectores de pantalla detecten los elementos de la lista en el asistente de nuevo proyecto cuando cree proyectos. Para minimizar las distracciones mientras codificas, hemos disminuido el número de ayudas emergentes que reproducen sonidos.

Java

Inspección para el seguimiento de cadenas inseguras

IntelliJ IDEA ahora le advierte sobre peligros como la inyección SQL y defectos XSS, fugas de datos sensibles y deserialización no segura. También evita que se pasen datos no seguros a métodos seguros. Estas advertencias adicionales las indica nuestra nueva inspección Non-safe string is passed to a safe method.

Para que esta inspección funcione, es necesario anotar las cadenas como @Untainted ("seguro") o @Tainted ("no seguro"). Estas anotaciones serán válidas cuando se añada la dependencia org.checkerframework.​checker.​tainting.​qual.

Otras nuevas inspecciones de Java

Hemos añadido dos inspecciones que pueden ayudarle a simplificar su código. La primera sugiere que se sustituya collect(toList()) por .toList(). Puede utilizarla con las versiones de Java 16 y posteriores. Otra inspección le pide que sustituya collection.addAll(List.of("x")) por collection.add(x), y map.putAll(Map.of("a", "b")) por map.put("a", "b").

Refactorizaciones mejoradas

Cuando se introduce una variable local en Java, los ajustes aplicables a esta ya no aparecen en una ventana emergente, que solía cubrir el código que se estaba escribiendo. En su lugar, puede acceder a estas opciones haciendo clic en el icono de la rueda dentada junto a una variable o utilizando el atajo de teclado ⌥⇧O en macOS o Alt+Mayús+O en Windows.

También hemos mejorado la refactorización Introduce parameter. Cuando invoca esta refactorización, con ⌥⌘P en macOS o Ctrl+Alt+P en Windows y Linux, el IDE le pregunta dónde desea reemplazar las ocurrencias. Después de efectuar esta selección, aparecerá un icono de engranaje, y al hacer clic en él podrá configurar más ajustes para la refactorización.

Rutas de clase personalizables en las configuraciones de ejecución y depuración

Rutas de clase personalizables en las configuraciones de ejecución y depuración

A veces puede ser necesario definir rutas de clase personalizadas en el cuadro de diálogo Run/Debug Configurations para cada configuración. A partir de esta versión, es posible hacerlo seleccionando Modify options | Modify classpath.

Kotlin

Refactorización Extract constant

Refactorización Extract constant

Hemos introducido una nueva refactorización que permite extraer constantes en Kotlin. Para utilizarla, sitúe el signo de intercalación sobre una cadena y pulse ⌥⌘C en macOS o Ctrl+Alt+C en Windows y Linux.

Mejora de la inspección Possibly blocking call in non-blocking context

Mejora de la inspección Possibly blocking call in non-blocking context

La inspección Possibly blocking call in non-blocking context (llamada posiblemente bloqueante en un contexto no bloqueante) le advierte si utiliza una corrutina en el contexto equivocado. En esta versión, la inspección funciona no solo como una advertencia, sino también como un arreglo rápido dependiente del contexto.

Además, hemos introducido otras mejoras. Esta inspección cubre ahora más casos, y puede personalizarla para que funcione mejor en su entorno particular.

Consejos inline para rangos

Consejos inline para rangos

A veces puede ser difícil entender las distintas formas de declarar los rangos que admite Kotlin. Para hacerlo un poco más fácil, hemos añadido consejos inline que explican con signos matemáticos sencillos lo que significan las palabras o los símbolos de los rangos. Si no necesita esta funcionalidad, puede desactivarla fácilmente haciendo clic con el botón derecho en un consejo y seleccionando Disable ‘Ranges’ hints type.

Asistente New Project mejorado

Asistente New Project mejorado

Hemos rediseñado el diseño del asistente New Project añadiendo consejos para todos los campos, para que pueda entender fácilmente la información que requieren. La sección de plantillas también se ha actualizado: hemos eliminado algunas de las plantillas menos populares y hemos añadido una nueva que permite crear una aplicación Compose Web.

Y, por último, el paso de configuración del proyecto se ha simplificado mucho. Ahora solo tiene que rellenar los campos básicos.

Scala

Mejoras en la compatibilidad con Scala 3

Mejoras en la compatibilidad con Scala 3

El objetivo principal de esta versión ha sido la compatibilidad con Scala 3. Hemos añadido resaltado, navegación y autocompletado para los marcadores end. Ahora dispone de autocompletado para las palabras clave given, using y export, las soft keywords y la sintaxis silenciosa. El lector TASTy ahora puede analizar el objeto del paquete, así como la varianza y los límites en los tipos de tipo superior. El resaltado de los errores del lexer y el parser es ahora mucho más rápido. Hay más inspecciones compatibles con Scala 3. Hemos mejorado la resolución de las importaciones given y admitido los miembros final de nivel superior y abstract lazy val.

Una opción para abrir proyectos compilados cruzados Scala 3 / Scala 2 como Scala 2

Una opción para abrir proyectos compilados cruzados Scala 3 / Scala 2 como Scala 2

Muchos proyectos que deberían compilarse tanto para Scala 2 como para Scala 3 son modelados como proyectos de Scala 3 compilados de forma cruzada para Scala 2, aunque técnicamente sean proyectos de Scala 2.

Abrir estos proyectos como Scala 2 permite al IDE utilizar la versión correcta de Scala, y es más fiable.

Análisis del flujo de datos para Scala

Análisis del flujo de datos para Scala

El complemento de Scala es compatible ahora con el análisis del flujo de datos, lo que puede ayudarle a detectar errores de programación más fácilmente. Puede leer nuestro reciente artículo del blog para obtener más detalles.

Autocompletar para opciones del compilador de Scala

Autocompletar para opciones del compilador de Scala

Hay montones de opciones diferentes en el compilador de Scala, y muy pocos programadores se las aprenden de memoria. Además, estas opciones varían en función de la versión de Scala que se utilice.

Ahora puede autocompletar las opciones aplicables e incluso ver la documentación rápida de cada una de ellas.

Consejos insertados para rangos

Consejos insertados para rangos

¿Se ha preguntado alguna vez si del 1 al 3 es una gama inclusiva o exclusiva? ¿Y qué hay de de la 1 hasta la 3? ¿O Rango(1, 3)? Olvide sus dudas: ahora la respuesta está clara.

JavaScript

Nueva inspección para actualizar las dependencias

Nueva inspección para actualizar las dependencias
Ultimate

IntelliJ IDEA 2021.3 le permite actualizar sus paquetes npm a la última versión ¡directamente desde el editor! Abra su archivo package.json file, sitúe el signo de intercalación sobre la versión del paquete que desee actualizar y pulse ⌥⏎ en macOS o Alt+Intro en Windows y Linux, y seleccione Update ‘package name’ to the latest version. También se mostrará un arreglo rápido cuando pase el ratón por encima de la versión del paquete.

Mejor finalización de código en HTML

Mejor finalización de código en HTML
Ultimate

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, IntelliJ IDEA le mostrará sugerencias relevantes de inmediato. Anteriormente, solo se mostraban si se escribía < primero. Además, la finalización de código para las referencias a entidades de caracteres debería funcionar mejor ahora.

SSH

Compatibilidad con un proxy para las conexiones SSH

Esta muy deseada nueva funcionalidad le permite especificar un servidor proxy HTTP o SOCKS para su configuración SSH en Preferences/Settings | Tools | SSH Configurations. En la nueva sección HTTP/SOCKS, puede seleccionar el tipo de proxy, introducir un nombre de host y un puerto, y aplicar autenticación con un nombre de usuario y una contraseña, si fuese necesario. También es posible sincronizar la configuración del proxy SSH con la configuración global del IDE. Para ello, seleccione la casilla Use global IDE proxy settings.

Perfilador

Comparación de instantáneas .jfr

Comparación de instantáneas .jfr
Ultimate

Ahora es fácil comprobar si los cambios que ha realizado han funcionado en su programa o han provocado una regresión. Para ello, basta con abrir dos instantáneas que desee comparar en la ventana de herramientas Profiler. En la instantánea más reciente, haga clic en el icono diff y seleccione la instantánea que utilizará como base. El IDE mostrará el resultado en forma de gráfico de llamas, árbol de llamadas o lista de métodos.

Compatibilidad con Async Profiler 2.0 en Windows
Ultimate

En la v2021.2, hemos añadido compatibilidad con Async Profiler 2.0 a las versiones de IntelliJ IDEA para macOS y Linux. A partir de v2021.3, la versión para Windows también es compatible con Async Profiler 2.0 desde su instalación. Esta compatibilidad proporciona una experiencia de creación de perfiles más fluida, y también mejora la forma en que se muestran las funciones nativas en las instantáneas.

Herramientas de build

Configuraciones de Maven rediseñadas

Configuraciones de Maven rediseñadas

Esta versión avanza algunos pasos en la mejora de nuestras configuraciones Run/Debug, y esta vez, las configuraciones de Maven se han rediseñado bastante. Los parámetros clave están agrupados en una pantalla, mientras que las opciones adicionales están disponibles a través de las opciones de modificación.

Compatibilidad con .mvn/maven.config

Compatibilidad con .mvn/maven.config

Si desea configurar los ajustes de Maven para cada proyecto en el archivo .mvn/maven.config, vaya a Preferences/ Settings | Build, Execution, Deployment | Maven y seleccione Use settings from .mvn/maven.config en la parte inferior de la pantalla. Tenga en cuenta que la configuración de este archivo anula la configuración estándar de la IU de Maven.

Control de versiones

Checkout and Rebase onto Current para ramas remotas

Checkout and Rebase onto Current para ramas remotas

Cuando necesite comprobar la rama seleccionada y volver a situarla sobre una rama que esté actualmente comprobada, utilice la acción de Checkout and Rebase onto Current, que antes solo estaba disponible para las ramas locales. En IntelliJ IDEA 2021.3 también se puede utilizar para las ramas remotas.

Configuración de VCS reorganizada

Hemos mejorado la forma en que se estructuran los ajustes en Preferences/Settings | Version Control, y hemos hecho que algunas de las configuraciones críticas sean más visibles. El nodo Version Control sirve ahora como punto de partida para la navegación, con enlaces a todos los ajustes disponibles. Si va al nodo Git desde allí, verá que hemos dividido todas las configuraciones en secciones que incluyen los procesos más importantes: Commit, Push y Update. Además, los parámetros dentro de estas secciones están ahora organizados de forma más lógica. Y no solo eso: hemos añadido un nodo independiente para Directory mappings, y las operaciones en segundo plano están ahora activadas por defecto. El nodo Background ya no existe.

Nueva ventana de herramientas Changes

Nueva ventana de herramientas Changes

A partir de IntelliJ IDEA 2021.3, su IDE muestra la diferencia entre confirmaciones en una ventana de herramientas Changes por separado, situada a la izquierda del editor.

Nueva acción Push All up to Here

Nueva acción Push All up to Here

Una nueva acción le permite hacer push solo de las confirmaciones de las que está seguro, y dejar el resto para más adelante.

Le permite hacer push de las confirmaciones hasta la que haya seleccionado en la pestaña Log de la ventana de herramientas Git. Para utilizarla, 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 nueva acción Push All up to Here.

Alinear resaltado de cambios

Alinear resaltado de cambios

Hemos añadido la nueva opción Align Changes Highlighting a los ajustes de la pantalla Diff que encontrará en el icono de la rueda dentada. Esta función facilita la lectura de Diff, sobre todo cuando hay modificaciones complejas, porque alinea las líneas no modificadas para que aparezcan una al lado de la otra. Esto le ayuda a ver más claramente el código que se ha añadido o eliminado.

Terminal

Compatibilidad con ConPTY en Windows

Compatibilidad con ConPTY en Windows

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

Compatibilidad con typeahead

Compatibilidad con typeahead

Nuestra nueva compatibilidad con typeahead en el terminal de IntelliJ IDEA predice las modificaciones de texto y las muestra instantáneamente en gris claro. Esta función le permite escribir en el terminal con la misma rapidez, tanto si trabaja en una máquina local como en una remota.

Depurador

Evaluar expresiones desde el depurador

Evaluar expresiones desde el depurador

En esta versión, hemos mejorado la visibilidad de la funcionalidad Evaluate. Antes, cuando los usuarios necesitaban evaluar algo, muchos recurrían a las inspecciones. Simplemente creaban una inspección y luego la eliminaban, en lugar de utilizar el cuadro de diálogo Evaluate. Ahora se puede acceder al campo Evaluate directamente desde la ventana de herramientas Debug, lo que hace más evidente la forma más conveniente de evaluar las expresiones.

Marcos de trabajo y tecnologías

Solicitudes gRPC en el cliente HTTP
Ultimate

El cliente HTTP de IntelliJ IDEA ofrece compatibilidad básica con las solicitudes gRPC. Cuando se teclea la palabra clave GRPC para iniciar la solicitud, el cliente HTTP ofrece la finalización del código. Así, su IDE le pregunta sobre todos los servicios gRPC conocidos, los métodos unarios y de streaming de servidor de un servidor en particular y, lo más importante, los campos del cuerpo de la solicitud.

Otra nueva funcionalidad le permite generar una solicitud gRPC en el cliente HTTP. Para ello, basta con hacer clic en los iconos del medianil en sus archivos .proto.

Respuestas binarias en el cliente HTTP

Respuestas binarias en el cliente HTTP
Ultimate

El cliente HTTP puede detectar imágenes en las respuestas y mostrar vistas previas de estas en la consola de respuestas.

Compatibilidad con flujos de texto y flujos JSON en el cliente HTTP
Ultimate

Cuando se prueban aplicaciones de streaming en IntelliJ IDEA, ya no es necesario esperar a que termine un stream, porque el cliente HTTP mostrará el resultado sobre la marcha. Esto es ahora posible porque hemos añadido compatibilidad con los siguientes tipos de contenido: text/event-stream, application/stream+JSON y application/x-ndjson. También se le notificará cuando termine un stream.

Redirección del resultado a un archivo o directorio personalizado en el cliente HTTP
Ultimate

En el cliente HTTP, es posible redirigir el resultado a un archivo o directorio personalizado. Puede utilizar dos operadores para las redirecciones forzadas y suaves:

  • El operador >> siempre crea un nuevo archivo, añadiendo un sufijo -n al nombre del archivo si el nombre del archivo solicitado ya existe.
  • El operador >>! reescribe el archivo si ya existe.

Compatibilidad con identificadores de solicitudes HTTP
Ultimate

Puede añadir identificadores de solicitud como comentarios a través de @name o como texto en el primer separador (###). El IDE entiende estos identificadores y le permite invocar solicitudes por su parte desde la ventana de herramientas Services, así como desde los cuadros de diálogo Ejecutar configuración, Run Configuration, Run Anything y Search Everywhere.

Compatibilidad con el idioma de las plantillas Qute

Compatibilidad con el idioma de las plantillas Qute
Ultimate

Qute se encuentra ahora entre los lenguajes de plantillas compatibles. Esto significa que IntelliJ IDEA ofrece resaltado de código, autocompletado y otras funcionalidades útiles para ayudarle a desarrollar plantillas para su proyecto Quarkus.

Las referencias se resuelven y completan a partir de archivos de especificaciones secundarias

Las referencias se resuelven y completan a partir de archivos de especificaciones secundarias
Ultimate

IntelliJ IDEA puede detectar si las especificaciones de la OpenAPI se encuentran en varios archivos y están vinculadas a través de $ref, y ofrecerá finalización.

Nuevas anotaciones Blocking y Non-Blocking para el código reactivo

Nuevas anotaciones Blocking y Non-Blocking para el código reactivo
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. Una vez que añada 'org.jetbrains:annotations:23.0.0' a las dependencias de su proyecto, podrá anotar sus clases y métodos como @Blocking o @NonBlocking. Esto hará posible que el IDE detecte las llamadas bloqueantes en contextos no bloqueantes, como las corrutinas de Kotlin o el código reactivo con Project Reactor, RxJava y SmallRye Mutiny.

Además, el IDE admite automáticamente las anotaciones correspondientes de Micronaut y SmallRye Mutiny.

Mejora de la detección de código bloqueante en Spring y Java EE

Mejora de la detección de código bloqueante en Spring y Java EE
Ultimate

IntelliJ IDEA ahora detecta más casos de código bloqueante en Spring y Java EE, incluyendo JpaRepository y CrudRepository de Spring Data, RestTemplate y JdbcTemplate, métodos de interfaz de Spring Feign, llamadas a JPA EntityManager, y cualquier método y clase anotada como @Transactional.

Configuraciones renovadas de Spring Boot

Configuraciones renovadas de Spring Boot
Ultimate

Hemos rediseñado el cuadro de diálogo Run/Debug Configurations para los proyectos de Spring Boot. El diseño es similar a las configuraciones actualizadas anteriormente para Java. La nueva interfaz presenta los ajustes clave en una sola pantalla y permite configurar más parámetros a través de Modify Options.

Mejora de la compatibilidad con los archivos de aplicación de Spring Boot

Mejora de la compatibilidad con los archivos de aplicación de Spring Boot
Ultimate

IntelliJ IDEA ofrece ahora finalización de código en archivos de configuración adicionales (propiedades o archivos .yaml ) cuando se utiliza una clave spring.config.import para hacer referencia a otro archivo. También es mejor configurando archivos de configuración complejos y personalizados de Spring Boot.

Referencias a application.yaml

Referencias a application.yaml
Ultimate

Para los proyectos de Spring Boot, el IDE ahora es compatible con la finalización de código y los usos de búsqueda para las referencias a application.yaml de @Value, @Scheduled y Environment.getProperty().

Mejor compatibilidad con @NamedQuery utilizado desde los repositorios de Spring Data

Mejor compatibilidad con @NamedQuery utilizado desde los repositorios de Spring Data
Ultimate

La finalización del método de consulta ahora funciona con las consultas declaradas como @NamedQuery en los proyectos JPA de Spring Data. También puede navegar a la definición de una @NamedQuery a través del icono del medianil.

Compatibilidad con Kotlin para Java EE CDI
Ultimate

A partir de la v2021.3, puede utilizar todas las inspecciones CDI en los archivos Kotlin. Anteriormente, estas inspecciones solo funcionaban en archivos Java. Además, hemos añadido iconos del medianil de CDI en los archivos Kotlin. Estos le permiten navegar fácilmente a los puntos de inyección o a los candidatos a la inyección, a los creadores de beans, a los métodos de eliminación y a los eventos.

Mejora de los diagramas de clase UML
Ultimate

Hemos acelerado todos los procesos para los diagramas de clase UML, tanto en Java como en Kotlin. La apertura de los diagramas, el cambio en categorías, el zoom y la función de deshacer/rehacer ahora requieren mucho menos tiempo. Otros cambios notables son la nueva rejilla, el resaltado de los miembros y una vista previa rápida de la documentación.

Si necesita controlar la apariencia del diagrama, utilice el menú contextual y seleccione Appearance.

Herramientas para bases de datos

Agregados en el editor de datos

Agregados en el editor de datos
Ultimate

Hemos añadido la posibilidad de mostrar una vista Aggregate para un rango de celdas. Se trata de una función muy esperada que le ayudará a gestionar sus datos y le evitará tener que realizar consultas adicionales. Esto hace que el editor de datos sea más potente y fácil de usar, y lo hace más parecido a Excel y a Hojas de cálculo de Google.

Seleccione el rango de celdas para el que desea la vista, haga clic con el botón derecho y seleccione Show Aggregate View.

Asignación de la fuente de datos DDL y la fuente real

Asignación de la fuente de datos DDL y la fuente real
Ultimate

Esta versión es una continuación lógica de la anterior, que introdujo la posibilidad de generar una fuente de datos DDL basada en una real. Ahora, este flujo de trabajo es totalmente compatible. Puede:

  • Generar una fuente de datos DDL a partir de una real: consulte el anuncio 2021.2.
  • Asignar una fuente de datos DDL a una real.
  • Compararlas y sincronizarlas en ambas direcciones.

Tenga en cuenta que una fuente de datos DDL es una fuente de datos virtual cuyo esquema se basa en un conjunto de scripts SQL. Almacenar dichos archivos en el sistema de control de versiones es una manera de conservar su base de datos dentro de este sistema.

Hay una nueva pestaña en las propiedades de configuración de datos, DDL mappings, donde se puede definir qué fuente de datos real se asigna a cada fuente de datos DDL.

Asignación de la fuente de datos DDL y la fuente real

Nueva ventana de diff de base de datos
Ultimate

La nueva ventana Database Diff está disponible en el menú contextual. Tiene una mejor interfaz de usuario y muestra claramente en el panel derecho el resultado que obtendrá después de realizar la sincronización.

La leyenda del panel derecho muestra el significado de los colores que pueden aparecer en los resultados:

  • Verde y cursiva: el objeto se creará.
  • Gris: el objeto se eliminará.
  • Azul: el objeto se modificará.

La pestaña Script preview muestra el script resultante, que puede abrirse en la nueva consola o ejecutarse desde este cuadro de diálogo. El resultado de este script es la aplicación de cambios para que la base de datos de la derecha (destino) sea una copia de la base de datos de la izquierda (origen).

Además de la pestaña Script preview, hay dos pestañas más en el panel inferior: Object Properties Diff y DDL Diff, que muestran la diferencia entre las versiones concretas del objeto en las bases de datos de origen y de destino.

Niveles de introspección

Niveles de introspección
Oracle
Ultimate

Hemos introducido tres niveles de introspección para las bases de datos Oracle:

  • Nivel 1: nombres de todos los objetos compatibles y sus firmas, excepto los nombres de las columnas del índice y las variables de paquetes privados
  • Nivel 2: todo, excepto el código fuente
  • Nivel 3: todo

La introspección es más rápida en el nivel 1 y más lenta en el nivel 3. Utilice el menú contextual para cambiar el nivel de introspección según convenga.

El nivel de introspección puede establecerse para un esquema o para toda la base de datos. Los esquemas heredan el nivel de introspección de la base de datos, pero este también se puede establecer de forma independiente.

El nivel de introspección está representado por los iconos con forma de píldora situados junto al icono de la fuente de datos. Cuanto más llena esté la píldora, mayor será el nivel. El icono azul indica que el nivel de introspección se establece directamente, mientras que el gris indica que este se hereda.

Herramientas de control de calidad

Editor de objetos de página

Editar objetos de páginas de Selenium

Una gran actualización incorporó la compatibilidad con la automatización de pruebas de IU en Selenium; el editor visual ahora puede ayudarle a mantener las clases de objetos de página existentes. Anteriormente, solo era posible generar nuevas clases de objetos de página, pero ahora puede incluso actualizar las clases de objetos de página existentes directamente sin un editor visual. IntelliJ IDEA detectará automáticamente las clases de objetos de la página y las indicará con un icono correspondiente en el panel del medianil. Al hacer clic en ese panel del medianil, el usuario puede abrir un editor visual y tomar nuevos elementos para añadirlos a la clase de objeto de la página.

Datos de prueba

Datos de prueba

El complemento más reciente del kit de automatización de pruebas contiene algunas correcciones de errores menores, pero también una funcionalidad útil en la configuración del generador de datos múltiples. Ahora puede modificar el prefijo, el sufijo y el delimitador con una definición multilínea.

Gestión de pruebas

Jerarquía de ejecución de pruebas

Hemos implementado compatibilidad con la ejecución de pruebas multinivel. Ahora puede crear varias pruebas secundarias para dominios de funcionalidad específicos o tipos de pruebas. Cada prueba principal agrega los resultados de las pruebas secundarias y proporciona estadísticas resumidas de todas las pruebas subrelacionadas.

Pasos compartidos

Si decide gestionar los casos de prueba en archivos Markdown utilizando nuestra función «TMS local», podrá declarar fácilmente los pasos de prueba y compartirlos entre varios casos de prueba. Los pasos compartidos se declaran como un caso de prueba normal con un ID numérico único. Puede hacer referencia a ese caso de prueba en otros casos de prueba e IntelliJ IDEA sustituirá esos pasos del caso de prueba referenciado cuando genere vistas previas, ejecuciones de prueba o plantillas de código para una prueba automática.

Kubernetes

Mejora del formato de las plantillas de Helm

Mejora del formato de las plantillas de Helm
Ultimate

Puede formatear sus plantillas de Helm y saber con seguridad que obtendrá el resultado correcto. Hemos solucionado todos los problemas relacionados, y el formateo es ahora mucho más fiable. Para ver la mejora, vaya a Code | Reformat code or Reformat file o pulse ⌥⌘L en macOS o Ctrl+Alt+L en Windows y Linux.

Resaltado de elementos de bloque en las plantillas de Helm

Resaltado de elementos de bloque en las plantillas de Helm
Ultimate

Hemos añadido el resaltado de elementos de bloque como if, else, range, with y define en las plantillas de Helm. Esto hace que sea mucho más fácil trabajar con código que contiene inclusiones de plantillas Go.

Inyección de lenguajes en recursos ConfigMap

Inyección de lenguajes en recursos ConfigMap
Ultimate

IntelliJ IDEA ahora admite inyecciones automáticas de código de varios lenguajes en recursos ConfigMap para claves con extensiones como .yaml, .json, .properties, etc. Los fragmentos de código inyectados se resaltan en verde, y es posible utilizar nuestra funcionalidad de información del código dentro de ellos, incluyendo la finalización del código, el resaltado de errores y otros.

Posibilidad de repetir el último comando

Posibilidad de repetir el último comando
Ultimate

Ahora es posible volver a ejecutar su último comando de Helm desde la ventana de herramientas Services. Solo tiene que hacer clic en el nuevo icono de la esquina superior derecha. Por ejemplo, ejecute el comando helm lint y, después de que se complete, puede hacer clic en el icono para repetirlo.

Docker

Conexión a Docker desde Minikube

Conexión a Docker desde Minikube

Ahora es fácil conectarse a un daemon Docker desde Minikube. En Preferences/ Settings | Build, Execution, Deployment, seleccione el botón radial Minikube. En el campo adyacente, el IDE mostrará automáticamente los entornos docker-daemon de Minikube detectados que puede utilizar para conectarse.

Proceso de conexión más fácil

Proceso de conexión más fácil

La conexión a Docker es ahora más rápida, ya que basta con hacer doble clic en el nodo necesario o utilizar el nuevo atajo: ⌘Intro en macOS o Ctrl+Intro en Windows y Linux. La acción Start container también se puede invocar con este acceso directo.

Nueva acción Clean up

Nueva acción Clean up

The new Clean up action works just like the prune terminal command. Al hacer clic con el botón derecho en el nodo Networks, Volumes, Containers o Images, puede seleccionar Clean up, y el IDE eliminará los objetos no utilizados. También puede aplicar esta acción al nodo raíz de Docker para eliminar todos los objetos innecesarios en un solo clic.

Compatibilidad con Compose V2

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

Para activar esta opción, vaya a Preferences/Settings | Build, Execution, Deployment | Docker | Tools y marque la casilla Use Compose V2.

Capas de imágenes

Capas de imágenes

Image layers allow you to track all the commands that are applied to images. Para acceder a ellas, seleccione una imagen y vaya a la pestaña Layers. A partir de ahí, cuando elija un comando, puede hacer clic en el enlace Analyze image for more information, situado en la parte derecha de la pantalla, para obtener información más detallada sobre los cambios aplicados a cada capa.

Guardar contenedor como imagen

Guardar contenedor como imagen

Si tiene un contenedor preconfigurado que desea usar más tarde, puede guardarlo como imagen localmente y hacer push para seguir usándolo remotamente cuando lo necesite. Vaya a la ventana de herramientas Services, haga clic con el botón derecho del ratón en el contenedor y seleccione Analyze image for more information.

Actualizaciones del registro

Hemos añadido varios cambios al registro de Docker. First off, the IDE now displays all available registries in separate nodes in the Services tool window. Anteriormente solo teníamos compatibilidad con el registro de Docker Hub. En la v2021.3, hemos añadido la compatibilidad con GitLab (registry.gitlab.com) y JetBrains Space (<username>.registry.jetbrains.space).

Puede ampliar los nodos del registro en la ventana de herramientas Services, seleccionar la imagen necesaria y extraerla a la ubicación deseada. Si tiene varias conexiones Docker, el IDE le preguntará de dónde extraer la imagen. Es posible hacer push de las imágenes a cualquier registro añadido, y en el cuadro de diálogo Push el IDE detecta de forma automática los espacios de nombres disponibles en el registro indicado y le permite seleccionar uno de la lista desplegable.

Por último, pero no por ello menos importante, puede utilizar la finalización de imágenes desde los registros de JetBrains Space, GitLab y Docker Hub.

Compatibilidad con Podman

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

Una vez que Podman se haya instalado y configurado en su sistema operativo, puede conectarse a él a través de Preferences/Settings | Build, Execution, Deployment | Docker seleccionando el botón radial de TCP socket y rellenando los campos requeridos.

Integración con Space

Crear solicitudes de fusión y revisiones de código desde el IDE

Ahora puede crear solicitudes de fusión y revisiones de código para sus proyectos en Space. Tiene dos opciones diferentes:

  • Haga clic en el icono + de la barra de herramientas superior de la ventana de herramientas Code Reviews y seleccione la acción que desee.
  • En la pestaña Log de la ventana de herramientas Git, haga clic con el botón derecho en la confirmación de la lista y seleccione Space | Create merge request o Create code review.

Para obtener más detalles, consulte esta entrada del blog o consulte los gifs que aparecen más abajo.

Marcar archivos como vistos

Marcar archivos como vistos

Todos los archivos que aún no haya revisado al realizar una revisión del código permanecerán marcados con puntos azules hasta que los abra. De este modo, no se perderá ningún cambio esencial. Si desea volver a los cambios más adelante, puede seleccionar Mark as Not Viewed en el menú contextual. Esta funcionalidad también funciona para las solicitudes de extracción de GitHub.

Otros