IntelliJ IDEA 2019.3: optimizaci贸n del rendimiento y mejora de la calidad

Hola

En esta versi贸n, nos centramos en el rendimiento y la calidad. Junto con otros equipos de JetBrains, nos dedicamos a optimizar el rendimiento, aumentar la capacidad de respuesta de la interfaz y mejorar la funcionalidad existente.

Para priorizar correctamente, confiamos en sus comentarios y agradecemos a todos los que compartieron ideas y reportaron errores en nuestro rastreador. Como resultado, solucionamos m谩s de 1,600 problemas, que en total recibieron alrededor de 4,000 votos de usuarios.

Tambi茅n trabajamos para admitir nuevos marcos de microservicios como Micronaut , Quarkus y Helidon , e hicimos el tan esperado soporte para MongoDB .


blog @ 2x (3)




Optimizaci贸n del rendimiento


Hemos trabajado duro para mejorar el rendimiento de IntelliJ IDEA. Esto es lo que tenemos:


  • IntelliJ IDEA comienza mucho m谩s r谩pido.
  • Menos editor y la interfaz se congela.
  • El IDE consume menos memoria, especialmente al importar proyectos de Gradle .




Una de las principales tareas de este a帽o fue reducir el tiempo de lanzamiento del IDE. Hemos realizado cambios arquitect贸nicos significativos en la plataforma IntelliJ: algunos de los procesos que ocurrieron secuencialmente al inicio ahora se ejecutan en paralelo. Adem谩s, reorganizamos las clases para acelerar la inicializaci贸n, descargas de fuentes optimizadas en macOS y m谩s.


Prestamos atenci贸n a aumentar la capacidad de respuesta de la interfaz y nos deshicimos de muchas congelaciones en varias partes de IntelliJ IDEA. Logramos eliminar las causas de congelaciones de m谩s de 1600 informes de errores. Adem谩s, informar congelamientos ahora es m谩s f谩cil.


Ahora IntelliJ IDEA funciona mucho m谩s r谩pido cuando hay muchas pesta帽as abiertas en el editor o depurador, y tambi茅n cuando la expresi贸n regular coincide con las l铆neas muy largas en Buscar en ruta . Abrir el 谩rbol del proyecto tambi茅n lleva menos tiempo.


Aceleramos el trabajo del editor optimizando la inferencia de tipos en Java. La inferencia de tipos para largas cadenas de llamadas a m茅todos ahora es mucho m谩s r谩pida. El resaltado de sintaxis de Java tambi茅n funciona m谩s r谩pido, especialmente con los m茅todos gen茅ricos varargs ( Arrays.asList, Map.ofEntries , etc.), que pueden contener docenas de argumentos. Unir varias l铆neas con la acci贸n Unir l铆neas tambi茅n se ha acelerado.


El soporte para Kotlin 1.3.60 tambi茅n condujo a mejoras, por ejemplo, el resaltado acelerado de sintaxis de Kotlin en el editor.


Otras correcciones afectaron a VCS: lograron reducir el tiempo de procesamiento de los eventos y los archivos ignorados, eliminar congelaciones y acelerar las actualizaciones de estado en grandes proyectos.


En el subsistema de compilaci贸n, redujimos el consumo m谩ximo de memoria al importar grandes proyectos de Gradle. Tambi茅n solucionamos problemas con la edici贸n de archivos pom.xml en proyectos Maven: ahora el IDE ofrece opciones de autocompletado sin demora.


Estamos satisfechos con los resultados, pero no nos quedamos ah铆. En futuras versiones, continuaremos optimizando el rendimiento e intentando acelerar el lanzamiento del IDE.



Mejora de la calidad


Complementos

IntelliJ IDEA tiene un rico ecosistema de complementos, pero hay un inconveniente: al instalar o eliminar un complemento, debe reiniciar el IDE. Comenzamos a resolver este problema e implementamos la infraestructura b谩sica para la instalaci贸n din谩mica de complementos, sin reiniciar el IDE. Hasta ahora, esto solo funciona para temas de interfaz y atajos de teclado.


Sistemas de control de versiones

Muchas novedades en apoyo de VCS. Para simplificar el trabajo con ramas, en lugar de la acci贸n Checkout as ... , agregamos dos nuevas: Checkout y New Branch from Selected . La acci贸n Nueva rama de seleccionada crea una nueva rama local, pero no permite el seguimiento de ninguna rama remota. Cuando se llama a la acci贸n Checkout , el IDE crea una nueva rama local, la recupera del repositorio y permite el seguimiento de la rama remota seleccionada si no hay una rama local con el mismo nombre.





Redise帽amos el cuadro de di谩logo Clonar e hicimos una 煤nica interfaz para descargar proyectos de varios alojamientos VCS. Ahora puede ingresar su cuenta directamente desde el di谩logo actualizado. Si ya ha iniciado sesi贸n, el IDE mostrar谩 listas de todos los repositorios agrupados por cuenta u organizaci贸n de la que es miembro.


Adem谩s, ya no necesita descargar una rama para enviar cambios al repositorio: seleccione la rama deseada en la ventana Ramas y haga clic en Push . Para archivos movidos o renombrados, agregamos una columna con nombres de archivo al Historial de archivos . Otra mejora 煤til es la capacidad de forzar la adici贸n de un archivo a Git (o Mercurial), incluso si est谩 en la lista .gitignore (o .hgignore).


Otras mejoras

En la versi贸n anterior, admit铆amos la funcionalidad de Java 13, y esta vez mejoramos significativamente la compatibilidad con los bloques de texto de Java 13. Recientemente hablamos de esto en nuestro blog .


Ahora hay una manera f谩cil de ver la jerarqu铆a de llamadas para el campo seleccionado: use la nueva acci贸n Jerarqu铆a de llamadas de campo ( Ctrl / Cmd + Alt + H ).


Si tiene seleccionada la casilla de verificaci贸n Mostrar documentaci贸n r谩pida al mover el mouse , al pasar el mouse sobre una advertencia o error, aparecer谩 una pista con una descripci贸n de la advertencia o error e informaci贸n de ayuda sobre el c贸digo.
Anteriormente, en tales casos, el IDE mostraba solo una pista de error sin documentaci贸n, y a veces aparec铆an dos ventanas emergentes completas.


Hemos actualizado el comportamiento del di谩logo de acciones de intenci贸n : las acciones no desaparecer谩n de la lista de oraciones si selecciona una de ellas y cierra el di谩logo.


La ventana Servicios ahora siempre se muestra y su comportamiento se puede configurar dentro de la ventana misma. Adem谩s, puede ocultar ciertas configuraciones de inicio.


Y tambi茅n:


- Los consejos sobre la falta de coincidencia de tipos se han vuelto m谩s detallados y comprensibles.
- Al abrir un proyecto, IntelliJ IDEA muestra su nombre.
- Apoyamos la inserci贸n de fragmentos de c贸digo en nuevos lenguajes de plantilla, en particular Pug (anteriormente Jade ), Manillares , EJS y Slim .
- Hubo un desplazamiento suave con la rueda del mouse.
- Las barras de desplazamiento pueden hacerse m谩s visibles utilizando la casilla de verificaci贸n Usar barras de desplazamiento de contraste en Preferencias / Configuraci贸n | Apariencia y Comportamiento | Apariencia

Soporte para nuevos marcos y tecnolog铆as.


A pesar de que en la preparaci贸n de esta versi贸n nos centramos principalmente en la calidad, tambi茅n trabajamos en varias caracter铆sticas nuevas y nos complace presentarlas. Todo lo que se describe a continuaci贸n est谩 disponible solo en IntelliJ IDEA Ultimate.


Hubo muchas conversaciones sobre microservicios mucho antes de que comenz谩ramos a planificar este lanzamiento. En alg煤n momento, pensamos que deber铆amos agregar soporte para las tecnolog铆as que se utilizan para desarrollar proyectos Java y Kotlin con arquitectura de microservicios. Las estrellas se unieron y comenzamos a trabajar en la integraci贸n.


En primer lugar, hemos ampliado nuestra asistencia de escritura de c贸digo y nuestras capacidades de navegaci贸n para los marcos de desarrollo de microservicios de pr贸xima generaci贸n: Micronaut, Quarkus y Helidon. Para aquellos involucrados en la programaci贸n reactiva, hemos agregado soporte para Spring Web Flux.




Por lo general, los microservicios interact煤an entre s铆 a trav茅s de HTTP / WebSocket, por lo que el siguiente paso para nosotros fue agregar soporte para las API de cliente HTTP de Java, como java.net.URI / URL, Retrofit v2, OkHttp v3, as铆 como bibliotecas de clientes de marcos de servidores populares: Spring Fingir, MicroProfile REST Client, etc. Es importante destacar que el IDE ahora proporciona la finalizaci贸n de URL y la navegaci贸n para la API HTTP / WebSocket.


En segundo lugar, hemos agregado una nueva ventana de Puntos finales para que sea conveniente ver los puntos finales de su proyecto. Esta ventana muestra las API de cliente y servidor. Gradualmente, no solo se agregar谩 aqu铆 la API HTTP, sino tambi茅n la API de mensajer铆a, gRPC y GraphQL.


Finalmente, hemos ampliado el soporte para las especificaciones API. En esta versi贸n, admitimos Swagger 2 y OpenAPI Specification 3. La compatibilidad incluye la verificaci贸n del cumplimiento del esquema, la finalizaci贸n autom谩tica, la navegaci贸n, la b煤squeda de usos y la refactorizaci贸n de Rename en archivos YAML / JSON que contienen descripciones de API.


Por el momento, todo esto funciona solo para proyectos en Java y Kotlin, pero en futuras versiones planeamos admitir otros lenguajes y marcos.


Adem谩s, IntelliJ IDEA 2019.3 finalmente es compatible con MongoDB. En esta versi贸n, las colecciones y los campos se muestran en el explorador de bases de datos, puede ejecutar consultas y ver sus resultados.



Correcciones importantes


- El IDE ahora encuentra el directorio en el que se instal贸 Gradle a trav茅s de Homebrew.
- Se ha vuelto m谩s f谩cil configurar manualmente el directorio de inicio de Gradle.
- IntelliJ IDEA ahora admite el almacenamiento de contrase帽as en KWallet en Linux.
- Para proyectos JavaFX, el IDE puede mostrar un archivo FXML con el generador de escenas incorporado en la pesta帽a del generador de escenas .
- En la ventana de depuraci贸n , funciona la navegaci贸n del teclado.
- Puede copiar el texto seleccionado desde la ventana de inspecci贸n a trav茅s de Ctrl / Cmd + C.
- El foco no se pierde al cambiar entre ventanas IDE.
- Mejora la ubicaci贸n de ventanas e informaci贸n sobre herramientas.
- Si se selecciona el tema Darcula en el IDE, las ventanas del sistema MacOS se abren en un tema oscuro cuando se llama.

Tambi茅n actualizamos el JetBrains Runtime 11 (JBR 11).


- Se corrigi贸 el renderizado de fuentes en macOS Catalina.
- Se solucion贸 un problema al abrir un proyecto en macOS 10.15 Catalina.
- Se corrigieron los caracteres en el cuadro de di谩logo Evaluar expresi贸n .
- IntelliJ IDEA detectar谩 conflictos entre los atajos de teclado IDE y los atajos del sistema operativo.
- El editor solucion贸 el problema con las fuentes que siempre estaban en cursiva .
- Se corrigi贸 la pantalla inicial en Windows.

Lea todos los detalles sobre la nueva versi贸n en el sitio web o vea la revisi贸n (en ingl茅s).

Equipo de JetBrains

Source: https://habr.com/ru/post/479902/


All Articles