Novedades en IntelliJ IDEA 2019.1

Temas

Personalización de temas

¡Tenemos grandes noticias para usted! IntelliJ IDEA 2019.1 incluye soporte oficial para temas personalizados. Ahora puede crear fácilmente sus propios temas. Más información.

Hemos creado algunos temas totalmente nuevos para que empiece. Añada más color a su IDE inmediatamente descargando uno de los temas nuevos y seleccionándolo como su tema en la configuración de apariencia. Más información.

Java

Compatible con expresiones de conmutación de Java 12 (vista previa)

IntelliJ IDEA 2019.1 es compatible con la funcionalidad de vista previa de Java 12, expresiones de conmutación, según JEP 325.

Contamos con una serie de nuevas inspecciones y arreglos rápidos para ayudarle a comenzar. El IDE puede detectar cualquier declaración de conmutación «switch» que puede sustituirse por una declaración de conmutación mejorada o expresión y ofrecerá un arreglo rápido para la conversión. El IDE detectará también ramas duplicadas en «conmutación» y ofrecerá un arreglo rápido para combinarlas. Y esto es solo la punta del iceberg.

Más información

Mejoras de refactorización de extraer variables

La refactorización «Extract variable» se ha mejorado de forma considerable y ahora preserva la semántica incluso mejor que antes. El IDE puede extraer una variable incluso del inicializador de campo y la refactorización de extraer variable puede convertir un ternario en «si» de forma automática cuando la condición es importante. La condición se considera importante si tiene una comprobación de valores null o la comprobación «instanceof».

Resaltado preciso de advertencia en expresiones ternarias

IntelliJ IDEA 2019.1 asegura un resaltado más preciso de advertencia para expresiones ternarias. Solo resaltará una condición en la que se detecte una violación de nulabilidad (mientras que antes se resaltaba toda la expresión ternaria, aunque la nulabilidad solo se violara en una sola rama).

Gracias a esta nueva funcionalidad, el resaltado también es más preciso en las expresiones de conmutación.

Análisis mejorado de operaciones matemáticas

El análisis de flujo de datos puede hacer un seguimiento del resultado de operaciones matemáticas y emplea esa información para advertirle de condiciones que son siempre verdaderas o falsas. Hemos mejorado el análisis de muchas operaciones matemáticas, incluidas multiplicaciones, restos y operaciones a nivel de bit.

Inferencia de la pureza desde fuentes

IntelliJ IDEA 2019.1 mejora su compatibilidad para las anotaciones @Contract. Ahora es posible inferir automáticamente la pureza de los constructores desde las fuentes.

Navegación desde traza de pila Java a la posición relevante dentro de una línea

Cuando hace clic en la traza de pila Java, el IDE intentará determinar la ubicación exacta dentro de la fila para llevar ahí el cursor. Antes, solo le llevaría a la primera columna de la fila correspondiente.

Detección de ramas de conmutación duplicadas

El IDE puede detectar ahora ramas de conmutación duplicadas y ofrece un arreglo rápido para combinar dichas ramas.

Gradle

Delegación de acciones de build y ejecución a Gradle por proyecto Gradle

Ahora es posible delegar las acciones de build y ejecución a Gradle para cada proyecto individualmente. Configure esta opción para cada proyecto Gradle si su proyecto IntelliJ IDEA consta de varios proyectos Gradle. Incluso puede establecer diferentes valores para el ejecutor de pruebas y el ejecutor de aplicación para el mismo proyecto.

En IntelliJ IDEA 2019.1, las acciones de build y ejecución se delegan a Gradle de manera predeterminada para los proyectos Gradle nuevos.

Selección adecuada de una tarea de prueba de Gradle para la ejecución desde el editor

Con IntelliJ IDEA 2019.1 hemos mejorado el soporte para proyectos con los varios conjuntos de orígenes de Gradle donde la ejecución de prueba se delega a Gradle. Ahora el IDE resuelve correctamente qué tarea debe ejecutarse cuando se ha ejecutado una prueba específica. Para elecciones con múltiples opciones, el IDE proporciona una lista de todas las tareas que pueden ejecutarse para esa prueba seleccionada.

HotSwap funciona cuando se delegan acciones de build a Gradle o Maven

Ahora, cuando esté depurando con las acciones de build delegadas a Gradle, el HotSwap se desencadena y construir un proyecto recarga clases.

HotSwap funciona también cuando se delegan acciones de build a Maven.

Maven

Salida de builds Maven notificada a la ventana de la herramienta de build

Por comodidad, todas las salidas de builds de Maven se mostrarán en un solo lugar: la ventana de la herramienta de build. Ya no es necesario comprobarlo en las ventanas de Run o Messages. También puede cambiar la vista y exponer la salida de builds como registro.

Diagramas de Maven mejorados

Los diagramas Maven se han mejorado y ampliado con nuevas opciones. Puede encontrar fácilmente los conflictos y dependencias duplicadas usando «Show Conflicts/Duplicates». Para ver todas las rutas al nodo, haga clic en «Show Paths: Root -> Selection».

Si solo necesita ver las dependencias de un nodo, seleccione «Show Neighbors of Selected Nodes». También puede cambiar el diagrama a la sin márgenes.

Control de versiones

Se han añadido acciones de Fixup y Squash al registro de VCS

Invoque las acciones Fixup y Squash desde el menú contextual de la pestaña de registro de VCS y esas acciones crearán confirmaciones con la fixup! ¡Y squash! mensajes de confirmación.

Posibilidad de seleccionar cuidadosamente solo algunos archivos del registro de VCS

Con IntelliJ IDEA 2019.1 ahora puede seleccionar cuidadosamente archivos desde la confirmación mientras se encuentra en el registro de VCS. Solo ha de invocar el menú contextual y seleccionar la opción «Apply Selected Changes».

Indicación de confirmaciones entrantes y salientes

Ahora existe la opción de ver la disponibilidad de confirmaciones entrantes y salientes para las ramas individuales en la ventana emergente Ramas. Tiene que activar la opción «Mark Branches that have incoming/outgoing commits in the Branches popup» en Preferences/Settings | Version Control | Git.

Posibilidad de restaurar los archivos con cambios aplazados borrados

Ahora puede ver todos los archivos borrados recientemente y restaurar cualquier archivo con cambios aplazados útil. Simplemente, use el nuevo nodo «Recently Deleted» en la pestaña Shelf de la ventana de herramientas VCS.

Nueva casilla de verificación «Uncheck all» (Desmarcar todos) para confirmaciones parciales en Git

Para que sea más práctico, hemos añadido una nueva casilla de verificación «Uncheck all» (Desmarcar todos) en el panel Diff del diálogo Commit Changes, por lo que ahora puede desmarcar con facilidad todos los fragmentos de código de una vez.

Modo para ver las iniciales de autor para anotaciones de VCS

Ahora puede ver las iniciales del autor en lugar del nombre completo en las anotaciones de VCS. Haga clic derecho en la pestaña de anotaciones y seleccione View | Names | Initials en el menú contextual.

Dif.

Adición de contenido de archivo en la ventana Blank Diff arrastrando y soltando

Ahora es posible copiar y pegar texto en la ventana Blank Diff arrastrando un archivo hasta ella.

Posibilidad de cambiar los lados de archivos comparados en el visor diff

Ahora puede intercambiar lados en el visor diff cuando lo abra con Compare two files, Compare with clipboard o Blank Diff. Para cambiar qué archivo se muestra en la derecha y cuál en la izquierda, solo tiene que seleccionar Swap Sides (Intercambiar lados).

Swap Sides (Intercambiar lados) también está disponible para comparar directorios.

Vista previa de diferencia por unidad de caracteres

Ahora puede ver la diferencia por unidad de caracteres y no solo por unidad de palabras, como sucedía antes en el visor diff. Esto podría ser bastante útil si su código fuente tiene líneas de caracteres de alfabetos diferentes, por ejemplo, japonés.

Ventana emergente de ubicaciones recientes

Conozca la completamente nueva ventana emergencia de navegación «Recent Locations», que muestra todas las ubicaciones visitadas y modificadas recientemente en el código. Todas las ubicaciones que ha visitado se ordenan de manera cronológica en esta ventana emergente con la ubicación que visitó más recientemente en la parte superior y la que visitó hace más tiempo en la inferior. Para invocar la ventana emergente «Recent Locations», pulse Cmd-Mayús-E / Ctrl+Mayús+E.

Depurador JVM Debugger

Compatibilidad de «synchronized», «assert» y «switch» en el evaluador del depurador

El evaluador del depurador ahora es compatible con instrucciones «synchronized», expresiones «assert» e instrucciones «switch».

Salida del bloque de código en el depurador JVM Debugger

Ahora es posible salir (Step Out) del bloque actual mientras está depurando el proyecto Java. Esta nueva acción está disponible desde el menú principal | Run.

Nuevo gesto de ratón «Run to mouse pointer»

Ahora, si prefiere emplear el ratón en el modo de depuración, puede pasar el cursor sobre una línea y el IDE la resaltará, si entonces hace clic en un número de línea, el IDE realizará la acción de ejecutar hasta el cursor.

Scala

Resaltado de for-comprehensions

IntelliJ IDEA 2019.1 incluye una compatibilidad mejorada de for-comprehensions, incluidos el resaltado de errores, consejos implícitos y las acciones GoTo / Quick Definition / Quick Documentation.

Find Usages (Buscar usos) para implícitos

Find Usages (Buscar usos) puede invocarse ahora en definiciones implícitas, métodos de apply / unapply, métodos for-comprehension y tipo Single Abstract Method (SAM).

Decompilar en Java

Ahora, incluso si los archivos Scala .class no tienen fuentes, puede decompilarlos a Java.

Versión Scalafmt personalizable

Con IntelliJ IDEA v2018.2 añadimos la compatibilidad para el formateador de scalafmt y, con esta versión, hemos mejorado esta capacidad. IntelliJ IDEA no solo le permite usar una versión personalizada de Scalafmt, sino que el IDE también puede descargar ahora la versión requerida por usted.

Complemento HOCON independiente

Hemos extraído el soporte de HOCON en un complemento y repositorio aparte que puede instalar y desinstalar según desee.

Mejoras en el resaltado de errores

En esta versión hemos mejorado de manera considerable el resaltado de errores en varias áreas como:

  • Unificación parcial y unificación de variable de escritura en general.
  • Resaltado del constructor, llamadas a constructores privados.
  • Complemento de compilador Better-monadic-for: función `implicit0`.
  • Kind-projector: lambdas polimórficos de nivel de valor.
  • Simulacrum: constructores de tipo de mayor aridad.

Groovy

Compatibilidad con sintaxis Lambda con estilo Java de Groovy 3.0

IntelliJ IDEA 2019.1 admite la funcionalidad experimental Groovy 3.0: una sintaxis Lambda con estilo Java. El IDE ofrece compatibilidad de edición para ello, incluidos la finalización de código, el resaltado y la inferencia de tipo. Las inspecciones e intenciones de Groovy funcionarán correctamente dentro del cuerpo lambda. El formateo y la depuración también están disponibles para lambdas de estilo Java.

Kotlin

El complemento Kotlin que se incluye con el IDE se ha actualizado a v1.3.21

Plantilla personalizable para generar «principales» sin parámetros

Comenzando con Kotlin 1.3, puede emplear la función principal sin parámetros. En consecuencia, con esta versión de IntelliJ IDEA, puede crear el método principal sin parámetros usando la plantilla personalizable «principal».

Tenga en cuenta que ahora la abreviación «principal» predeterminada crea una nueva versión del método principal. Si ha de pasar algunos argumentos, emplee la abreviación «maina».

Mejoras de las conversiones de cadenas

La intención «Convert concatenation to template» puede eliminar ahora las llamadas .toString() innecesarias en cada parámetro.

Nueva intención para convertir SAM como lambda en un objeto anónimo

Si tiene que convertir un constructor usando lambdas con SAM en un objeto anónimo, emplee esa útil acción de intención nueva.

Acción de intención para mejorar código de corrutinas

Cuando trabaje con corrutinas, IntelliJ IDEA sugiere añadir el sufijo «Async» a la función que devuelve «Deferred».

Javascript y Typescript

Nuevas intenciones para la desestructuración de JavaScript

IntelliJ IDEA 2019.1 incorpora un conjunto de nuevas refactorizaciones e intenciones para ayudarle a empezar a usar la desestructuración en su código JavaScript o TypeScript.

Intención para función de conversión con Promise a async/await

Cambie una función que devuelve una Promise con llamadas .then() and .catch() a una función async que utiliza la sintaxis async/await. Para usar este arreglo rápido, presione Alt-Intro en el nombre de la función y seleccione Convertir a función async. Está disponible para archivos TypeScript, JavaScript y Flow.

Documentación actualizada para CSS y HTML

La documentación rápida para propiedades CSS y etiquetas HTML y atributo (F1 / Ctrl-Q) muestra ahora una breve descripción de MDN, incluida su compatibilidad con los navegadores más populares.

Consola del depurador de JavaScript mejorada

La consola interactiva del depurador en las ventanas de la herramienta de depuración de JavaScript y Node.js muestra ahora objetos con una vista de árbol y admite la aplicación de estilos de mensajes de registro con CSS y los agrupa usando console.group() y console.groupEnd(). También le permite filtrar para ocultar cualquier tipo de mensaje de registro.

Docker

Capacidad de depurar dentro del contenedor Docker

Ahora puede asociar el depurador a una aplicación Java que se ejecute dentro de un contenedor Docker. El IDE ahora permite la depuración dentro de contenedores que están creados a partir de un archivo Docker o que se han creado con Docker Compose (docker-compose.yml).

Kubernetes

Compatibilidad con recursos externos

IntelliJ IDEA 2019.1 admite recursos externos, lo que significa que ahora puede cargar una especificación de definición de recursos personalizada desde recursos externos. Actualmente, esto solo es posible desde archivos locales. Para agregar especificaciones, vaya a Preferences/Settings | Languages & Frameworks | Kubernetes y añada la ruta a la especificación de definición de recursos personalizada.

Refactorización de renombrado de diagramas en archivos de recursos Helm

Ahora es posible usar la refactorización Rename (Renombrar) en el diagrama de los archivos de plantillas de recursos Helm. Tenga en cuenta que debe instalar el complemento Go template para permitir esta compatibilidad para los archivos de plantilla de recursos Helm.

Editor

Opción para exportar sus ajustes de estilo de código a JSON

Ahora es posible exportar todos sus ajustes de estilos de código, incluso si coinciden con los predeterminados, a JSON desde IntelliJ IDEA. Vaya a Preferences/Settings | Editor | Code Style y seleccione la opción «Export | IntelliJ IDEA code style JSON» en el menú desplegable.

Capacidad de permitir saltos de línea suaves dependiendo del tipo de archivo

Los saltos de línea suaves pueden limitarse para tipos específicos de archivos yendo a Preferences/Settings | Editor | General y usando el campo «Soft-wrap files».

El cuadro de diálogo Keymap Configuration para la pulsación de las teclas Ctrl-Y en Windows

La primera vez que use la pulsación de Ctrl+Y en Windows, se mostrará el diálogo Keymap Configuration (Configuración del mapa de teclas) para pedirle que asigne el acceso directo para «Delete Line» (Eliminar línea) o «Redo» (Rehacer).

Mapa de telas de Sublime Text

Hemos seguido añadiendo nuevos mapas de teclas preconfigurados a IntelliJ IDEA, y con v2019.1 hemos añadido el mapa de teclas Sublime Text. Vaya a Preferences /Settings | Keymap y desde la lista desplegable de mapas de teclas, seleccione Sublime Text y ¡ya está! Ahora puede utilizar accesos directos de Sublime Text en IntelliJ IDEA.

Complemento de mapa de teclas VS Code

Ahora también puede usar el mapa de teclas VS Code preconfigurado, que se ha puesto a disposición como complemento independiente. Instale este complemento y seleccione el mapa de teclas VS Code en Preferences /Settings | Keymap.

Compatibilidad con sintaxis Lambda con estilo Java de Groovy 3.0

IntelliJ IDEA 2019.1 admite la funcionalidad experimental Groovy 3.0: una sintaxis Lambda con estilo Java. El IDE ofrece compatibilidad de edición para ello, incluidos la finalización de código, el resaltado y la inferencia de tipo. Las inspecciones e intenciones de Groovy funcionarán correctamente dentro del cuerpo lambda. El formateo y la depuración también están disponibles para lambdas de estilo Java.

Spring Cloud Stream

Compatibilidad para la edición de Spring Cloud Stream

IntelliJ IDEA ofrece ahora compatibilidad de edición enriquecida para proyectos Spring Cloud como resaltado de sintaxis, inspecciones, arreglos rápidos y finalización de código (incluida la finalización de nombres de enlazador para valores y referencias en los archivos application.properties o application.yml).

Navegación entre productores y consumidores enlazados

Ahora puede navegar entre los controladores de mensajes que consumen y producen enlazados mediante el icono de medianil. Tenga en cuenta que los consumidores y productores deberían estar enlazados en los archivos application.properties o application.yml a través de la clave de configuración «spring.cloud.stream.bindings».

Thymeleaf

Compatibilidad con Thymeleaf mejorada

Ahora puede navegar hasta fragmentos de plantillas referenciados en los atributos «th: replace» y «th: include». La finalización de código y las refactorizaciones Rename ahora funcionan también para estos fragmentos incluidos y sustituidos.

Herramientas para bases de datos

Compatibilidad con Greenplum, Vertica y Apache Hive

IntelliJ IDEA admite estas nuevas bases de datos:

  • Greenplum: una base de datos de analítica basada en PostgreSQL.
  • Vertica: almacenamiento orientado en columnas diseñado para manipular grandes volúmenes de datos.
  • Apache Hive: un almacén de datos integrado en Apache Hadoop para proporcionar análisis y consultas de datos.

Diálogo de conexión mejorado

Hemos actualizado el aspecto del diálogo de conexión y añadido varios ajustes importantes. Ahora puede añadir una consulta SQL en el campo «startup script», que se ejecutará cada vez que establezca una conexión. Además, puede establecer un tiempo de espera después del cual el IDE se desconectará automáticamente, o configurar un intervalo de tiempo para ejecutar una consulta cada N segundos para mantener la conexión persistente.