CLion 2018.3: desarrollo remoto, creación de perfiles de código, rendimiento y más

Hola Habr!

El otro día lanzamos CLion 2018.3. El tercer lanzamiento importante de este año resume nuestro trabajo en dos áreas importantes de desarrollo: mejorar el soporte del lenguaje y el desarrollo remoto .

Además, finalmente:

  • herramientas de perfilado de código agregado;
  • rehacer los comandos en el editor para ensamblar / reensamblar código a nivel de un archivo, varios destinos o el proyecto completo;
  • Junto con otros IDE basados ​​en la plataforma IntelliJ, agregaron soporte para submódulos Git y solicitudes de extracción de GitHub;
  • medios mejorados de acceso universal a las posibilidades de IDE (accesibilidad).

imagen

Lea más sobre estas y otras innovaciones a continuación. Y para probar nuevas funciones y mejoras, descargue la versión gratuita de 30 días de nuestro sitio web .

Soporte de lenguaje C ++


Más C ++ 17


El analizador CLion ha aprendido a comprender dos nuevas características de las expresiones de plegado estándar C ++ 17 y las guías de deducción . Por un lado, los cambios en el analizador aún no son un soporte completo, pero al menos el resaltado del código será más correcto, y para los casos de guías de deducción definidas por el usuario, el IDE incluso mostrará correctamente el tipo y puede verlo, por ejemplo, al llamar información sobre Parámetros de función.

imagen

Clangd ahora está en navegación


La última vez que escribimos que CLion ahora usa no solo su propio motor de lenguaje para trabajar con código C / C ++, sino también uno adicional, experimental, basado en Clangd. Al activarlo para mostrar errores y advertencias en el editor, seguimos adelante y en CLion 2018.3 implementamos algunas acciones de navegación de código y búsqueda de código sobre la base.

El motor de lenguaje basado en Clangd proporciona resultados que posteriormente se combinan de todos modos con los resultados obtenidos del motor CLion. Un ejemplo típico es Buscar usos ( Alt+F7 ): Clangd busca archivos abiertos en el editor, y nuestro propio motor busca el resto.

Ejemplos de otras acciones que además utilizan el motor de lenguaje Clangd:

  • Ir a la declaración ( Ctrl+B / ⌘B ) / Ir a la definición ( Ctrl+Alt+B / ⌥⌘B )
  • Destacando todas las inclusiones del símbolo en el que se encuentra el cursor
  • Documentación rápida ( Ctrl+Q / F1 )

Clangd está habilitado de forma predeterminada y está configurado en Configuración / Preferencias | Idiomas y marcos | C / C ++ | Clangd:

imagen

Es decir, puede habilitar / deshabilitar de forma independiente la funcionalidad necesaria en la parte superior de Clangd, por ejemplo, solo muestra errores o solo navegación. Si necesita deshabilitar completamente el uso de Clangd, desactive todas las casillas en este cuadro de diálogo.

Y, por cierto, Clang-Tidy se puede ejecutar sin Clangd, pero ejecutar Clangd mejora significativamente el rendimiento, ya que utiliza el árbol AST almacenado en caché en Clangd.

Desarrollo remoto


El lanzamiento de CLion 2018.1 introdujo la capacidad en Windows de trabajar con el subsistema Windows Subsystem for Linux (WSL). Este entorno de Linux, integrado en Windows, le permite construir, ejecutar y depurar aplicaciones de Linux en Windows. Dijimos entonces que implementamos específicamente soporte para WSL a través de ssh, es decir, como un subsistema remoto. Este fue el primer paso para trabajar con configuraciones completamente remotas.

Y así, en CLion 2018.3, anunciamos soporte para la primera versión grande de desarrollo remoto:

  • En la máquina local donde se ejecuta CLion, puede ser Linux, Windows o macOS.
  • En una máquina remota, donde CLion construirá su aplicación, la ejecutará y depurará, ejecutará pruebas, hasta ahora solo puede haber Linux.
  • Se supone que el código está en la máquina local. El propio CLion lo sincroniza con la máquina remota y devuelve las rutas de búsqueda del encabezado al local para resolver rápidamente el código en el editor. La sincronización se realiza a través de rsync para Linux o macOS como máquinas locales, y a través de sftp y gzip para Windows.
  • Funciona hasta ahora solo para proyectos en CMake.

imagen

Configurar una configuración remota de este tipo es muy fácil: solo necesita crear una cadena de herramientas remota en Configuración / Preferencias | Construcción, Ejecución, Implementación | Cadenas de herramientas y úselas en algunos perfiles de CMake. Las instrucciones detalladas se encuentran en nuestro blog en inglés y en la documentación en línea . El progreso de la sincronización con el host remoto se muestra en la ventana Transferencia de archivos (Ver | Ventanas de herramientas | Transferencia de archivos), y cambia los parámetros de conexión y las rutas de directorio en la máquina remota en Configuración / Preferencias | Construcción, Ejecución, Implementación | Despliegue

Se espera mucho trabajo en esta dirección. Ahora, como puede ver, las opciones para ubicar el código directamente en la máquina remota no son compatibles, no hay soporte para el sistema de control remoto de versiones, no hay integración con el terminal remoto y hay muchas fallas menores en la conexión misma. Pero lo principal es: ¡ahora es posible el desarrollo remoto con CLion!

Análisis de rendimiento de código personalizado


CLion 2018.3 proporciona la capacidad de analizar el rendimiento del código. En Linux, se proporciona integración con Perf ; en macOS, con DTrace . La nueva acción está disponible en el menú Ejecutar, en el panel de navegación y en el menú contextual de los iconos de inicio de la aplicación. Los resultados de la creación de perfiles de código están disponibles en la ventana CPU Profiler (Ver | Herramientas Windows | CPU Profiler).

imagen

Lea más sobre lo que necesita instalar en su computadora para que funcione la creación de perfiles de código, lea el blog o la documentación en línea .

Vale la pena señalar que UI / UX todavía es algo experimental. Se planea mejorar significativamente en las versiones 2019.x. Pero ya hay cosas útiles, como la capacidad de ver todos los hilos juntos o uno a la vez, la capacidad de navegar al código fuente, etc.

Construir y reconstruir comandos


El número de varias combinaciones de comandos de compilación ha crecido tanto que decidimos ponerlos a todos en un elemento de menú separado: Compilar. Existe el ensamblaje / reensamblaje de todo el proyecto, y el objetivo all de todo o del perfil CMake seleccionado, y la configuración seleccionada, y un archivo específico:

imagen

Esto, por supuesto, es para CMake. Para una base de datos de compilación solo habrá un comando de reconstrucción para un archivo en particular.

Diálogos universales: ejecutar cualquier cosa y buscar en todas partes


Los usuarios de CLion han estado familiarizados con el cuadro de diálogo Buscar en todas partes ( Double Shift ) durante mucho tiempo, así como con el cuadro de diálogo Buscar acción ( Ctrl+Shift+A / ⇧⌘A ) para buscar un comando o configuración por nombre, y con cuadros de diálogo para navegar a un archivo, símbolo o clase por su nombre ¡Y ahora este es, de hecho, el mismo diálogo!

imagen

Los cuadros de diálogo separados se convirtieron en pestañas separadas, el cambio funciona a través de Tab . Al mismo tiempo, eliminamos una serie de problemas asociados con estos cuadros de diálogo, incluida la pérdida de enfoque y los tamaños incorrectos.

Otro nuevo diálogo universal es Run Anything ( Double Ctrl ). Desde allí, puede ejecutar la aplicación en modo normal o desde debajo del depurador, y también abrir cualquier proyecto:

imagen

Comprobaciones en compilation_database.json


La base de datos de compilación es un modelo de diseño alternativo que CLion ha estado soportando durante algún tiempo. Es muy conveniente ya que puede obtenerlo de prácticamente cualquier otro modelo de diseño, popular o incluso personalizado. CLion puede abrir proyectos desde la base de datos de compilación, analizar correctamente el código y proporcionar todos los medios inteligentes para trabajar con el código. El único inconveniente es la falta de información sobre el ensamblaje de todo el proyecto en este formato, hasta ahora solo se recopilarán archivos individuales del IDE.

En esta versión, agregamos un esquema para los archivos comp__database.json a CLion, y en base a este esquema ya implementamos verificaciones en el archivo mismo. Por ejemplo, el tipo incorrecto del valor de la propiedad o la propiedad que generalmente falta:

imagen

Las comprobaciones pueden ser muy útiles si aún decide escribir dicho archivo a mano o corregir un archivo existente.

Rendimiento del editor y pruebas


En muchos volcados de nuestros usuarios, se observó que problemas importantes con el rendimiento del IDE están relacionados con la forma en que el IDE determina la lista de pruebas disponibles en el proyecto. En la versión 2018.3, hicimos este proceso lento, y ahora, si no ha abierto ningún archivo de prueba en el editor, no se indexarán. Además, se realizaron mejoras de rendimiento al navegar a los resultados de la prueba, completar automáticamente las macros de prueba, etc.

Mejoras del editor


Como sabe, en la ventana Documentación rápida ( Ctrl+Q / F1 ), CLion puede mostrar no solo documentación y comentarios de código, sino también tipos inferidos para variables y sustitución final en macros. Esta búsqueda final ahora está formateada y las palabras clave están resaltadas en ella. Muy útil para macros complejas con varios niveles de anidamiento, por ejemplo para Boost:

imagen

Los comentarios TODO ahora pueden ser multilínea, lo principal es sangrar la segunda línea y las siguientes: CLion comprenderá automáticamente que esto es parte del comentario TODO:

imagen

Hay usuarios para quienes los temas estándar no son convenientes, ya que no tienen suficiente contraste. Para ellos, agregamos un tema especial de alto contraste. Solo se puede habilitar en el editor de código (Ctrl + `) o para todo el IDE (Configuración / Preferencias | Apariencia y comportamiento | Apariencia | Tema).

imagen

Junto con la plataforma IntelliJ, rediseñamos el menú de configuración de complementos en IDE (Configuración / Preferencias | Complementos). Ahora es mucho más fácil mantener actualizados los complementos instalados, así como ordenar y filtrar un gran depósito de complementos IDE existentes.

Sistema de control de versiones


Otro cambio importante de la plataforma es el tan esperado soporte para los submódulos de Git . Ahora todas las operaciones para trabajar con VCS en CLion también se tienen en cuenta por submódulos: clonar un proyecto, actualizarlo, comparar versiones (diff), etc.

Se ha agregado la ventana Solicitudes de extracción de GitHub , en la que no solo puede ver todas las solicitudes de extracción, sino también buscarlas / filtrarlas por autor o estado. Y puede crear una nueva sucursal desde cualquier solicitud de extracción con solo un clic.

Demo


Video tradicional sobre las nuevas características de CLion 2018.3 en inglés:


Que sigue


El próximo año planeamos continuar trabajando en el segundo motor de lenguaje adicional basado en Clangd; veamos qué otras características IDE podemos implementar en él. Mejoraremos la productividad del editor, terminaremos y mejoraremos las funciones existentes; El trabajo de apoyar el desarrollo remoto en CLion parece especialmente diverso. A partir de las integraciones, planificamos el formato clang y, probablemente, este o aquel depurador para Windows / MSVC.

Y el enfoque clave para nosotros será el desarrollo integrado . Más recientemente, Elmot , autor de un complemento de soporte muy popular en CLion OpenOCD + STM32CubeMX , se unió a nuestro equipo. Ilya continuará integrando esta funcionalidad en el IDE, pero planeamos completar la vista de memoria y rehacer la vista hexadecimal en un futuro muy cercano.

¡Preguntas, deseos, informes de errores y solo pensamientos expresados ​​en los comentarios! Estaremos encantados de responder.

Su equipo JetBrains CLion
El impulso para desarrollar

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


All Articles