Novedades de IntelliJ IDEA 2021.1

IntelliJ IDEA 2021.1 introduce la compatibilidad con Java 16 y WSL 2, la integración con Space, Code With Me, una ventana de vista previa HTML dentro del IDE, la opción de ejecutar código en hosts SSH y en contenedores Docker, y otras actualizaciones útiles. ¡Puede ver este vídeo de resumen o seguir leyendo para conocer en detalle los cambios más significativos!

Integración con Space

Integración con Space

Integración con Space, nuestra nueva plataforma para el desarrollo de software y colaboración en equipo, ya está disponible y lista para usar. Puede conectarse con su organización en JetBrains Space a través de Get from VCS, que se encuentra justo en la pantalla de bienvenida. Cuando haya iniciado sesión, podrá ver y clonar los repositorios de los proyectos, revisar el código de sus compañeros y escribir scripts de automatización de Space.

Asistencia WSL 2

Dependencias externas de UX

Compatibilidad con WSL2 para proyectos Java

¡Sabemos que llevaba tiempo esperando esta actualización! Ahora puede trabajar con proyectos Java ubicados en WSL 2 en IntelliJ IDEA. El IDE puede detectar instalaciones de JDK, instalar JDK y compilar y ejecutar proyectos de Maven y Gradle, además de proyectos que usen el sistema de build de IntelliJ IDEA.

Desarrollo colaborativo

Integración con Space

Code With Me, un servicio para el desarrollo colaborativo y la programación en pares, ahora se incluye listo para usar en IntelliJ IDEA. También cuenta con llamadas de vídeo y audio para llevar al siguiente nivel la colaboración a distancia. Siempre que quiera hablar con sus compañeros, puede iniciar llamadas de audio y vídeo directamente desde el IDE de JetBrains. Code With Me funciona a la perfección tanto para reuniones entre dos personas como para sesiones de grupo, a las que puede invitar a docenas de participantes. Para obtener más información acerca de estas actualizaciones, lea nuestra entrada del blog.

Run Targets

Integración con Space

La funcionalidad Run Targets le permite ejecutar, probar, perfilar y depurar su aplicación en contenedores Docker o en máquinas remotas. Actualmente, IntelliJ IDEA Ultimate le permite ejecutar aplicaciones Java, pruebas de JUnit y proyectos de Maven, Gradle, Micronaut, Quarkus basado en Maven y Spring Boot en destinos Docker, SSH y WSL. Para obtener más información, consulte esta entrada del blog.

Experiencia de usuario

Vista previa HTML del editor

Vista previa HTML integrada

La nueva vista previa del navegador integrada le permite previsualizar los archivos HTML rápidamente. Para abrirla, haga clic en el icono con el logotipo de IntelliJ IDEA en el widget de la esquina superior derecha del editor. Si realiza algún cambio en el código HTML o si cambia los archivos CSS y JavaScript enlazados, la vista previa se actualizará sobre la marcha.

Dependencias externas de UX

Personalización de las dependencias externas en el ámbito de búsqueda

Hemos hecho el ámbito de búsqueda más personalizable. Puede definir las dependencias externas para que se incluyan en el ámbito o para que se excluyan. Vaya a Preferences/Settings | Appearance & Behavior | Scopes y utilice los botones a la derecha para cambiar el estado de External Dependencies.

Visor de memoria HPROF

Acceso rápido a los proyectos recientes en Windows

Hemos actualizado la compatibilidad con las listas de accesos directos de Windows para que sea posible abrir los proyectos recientes haciendo clic con el botón derecho en el icono de IntelliJ IDEA en la barra de tareas o en el menú Inicio.

Accesibilidad mejorada

Una de nuestras prioridades clave es hacer nuestro IDE más accesible para todos los usuarios. En esta versión, hemos añadido más etiquetas para los elementos de la interfaz de usuario en la pantalla de bienvenida, en la vista Project Structure y en el registro de VCS. Estos elementos, al igual que los iconos del medianil, ahora se leen correctamente al habilitar un lector de pantalla. También estamos trabajando para mejorar la accesibilidad para los usuarios de macOS.

Sincronización del modo de contraste alto en Windows con el tema del IDE

Ahora su IDE aplicará de forma automática el tema de contraste alto cuando abra el IDE por primera vez si utiliza el modo de contraste alto en Windows.

Control de la versión

Compatibilidad con las solicitudes de incorporación de cambios

Mejor compatibilidad con las solicitudes de incorporación de cambios

La creación de solicitudes de incorporación de cambios ahora lleva menos tiempo: solo tiene que hacer clic en el icono + en la vista Pull Requests y rellenar todos los datos. Las pestañas nuevas en la parte superior de la vista contienen toda la información sobre su solicitud de incorporación de cambios. Si hace doble clic en cualquier archivo en la pestaña Files, el IDE abrirá la diff dentro del editor. También tendrá compatibilidad con las plantillas de solicitud de incorporación de cambios, que contienen el texto de la descripción para todas sus solicitudes de incorporación de cambios.

Plantilla de confirmación de Git

Compatibilidad con una plantilla de confirmación de Git

IntelliJ IDEA es compatible con las plantillas de confirmación de Git. Si quiere crear un mensaje de confirmación personalizado, puede utilizar una plantilla y rellenarla con la información que considere importante. El IDE mostrará este texto como un mensaje de confirmación inicial.

Inspecciones previas a la confirmación

Configure un perfil para las inspecciones previas a la confirmación

Ahora es sencillo elegir un perfil de inspección de código antes de confirmar los cambios a VCS. Haga clic en el icono de la rueda dentada para mostrar las opciones de confirmación, marque la casilla de verificación Analyze code, haga clic en Choose profile y seleccione el perfil deseado. Su IDE lo utilizará para inspeccionar su código antes de la confirmación.

Consejos de inserción de URL

Obtener archivos de otra rama

En v2021.1, puede obtener un archivo de otra rama en el cuadro de diálogo Compare with branch. Solo tiene que seleccionar el archivo que quiere obtener y hacer clic en el nuevo icono de flecha abajo situado junto a Show diff.

Ramas mejoradas

Save to Shelf

La nueva acción Save to Shelf le permite copiar sus cambios al Shelf al tiempo que los mantiene en los cambios locales. Puede acceder a esta acción pulsando ⇧⌘A en macOS (Ctrl+Mayús+A en Windows o Linux) y escribiendo «Save to Shelf».

Integración con Perforce

El complemento de Perforce ahora es totalmente compatible con IntelliJ IDEA Community Edition y se incluye integrado con su IDE. The source code for this plugin is available on GitHub.

Editor

Fuente ajustable

Opciones del espesor de fuente

Elegir una fuente para el editor que se pueda leer sin dificultad durante muchas horas de programación resulta fundamental. La configuración de tipografía añadida recientemente facilita un poco esta elección y la hace más personalizada. En v2021.1, puede ajustar el espesor de los estilos de fuente principal y negrita en Preferences / Settings | Editor | Fonts.

Maximizar pestañas en la vista dividida

Maximizar pestañas en la vista dividida

Cuando hay abiertas varias pestañas que dividen el editor verticalmente, puede hacer doble clic en cualquiera de ellas para maximizar la ventana del editor para esa pestaña concreta. Para devolver la ventana a su tamaño original, simplemente haga doble clic en ella de nuevo.

Compatibilidad con JSONPath

IntelliJ IDEA ahora es compatible con las expresiones de JSONPath con las sintaxis Goessner o Jayway. Para los archivos JSON, puede llamar la acción Evaluate JSONPath Expression desde Edit | Find para escribir consultas en JSONPath. Para los archivos que contienen partes escritas en JSONPath, puede utilizar la misma funcionalidad y añadir una entrada JSON para probar su consulta JSONPath.

Compatibilidad con JSON Lines

Compatibilidad con JSON Lines

IntelliJ IDEA has support for the newline-delimited JSON Lines format, which is used for working with structured data and logs. El IDE reconocerá los tipos de archivo .jsonl, .jslines, .ldjson y .ndjson.

Perfilador Ultimate

Hemos rediseñado la interfaz de usuario del perfilador. La ventana Home se ha vuelto mucho más informativa, y ahora se puede adjuntar un perfilador al proceso con mayor rapidez. También hemos añadido dos nuevas opciones a las que se puede acceder haciendo clic con el botón derecho en una aplicación en ejecución: Capture Memory Snapshot, para hacer capturas de pantalla *.hprof de sus aplicaciones, y CPU and Memory Live Charts, que abre una pestaña con herramientas de visualización para controlar el consumo de recursos.

Java

Compatibilidad con Java 16

IntelliJ IDEA tiene compatibilidad básica con Java 16, que se publicó en marzo de 2021. Entre las actualizaciones se incluye la posibilidad de una clase interna para declarar miembros que sean explícita o implícitamente estáticos y cambios en Stream.collect(toUnmodifiableList()), que ahora se convierte en stream.toList(). El IDE muestra el elemento toList() primero en la lista de finalización de código para secuencia.

Nuevas inspecciones para el análisis del flujo de datos

IntelliJ IDEA puede avisarle cuando se inicializan vectores con un tamaño negativo. También puede reconocer los métodos Arrays.copyOf() y Collection.toArray(). Además, el IDE admite métodos para abrir o convertir enteros, como Integer.longValue y Byte.intValue.

Otras inspecciones nuevas y mejoradas

Ahora puede evitar las conversiones innecesarias restringiendo el tipo de parámetro del bucle for-each. Otra inspección le permite simplificar la sintaxis del código intercambiando las llamadas .filter() y .map() si el filtro utiliza el mismo valor que produce el asignador. Además, la inspección que reemplaza StringBuffer por StringBuilder se ha actualizado para abarcar más casos.

Formateo para métodos de compilador encadenado

Las nuevas opciones de formateo para métodos de compilador encadenado ayudan a mejorar su legibilidad. Puede configurar el formateador en Preferences/Settings | Editor | Code Style | Java | Wrapping and Braces dentro de la lista desplegable Chained method calls. La opción Builder methods le permite crear una lista de métodos que el IDE percibe como métodos de compilador, lo que provoca que se coloque cada uno en una línea separada. Cuando se marca la casilla de verificación Wrap first call, el primer método de compilador también aparecerá en una línea separada. También puede añadir sangrías manualmente, y si marca la casilla de verificación Keep builder methods indents, el IDE las dejará intactas.

Kotlin

Resaltado más rápido para Kotlin

Resaltado más rápido de los problemas en el código

El análisis del código sobre la marcha permite detectar errores y advertencias mucho más rápido. En comparación con las versiones anteriores, IntelliJ IDEA 2021.1 resalta los problemas del código casi al instante. El mecanismo de finalización de código ahora funciona mucho más rápido, y la capacidad de respuesta del IDE ante los bloqueos ha mejorado.

Resaltado más rápido para Kotlin

Finalización de código mejorada

El mecanismo de finalización de código en Kotlin ofrece funciones que requieren parámetros de tipo. Una vez que selecciona una función de este tipo, el IDE añade el parámetro de tipo correcto al código previo.

Mejor cobertura de código

El ejecutor de cobertura de código de IntelliJ IDEA ahora es totalmente compatible con Kotlin en las corrutinas y funciones inline.

Mejoras de refactorización

Hemos rediseñado la interfaz de usuario de la refactorización Change Signature y hemos añadido una nueva casilla de verificación que le permite definir el parámetro añadido como predeterminado.

Actualizaciones del depurador para Kotlin

El depurador de IntelliJ IDEA puede evaluar las expresiones get en Kotlin y mostrarlas en la vista Variables. Su IDE también le permite acceder directamente a la fuente desde ahí.

UML para Kotlin

Diagramas de clase UML para Kotlin

Los diagramas de clase UML ahora funcionan para el código Kotlin compilado para JVM y pueden mostrar tanto clases Java como Kotlin. Planeamos admitir diagramas UML para otros backends Kotlin pronto.

Scala

Kinds en Type Diff

Kinds en type diffs

Los desarrolladores de Scala no utilizan siempre los tipos de clase superior (higher-kinded type), pero cuando lo hacen, les gusta hacerlo con estilo. La descripción emergente de type diff ahora admite kinds.

Finalización con aprendizaje automático

Finalización con aprendizaje automático

Esta versión introduce la finalización de código Scala basada en aprendizaje automático. Puede habilitar la funcionalidad en Settings | Editor | Code Completion | ML | Scala.

Phases y Units en los gráficos de compilación

Además de los módulos, los gráficos de compilación ahora pueden mostrar fases y unidades, de modo que puede obtener una visión incluso más detallada de su compilación. Abra la ventana de herramientas Build, seleccione el nodo Chart y seleccione el nivel deseado (Level).

Plantilla de complemento para IntelliJ Platform

Plantilla de complemento para IntelliJ Platform

The sbt-idea plugin makes it possible to develop IntelliJ Platform plugins using Scala and sbt. Ahora existe una plantilla del asistente de proyecto integrada para que el proceso sea incluso más sencillo (esta funcionalidad depende del Plugin DevKit).

Herramientas de compilación

Visor de memoria HPROF

Hemos recuperado la posibilidad de personalizar los ajustes al importar proyectos Maven. Para activar esta opción, seleccione Show settings dialog for new Maven projects en File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | Maven.

Marcos de trabajo y tecnologías Ultimate

Compatibilidad con las solicitudes de incorporación de cambios

Nueva inspección para reemplazar http://

Su IDE ahora puede resaltar las utilizaciones del protocolo http:// y ofrecerle el cambio a https://. Esta inspección está habilitada de forma predeterminada. Puede añadir URL a la lista de URL ignoradas o deshabilitar la inspección de el proyecto en su totalidad o parcialmente en Preferences/Settings | Editor | Inspections | SecurityLink with unencrypted protocol.

Compatibilidad con las solicitudes de incorporación de cambios

Cliente HTTP mejorado

Si ejecuta una solicitud desde el cliente HTTP, la respuesta aparece en la ventana de herramientas Services, que cuenta con actualizaciones en la interfaz/experiencia de usuario en esta versión. Puede contraer la respuesta en formato HTML, JSON o XML, así como copiar su cuerpo, ocultar números de línea, seleccionar el formato de visualización y desplazarse rápidamente hasta el principio o el final de la respuesta.

Compatibilidad con SSL en el cliente HTTP

Compatibilidad con SSL en el cliente HTTP

Es posible configurar los ajustes de SSL en el cliente HTTP si utiliza la autenticación de cliente SSL para los protocolos https://. Para hacerlo, haga clic en Add environment file y seleccione Private. El IDE creará de forma automática un archivo en el que podrá añadir sus configuraciones de SSL. La finalización de código le ayudará con esto.

Compatibilidad con la interfaz de usuario Swagger

Nuevos asistentes de proyecto para los marcos de trabajo JVM

Hemos rediseñado los asistentes para crear proyectos Spring, Micronaut, Quarkus y MicroProfile. ¡La creación de un proyecto nuevo solo requiere dos pasos! Toda la información básica se agrupa convenientemente en la primera pantalla, mientras que la segunda pantalla contiene ajustes específicos del marco de trabajo. La nueva interfaz de usuario es más clara y simplifica el proceso de creación del proyecto.

Compatibilidad con las solicitudes de incorporación de cambios

Compatibilidad mejorada con JPA

Hemos añadido iconos rediseñados al medianil para los proyectos que incluyen entidades JPA. Se puede hacer clic en estos iconos y contienen una lista con las acciones más útiles para las entidades y sus atributos. También hemos mejorado la compatibilidad con JPA en los proyectos Kotlin y de varios módulos.

Consola JPA para Jakarta EE 9

Consola JPA para Jakarta EE 9

Ahora se puede utilizar la consola JPA para escribir y ejecutar consultas JPQL en los proyectos Jakarta EE 9.

Nuevo esquema de color para los diagramas UML

Nuevo esquema de color para los diagramas UML

Tenemos buenas noticias para quienes usan nuestro tema claro: el diagrama UML incluye un nuevo esquema de color con un aspecto más claro y fácil de leer.

Mejoras de Swagger

Swagger admite especificaciones con referencias de archivos externos ($ref). Además, la vista Structure para los archivos de especificaciones cuenta con más nodos, incluidos Security, Callbacks y Examples.

Generador de objetos de página de Selenium

IntelliJ IDEA ahora admite una herramienta experimental para detectar los elementos DOM de una aplicación web. Antes de utilizarla, instale el complemento Selenium UI Testing.

Puede acceder a esta nueva herramienta desde Tools | Generate Selenium Page Object. En el cuadro de diálogo que se abre, introduzca la dirección de una página web, seleccione cualquier elemento DOM y añádalo al área de debajo. En ella, puede cambiar el lenguaje o el marco de trabajo del elemento. Nuestro generador de objetos de página es compatible con Java, Kotlin y Groovy, y con marcos de trabajo como Selenium, FluentLenium, Selenide, Geb, Atlas y JDI Light.

Puede personalizar las plantillas de código de cada marco de trabajo.

Kubernetes Ultimate

Eliminación rápida de recursos

Eliminación rápida de recursos

Es posible eliminar todos los recursos del clúster en el contexto actual desde el editor; simplemente haga clic en el icono Run del medianil y seleccione Delete.

Compatibilidad con componentes Kustomize 3.7.0

Puede elegir los nuevos componentes Kustomize 3.7.0 en la lista desplegable de la versión de Kustomize en Settings/Preference | Languages & Frameworks | Kubernetes.

Compatibilidad con kind: List

Compatibilidad con kind: List

Si necesita trabajar con lo que devuelve el comando kubectl get <resource type> -o yaml u organizar recursos en listas, el IDE ahora admite kind: List. En cada recurso de la lista, puede cambiar el nombre de las etiquetas y utilizar la asistencia a la codificación y la navegación a través de los iconos del medianil. También puede convertir una lista a un archivo YAML multidocumento y viceversa.

Valores no predeterminados para los proyectos Helm

Ahora es posible crear archivos values.yaml personalizados. El IDE considera los archivos que contienen «values» en el nombre como archivos de valores. Seleccione Configure Helm Parameters, Helm Lint o Helm Template en el menú contextual para abrir un cuadro de diálogo en el que puede configurar qué archivos de valores utilizará la plantilla de gráfico. También puede añadir valores manualmente pegándolos en el campo Additional values de este cuadro de diálogo.

Docker

Configuraciones de ejecutar/depurar mejoradas

El cuadro de diálogo Run/Debug Configuration ahora es más conciso y ajustable. 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. Admitimos todas las opciones existentes para Docker Compose. La finalización de código ahora funciona para los parámetros Run Options e Image ID or name de Dockerfiles.

Compatibilidad con BuildKit

Compatibilidad con BuildKit

Hemos añadido una compatibilidad experimental con BuildKit, que agiliza la creación de proyectos. Además, la creación de etapas con nombre por separado de todo el Dockerfile multietapa ahora es más sencillo. 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.

Mejoras de la interfaz de usuario en Dockerfiles multietapas

Mejoras de la interfaz de usuario en Dockerfiles multietapas

Si utiliza Dockerfiles multietapas, ahora puede plegar las etapas y ver una línea de separación entre ellas.

Cancelación de la ejecución de Docker

Cancelación de la ejecución de Docker

Es posible detener su ejecución del Dockerfile rápidamente. Para hacerlo, vaya a la ventana de herramientas Services, seleccione el elemento en ejecución, invoque el menú contextual y haga clic en Stop Deploy.

Variables de entorno y macros para los montajes Docker

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 imágenes en Dockerfiles

Finalización de imágenes en Dockerfiles

La finalización de código ahora funciona con los nombres de imágenes.

JavaScript Ultimate

Compatibilidad mejorada para Stylelint

Inspecting your CSS code with Stylelint is now easier. 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 Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint.

Documentación de MDN integrada

MDN documentation is now bundled with IntelliJ IDEA. 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.

Especificidad de los selectores para las hojas de estilo

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 F1/Ctrl+Q para ver esta información en la ventana emergente Documentation.

Herramientas para bases de datos Ultimate

Para obtener una descripción más detallada de estas y otras actualizaciones de las herramientas de bases de datos, consulte Novedades.

Interfaz de usuario para derechos de acceso

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 Cmd/Ctrl+F6, ahora tiene una interfaz de usuario para añadir permisos a los objetos. Estas actualizaciones están disponibles para PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server y Sybase.

Plantillas activas de contexto

Plantillas activas de contexto

Hemos introducido una solución para generar declaraciones sencillas directamente desde el explorador de bases de datos: las plantillas activas. Puede añadir sus propias plantillas o editar las existentes a través de Preferences/Settings | Editor | Live Templates en el nodo SQL.

Copiar y pegar en bases de datos

Acciones sencillas

Hemos simplificado la navegación: al invocar Go to declaration (Ctrl/Cmd+B) en un objeto en SQL ahora le lleva al DDL, y no al árbol de la base de datos. También hemos introducido un acceso directo para la acción Select in database tree: Alt+Mayús+B para Windows/Linux y Opción+Mayús+B para macOS.

Mejor clasificación de la base de datos

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. Si quiere utilizar la clasificación en el lado del cliente (IntelliJ IDEA no volverá a ejecutar la consulta ni ordenará los datos dentro de la página actual), desmarque Sort via ORDER BY. Otra actualización es que la clasificación no se «acumula» de forma predeterminada; si hace clic en el nombre de una columna para ordenar los datos, la clasificación según las otras columnas se ignorará.

Copiar y pegar en bases de datos

Facilidad para copiar y pegar fuentes de datos

Los accesos directos más famosos del mundo, Ctrl/Cmd+C/V/X ahora funcionan para copiar, cortar y pegar fuentes de datos. Cuando copia una fuente de datos, el XML se copia al portapapeles y después puede compartirlo a través de una aplicación de mensajería. También puede usar la opción de pegar para pegar un extracto de XML que proceda de otro lugar. Si corta y pega una fuente de datos dentro de un proyecto, simplemente se moverá, sin necesidad de contraseña. La contraseña es necesaria en el resto de casos.

Editar datos en MongoDB

Editar datos en MongoDB

Ahora puede editar datos en las colecciones MongoDB. También está disponible una vista previa de la instrucción. Para hacer que la edición sea más flexible, hemos introducido la posibilidad de cambiar el tipo de un campo desde la interfaz de usuario. Esto se puede hacer desde el menú contextual del campo o en el editor de valores.

Otros

Compatibilidad con índices compartidos integrada

La compatibilidad con los índices compartidos disponibles públicamente está integrada en IntelliJ IDEA Community Edition. No necesita instalar un complemento especial. En su lugar, puede utilizar la funcionalidad de índices compartidos desde el IDE.

Android

IntelliJ IDEA ahora es compatible con todas las actualizaciones de Android Studio 4.1.1.

Compatibilidad con bnd-maven-plugin

IntelliJ IDEA ahora puede importar la configuración de las facetas OSGI desde bnd-maven-plugin.