Novedades en CLion

CLion 2020.3 aporta mejoras significativas que ya estuvimos encantados de anticipar a momentos clave del proceso de desarrollo: análisis del código, aplicaciones de ejecutar y depurar y testeo de unidades. Para proyectos integrados, CLion ahora incluye compatibilidad inicial con MISRA C y C++. Y los usuarios de Qt pueden disfrutar de funcionalidades del IDE adaptadas específicamente al trabajo con código Qt.

Depurador

Depuración como root

CLion 2020.3 puede ejecutar y depurar su aplicación con privilegios root: solo tiene que seleccionar esta opción en la configuración de ejecutar/depurar correspondiente. Funciona con aplicaciones CMake, Makefile, Gradle Native, Custom Build y CTest.

Depuración con volcados principales

Depuración con volcados principales

Una nueva acción Run | Open Core Dump… disponible para Linux y macOS le permite abrir un volcado principal existente de un proceso que se ha caído en CLion y depurarlo desde allí. Los usuarios pueden inspeccionar la vista de variables y marcos, comprobar la vista de desensamblado y memoria, evaluar expresiones y ejecutar comandos del depurador desde la consola del depurador. Obtenga más información acerca del proceso de configuración de esta funcionalidad y sus limitaciones conocidas.

Establecimiento de un punto de ejecución

Establecimiento de un punto de ejecución

Con una nueva acción Set Execution Point to Cursor, puede desplazarse adelante y atrás a través de la ejecución de su programa mientras depura, interrumpir bucles o reiniciarlos, seleccionar otra rama en una cláusula if-else o declaración switch-case, e incluso saltarse los bucles por completo. Es tan sencillo como arrastrar y soltar una flecha en el medianil a la línea que le interesa.

Más información

Consejos interactivos e inspecciones inline

Consejos interactivos e inspecciones inline

Ahora, cuando la aplicación funciona en modo depuración, el editor muestra consejos inline en los que puede hacer clic para expandirlos y ver todos los campos pertenecientes a una variable determinada. Además, puede modificar los valores de la variable dentro de la lista desplegable o añadir una expresión arbitraria como Inline Watch a esta posición del código.

Configuración de ejecución

Configuración de entorno con un script

Configuración de entorno con un script

En CLion ya puede utilizar un script para especificar el entorno en el que se lanzará una configuración de ejecutar/depurar. Para ello encontrará el nuevo ajuste en todas las configuraciones de aplicación y testeo de unidades.

Edición de configuraciones durante la indexación

Edición de configuraciones durante la indexación

¡No espere más! Las configuraciones de ejecutar/depurar pueden editarse mientras se indexa el proyecto.

Pruebas de unidades

Compatibilidad con CTest

Compatibilidad con CTest

CTest, un ejecutor de pruebas específico de CMake, ya es compatible con CLion. Esto significa que se detecta la lista de pruebas ejecutadas con CTest, y el IDE crea automáticamente configuraciones de ejecutar/depurar para ellas. Cuando se lanzan las pruebas, los resultados se presentan en el ejecutor de pruebas integrado, desde donde puede depurar pruebas, volver a ejecutar las pruebas fallidas, y mucho más.

Más información

Ejecutor de pruebas para Google Test

Ejecutor de pruebas para Google Test

La versión 2020.3 mejora la compatibilidad de CLion con Google Test, el marco de trabajo de testeo de unidades de C++ más popular del mundo (la investigación del ecosistema de los desarrolladores en 2020 muestra que el 31 % de los desarrolladores de C++ utilizan Google Test).


    Las actualizaciones incluyen:
  • El árbol de pruebas completo se muestra inmediatamente en el ejecutor de pruebas integrado y, a continuación, se ejecutan las pruebas.
  • Para pruebas parametrizadas, CLion muestra ahora parámetros de pruebas directamente desde el árbol de pruebas.
  • Las pruebas deshabilitadas (las que llevan el prefijo DISABLED en su nombre) ahora también se muestran en el árbol de pruebas con el icono correspondiente.

Refactorización y análisis del código

MISRA

MISRA C y C++

CLion 2020.3 incluye compatibilidad parcial con MISRA C 2012 y MISRA C++ 2008, directrices utilizadas a menudo en el desarrollo integrado y especialmente en el sector de la automoción. Esta compatibilidad acelera el desarrollo de dichos proyectos mostrando las incompatibilidades en una fase más temprana del ciclo de desarrollo. La lista de comprobaciones actualmente compatibles está disponible en la página de Confluence de CLion.

Valor no utilizado

Valor no utilizado

CLion 2020.3 mejora la inspección de Unused Value, que detecta situaciones en las que un valor variable nunca se utiliza tras haber sido asignado. Ahora puede personalizarse para que siga el estilo que recomienda utilizar inicializadores de variables predeterminados. Se ha añadido a la configuración una nueva opción para desactivar la inspección en esos casos.

Extracción de parámetro lambda

Extracción de parámetro lambda

Se ha añadido a CLion una nueva refactorización Extract Lambda Parameter. Extrae una expresión o declaración a un nuevo parámetro con una expresión lambda trasladada como un argumento correspondiente. La declaración podría ser, por ejemplo, un comparador trasladado a una función de ordenar.

Ver las refactorizaciones de extracción en acción

Finalización de código

Fragmentos de finalización Clang

Fragmentos de finalización Clang

Los fragmentos de finalización Clang le ayudan a insertar construcciones comunes al escribir palabras clave C++. En algunos casos, por ejemplo al completar una palabra clave typedef, la finalización de código puede sugerir no solo la palabra clave, sino también stubs para el tipo y el nuevo nombre.

Finalización para plantillas

Finalización para plantillas

CLion 2020.3 mejora la finalización de código, puesto que ahora trabaja con mucha más precisión con los tipos de plantillas. Por ejemplo, se muestran las opciones de finalización para elementos contenedores e iteradores en la plantilla de función.

Proyectos Qt

Crear un nuevo proyecto Qt

Crear un nuevo proyecto Qt

El cuadro de diálogo New Project sugiere los tipos de proyecto Qt Console Executable y Qt Widgets Executable. También puede seleccionar la ruta de prefijo de Qt CMake, el estándar de lenguaje C++ que se utilizará en el proyecto y la versión de Qt. El nuevo proyecto se genera utilizando las plantillas correspondientes.

Creación de una nueva clase de interfaz de usuario Qt

Creación de una nueva clase de interfaz de usuario Qt

Un nuevo elemento QT UI Class del menú New (Alt+Insert) le ayuda a crear simultáneamente una clase Qt junto con un archivo .ui. Rellene el nombre de clase y seleccione la clase primaria (QWidget, QMainWindow o QDialog). Los archivos .h/.cpp/.ui se generarán utilizando la base Filename como su nombre de archivo. Los archivos generados se ajustarán a las plantillas listadas en Settings/Preferences | Editor | File and Code Templates: Qt Class, Qt Class Header y Qt Designer Form.

Finalización de señales y espacios

Finalización de señales y espacios

Las señales y espacios son funciones esenciales de Qt, puesto que se trata de entidades utilizadas para la comunicación entre objetos. CLion ahora entiende cuándo deben completarse las señales o espacios, y filtra únicamente los miembros correspondientes en la lista desplegable de finalización.

Autoimportación con estilo Qt

Autoimportación con estilo Qt

Las sugerencias de autoimportación de proyectos Qt en CLion 2020.3 se han adaptado para que empleen el estilo utilizado más habitualmente en Qt.

Proyectos Makefile

Compatibilidad con proyectos que usen libtool, dolt y ccache

Compatibilidad con proyectos que usen libtool, dolt y ccache

Los proyectos Makefile que utilizan varios contenedores como ccache, libtool, dolt, slibtool y jlibtool ya pueden cargarse sin problemas en CLion. Obtenga más información sobre algunas de las limitaciones todavía existentes.

Configuraciones de ejecutar/depurar

Configuraciones de ejecutar/depurar

Configurar un proyecto Makefile en CLion ahora es todavía más fácil: las configuraciones de ejecutar/depurar se crean automáticamente para los destinos Makefile del nivel más alto al cargar el proyecto. Ahora, para ejecutar y depurar, solo tiene que dirigir la configuración al ejecutable creado.

Más información

Recompilar un solo archivo

Recompilar un solo archivo

La acción Recompile (Ctrl+Mayús+F9) le ayuda a agilizar el proceso de desarrollo compilando un solo archivo sin crear el proyecto completo. ¡Ahora también funciona con proyectos Makefile!

CMake

Habilitar/Deshabilitar perfiles CMake

Habilitar/Deshabilitar perfiles CMake

Con CLion 2020.3 ya puede mantener varios perfiles CMake configurados en CLion y a la vez deshabilitar los que no esté utiilizando actualmente. Esto mejora los tiempos de carga del proyecto y evita los fallos redundantes procedentes de perfiles temporalmente no disponibles (como para las configuraciones remotas que estén actualmente desactivadas). La opción está disponible desde la ventana de herramientas de CMake y el cuadro de diálogo de configuración de perfiles de CMake.

Más información

VCS

Pestaña Git en Search Everywhere

Pestaña Git en Search Everywhere

El cuadro de diálogo Search Everywhere ahora incluye una pestaña Git. Esta ayuda a encontrar hashes de confirmación y mensajes, etiquetas y ramas. También puede realizar cálculos matemáticos sencillos en el campo de búsqueda.

Actualizaciones de la interfaz de usuario

El menú VCS ahora lleva el nombre del sistema de control de versiones que se esté utilizando. Hemos hecho el menú más conciso, dejando solo las acciones más útiles para el control de versiones de su proyecto.

Además, ahora los dos botones más populares, Commit y Commit and Push…, se muestran explícitamente en la pantalla Commit.

Compatibilidad con pruebas Git

Ahora puede probar los cambios directamente desde CLion. Para activar esta funcionalidad, vaya a Preferences / Settings | Version Control | Git y marque la casilla de verificación Enable staging area. Haga clic en el icono + para añadir sus archivos al nuevo nodo Staged en la vista Commit. También puede probar los cambios directamente desde el medianil o en la vista Diff. Para obtener más información, lea nuestra publicación del blog.

Desarrollo remoto

Actualización automática de rutas Excluded

Actualización automática de rutas Excluded

Los directorios marcados como Excluded localmente ahora se marcan automáticamente como rutas Excluded para cadenas de herramientas remotas cuando se configuran inicialmente. Y cuando se efectúan cambios en un proyecto ya sincronizado, CLion muestra una notificación de actualización y sugiere actualizar la lista de Excluded paths.

Más detalles

Code With Me

Code With Me

CLion 2020.3 admite Code With Me (EAP), un nuevo servicio de JetBrains para el desarrollo colaborativo y la programación en pares. Code With Me le permite compartir con otras personas el proyecto que tiene abierto en ese momento en su IDE y trabajar juntos en tiempo real. Puede descargarlo hoy mismo desde el marketplace de complementos (Preferences / Settings | Plugins | Marketplace). Eche un vistazo a estas publicaciones para obtener más información sobre Code With Me.

Actualización de la IU

Actualizaciones de la pantalla de bienvenida

Actualizaciones de la pantalla de bienvenida

CLion 2020.3 luce una pantalla de bienvenida rediseñada. El nuevo diseño pone las operaciones más habituales al alcance de su mano, y le ofrece acceso inmediato a proyectos recientes, opciones de personalización y ajustes de complementos.

Arrastrar y soltar pestañas

Dividir un editor

Ahora ya puede dividir un editor arrastrando y soltando una pestaña a un lado de la ventana del editor principal. La acción Open in Right Split divide el editor verticalmente al abrir un archivo.

Puede invocar esta acción desde la vista Project u otras ventanas emergentes de navegación, como Recent Files y Search Everywhere (Mayús+Enter).

Tema del IDE sincronizado con la configuración del SO

Tema del IDE sincronizado con la configuración del SO

CLion ahora puede sincronizarse con el tema de su sistema operativo. Para habilitar esta función, vaya a Settings / Preferences | Appearance & Behavior | Appearance y marque la casilla Sync with OS. Haga clic en el icono de la rueda dentada situado junto a Sync with OS para seleccionar su tema preferido.

Actualización del complemento Rust

Actualización del complemento Rust

IntelliJ Rust ahora es totalmente compatible con funcionalidades Cargo y le permite configurarlas con una nueva interfaz de usuario inteligente. Las funcionalidades de un espacio de trabajo pueden activarse y desactivarse con un solo clic, y la asistencia a la codificación del complemento tendrá en cuenta estos ajustes. Consulte los detalles en este artículo del blog.

Asimismo, el complemento ahora permite utilizar Rustfmt como formateador de código predeterminado. Solo tiene que marcar la casilla correspondiente en Settings / Preferences | Languages & Frameworks | Rust | Rustfmt y todo el reformateo del archivo empleará Rustfmt. Por ahora, si utiliza Reformat Code en una selección, se utiliza el formateador del IDE en su lugar.

El asistente de proyecto del complemento se ha mejorado con más plantillas y con la opción de utilizar plantillas personalizadas cargo-generate.

Entre otras actualizaciones se incluyen la introducción de compatibilidad con proyectos WebAssembly y un nuevo motor experimental para la resolución de nombres.

Novedades en CLion 2020.2

CLion 2020.2 se asegura de cubrir una gran variedad de proyectos C++ añadiendo proyectos Makefile y mejorando la compatibilidad con CMake. Ofrece una mejor conformidad con el estándar C++20. El análisis del código ahora es más preciso y detecta más errores críticos, como punteros colgantes. También se han mejorado de modo significativo las pruebas de unidades, la cobertura de código y el desarrollo integrado, entre otras áreas.

Modelos de proyecto

Compatibilidad con proyectos Makefile

¿Está desarrollando un proyecto basado en Makefile? Disfrute de las funcionalidades inteligentes de CLion: CLion ahora es directamente compatible con proyectos Makefile. Abra una carpeta con un Makefile de nivel superior como proyecto, o directamente indíquele a CLion un Makefile en el diálogo "Open". El IDE ejecutará make (con la opción --just-print para evitar ejecutar un build real), analizará el resultado del comando make y cargará el proyecto. Compruebe en este artículo del blog los detalles, las limitaciones conocidas y una larga lista de proyectos en los que he hemos puesto a prueba nuestro enfoque.

Breve introducción

Experiencia de usuario mejorada para CMake

Experiencia de usuario mejorada para CMake

La configuración de perfil de CMake en Build, Execution, Deployment | CMake dispone de una interfaz de usuario más limpia, y se han incorporado unos pocos consejos útiles para la configuración. Además, ahora dispone de varias acciones para proyectos CMake disponibles en Find Action, y puede asignar un atajo a cualquiera o a todas ellas si las utiliza habitualmente:

  • Configuración de CMake
  • Parada de la recarga de proyectos CMake
  • Apertura de archivos CMakeCache

Actualización de CMake

CLion ahora incluye CMake 3.17 y añade compatibilidad inmediata para dos de sus funcionalidades más recientes:

  1. Ninja Multi-Config: ahora, con la opción de generador de -G "Ninja Multi-Config", puede obtener archivos de build CLion generados para cualquier configuración (tenga en cuenta que, durante un tiempo, CLion todavía utilizará solo una configuración seleccionada para el perfil CMake).
  2. Encabezados precompilados para CMake: use el comando target_precompile_headers para añadir archivos de encabezado a las propiedades PRECOMPILE_HEADERS o INTERFACE_PRECOMPILE_HEADERS de un destino. CLion tratará correctamente esos encabezados precompilados.

Breve introducción

Creación de proyectos

Recompilar un solo archivo

La acción Recompilar un solo archivo le ayuda a agilizar el proceso de desarrollo comprobando rápidamente cambios locales, y ahora está disponible para Ninja y otros generadores utilizados en CMake y compatibles con CLion.

Gracias a una importante corrección de errores, CLion ahora puede crear varios proyectos independientes en paralelo, sin que estos se impidan el arranque entre sí.

Análisis del código

El análisis de código se ha actualizado en profundidad en CLion 2020.2, para aumentar la precisión de numerosas comprobaciones y abordar más casos. Esta versión también continúa con la tarea de pulir el análisis del flujo de datos, que se reimplementó anteriormente sobre el motor basado en Clangd.

Dangling pointer (puntero colgante)

Dangling pointer (puntero colgante)

Los punteros que apuntan a datos no válidos dan lugar a problemas de tiempo de ejecución. Algunos casos típicos son las combinaciones double-free y use-after-free. CLion ahora detecta estos punteros colgantes si aparecen en el ámbito local, no hay ninguna aritmética de puntero implicada y las macros no evitan que CLion realice el análisis.

Simplify

Simplify

La inspección de código Simplify es ahora más precisa y aborda más casos. Funciona con los siguientes tipos de instrucciones:

  • condition == true.
  • condition1? true : condition2.
  • if(condition1) return true; return condition2;
  • Instrucciones para ramas idénticas.

Los casos se pueden configurar por separado en Settings | Editor | Inspections | C/C++ | General | Simplifiable statement.

Condición de bucle que nunca se actualiza

Condición de bucle que nunca se actualiza

Esta inspección de CLion detecta situaciones en las que una condición de bucle no se actualiza dentro del bucle. Es similar a la clang-tidy:bugprone-infinite-loop de Clang-Tidy, pero funciona para bucles con puntos de salida y puede gestionar casos con lambdas o referencias.

Código no utilizado

Código no utilizado

La inspección de Unused code se ha renovado en profundidad. Entre otros cambios, ahora funciona para alias de tipo, para construcciones "using" definidas tanto global como localmente.

Widget de inspecciones y vista de Problems

Widget de inspecciones y vista de Problems

Por último, aunque no menos importante, hemos introducido un nuevo widget de inspecciones. Muestra el número de advertencias y errores en el archivo actual y le permite desplazarse entre ellos con facilidad. También puede configurar el nivel de resaltado (igual que lo hacía anteriormente con el denominado icono Hector).

Si hace clic en el widget de inspecciones, se abrirá la ventana de herramientas de la vista de problemas (View | Tool Window | Problems). Muestra la lista de advertencias y errores del archivo actual, le ayuda a desplazarse hasta el punto de su código donde se ha detectado el problema, y le permite resolver los problemas mediante el atajo Alt+Enter directamente desde la ventana de herramientas.

C++20

Este año se introduce oficialmente un nuevo estándar de lenguaje para los desarrolladores de C++, y CLion ya incluye compatibilidad para muchas de sus funcionalidades. El motor de lenguaje en CLion 2020.2 también es más estable con código C++20 en general.

Palabras clave de C++20

Palabras clave de C++20

CLion 2020.2 es compatible con las nuevas palabras clave en el resaltado y la finalización de código:

  • char8_t
  • consteval y constinit
  • co_await, co_return y co_yield
Inicializadores designados

Inicializadores designados

La finalización de código en inicializadores designados ahora funciona con campos de una clase base.

explicit(bool)

explicit(bool)

La construcción de C++20 explicit(bool) ahora se resalta correctamente. También está equipada con consejos de nombres para argumentos de condición y es compatible con la navegación y la refactorización.

"for" basado en intervalo con inicializador

for basado en intervalo con inicializador

Ahora se admiten bucles for basados en intervalo con la instrucción init. Esto incluye refactorizaciones como Rename para variables del bucle.

Restringir el resultado de una función

Restringir el resultado de una función

Se ha añadido una nueva inspección de código que utiliza Concepts. Sugiere restringir variables locales declaradas como auto si se les ha asignado el resultado de una llamada a función restringida.

Pruebas de unidades

Compatibilidad con Doctest

Compatibilidad con Doctest

CLion 2020.2 añade compatibilidad con otro marco de trabajo para C++ de un solo encabezado: Doctest. La popularidad de Doctest ha crecido entre la comunidad, y ahora es compatible con CLion, con detección automática de pruebas, creación de configuraciones de ejecutar/depurar y un práctico ejecutor de pruebas integrado para mostrar los resultados de las pruebas. Aprenda a configurar un conjunto de pruebas para su lanzamiento en este artículo del blog al respecto.
Pruebas de plantilla Catch2

Pruebas de plantilla Catch2

Estos tipos de pruebas en Catch2 ahora se reconocen y se tratan como el resto de tipos de pruebas.

Ignorar pruebas de Google Test

Ignorar pruebas de Google Test

La macro GTEST_SKIP() en Google Test permite saltarse pruebas en el tiempo de ejecución. Ahora, CLion lo permite.

Cobertura de código

Cobertura de código

CLion 2020.2 mejora la experiencia del usuario añadiendo indicadores de cobertura de forma automática cuando hace clic en el botón Run with Coverage (Ejecutar con cobertura). Ahora, si su perfil de CMake seleccionado actualmente no incluye opciones de compilador para la cobertura, CLion buscará un perfil de CMake (y creará uno si no lo encuentra) con los indicadores de cobertura transmitidos vía CMAKE_CXX_FLAGS y CMAKE_C_FLAGS.

Desarrollo integrado: complemento PlatformIO

Para el desarrollo integrado, hemos actualizado un complemento para PlatformIO, lo cual ha supuesto importantes mejoras:

Resaltado en archivos platformio.ini

Resaltado en archivos platformio.ini

Los archivos de configuración de proyectos PlatformIO ahora se resaltan correctamente para que pueda leerlos y actualizarlos con más facilidad.

Nuevas configuraciones para ejecutar/depurar

Nuevas configuraciones para ejecutar/depurar

Cuando se crea un proyecto nuevo desde el asistente para proyectos nuevos de CLion, de forma automática se añaden numerosas configuraciones de ejecutar/depurar. Por ejemplo, _PROGRAM, _MONITOR, _CLEAN, _TEST, entre muchas otras.

Perfiles de CMake para configuraciones de PlatformIO

Perfiles de CMake para configuraciones de PlatformIO

Ahora, CLion crea de forma automática perfiles de CMake para las entradas CMAKE_CONFIGURATION_TYPES del proyecto de CMake PlatformIO.

VCS

Git instalado en WSL2

Git instalado en WSL2

Si desarrolla con las cadenas de herramientas WSL2 y utiliza Git en WSL2, ahora disfrutará de que CLion cambie entre ejecutables Git dependiendo de la ubicación del proyecto. Detectará automáticamente el ejecutable Git desde WSL2 para proyectos abiertos desde ahí (a través de la ruta \\wsl$) y cambiará todas las funcionalidades relacionadas con Git para trabajar con este.

Solicitudes de extracción de GitHub

Solicitudes de extracción de GitHub

CLion 2020.2 presenta una vista nueva y más espaciosa para solicitudes de extracción de GitHub. Muestra todos los detalles de una solicitud de incorporación de cambios en particular (como mensajes, nombres de ramas, autor, usuario asignado, archivos modificados, confirmaciones y línea de tiempo) y presenta los resultados de las comprobaciones previas a la confirmación. También ayuda con numerosas acciones, como iniciar una revisión, solicitar revisiones, añadir comentarios o combinar solicitudes de incorporación de cambios desde el propio IDE.

Más información

Go to Declaration or Usages

Go to Declaration or Usages

La acción Go to Declaration or Usages (Ctrl+clic / Ctrl+B) se comporta de forma distinta dependiendo del caso y de la configuración del IDE:

  • Si se invoca con la utilización de un símbolo, navega a la declaración de esa utilización.
  • Si se invoca con una declaración, muestra la lista de las utilizaciones de esa declaración.
  • Si se invoca con una definición, muestra la declaración o los usos asociados. Todo esto depende de la configuración de Settings | Editor | General | Go to Declaration or Usages.

Mejoras de rendimiento

Se han solucionado algunos problemas de congelación y demoras. Para evitar la degradación en el rendimiento del editor, CLion ahora introduce una barra invertida al pulsar Enter dentro de la definición de una macro. Muy probablemente la definición de la macro continuará en una línea nueva, de modo que así se evita que el IDE efectúe nuevos análisis redundantes.

Actualización del complemento Rust

Actualización del complemento Rust

En la versión 0.3 del complemento, se ha habilitado de forma predeterminada el nuevo motor para la expansión de macros, que hasta ahora había sido experimental. Este motor gestiona declaraciones de módulos y bloques impl generados por macros, y le da información de todo su código, incluyendo contenedores como tokio y async-std. Más información en esta entrada del blog.

Otra gran actualización es la introducción de compatibilidad directa con depuradores para la cadena de herramientas MSVC de Rust. Ahora puede utilizar el depurador basado en LLDB incluido en CLion para la cadena de herramientas de Visual Studio y depurar código Rust creado en Windows utilizando MSVC de Rust.

Entre otras mejoras, se incluyen nuevas refactorizaciones (Move para archivos y elementos de nivel superior e Introduce Constant), compatibilidad directa con or_patterns, resaltado de errores en literales de formato dentro de macros, como println!, representación de la documentación en el editor, consejos de inserciones para llamadas a métodos de cadena y mejoras en el flujo de trabajo del depurador en IntelliJ IDEA.

Más información

Otras mejoras

  1. El depurador basado en LLDB para la cadena de herramientas de Microsoft Visual Studio C++ mantenida por JetBrains ha recibido un gran número de mejoras. Las más destacadas son: sesiones de depuración que ya no se congelan ni se detienen, los subprocesos ahora reciben un nombre de forma automática según su función de punto de entrada, el depurador se ha sometido a grandes mejoras de rendimiento y se han solucionado varios problemas de congelación y caída.
  2. Los Pretty-Printers STL GDB actualizados se han incluido en CLion 2020.2.
  3. A partir de ahora, el motor basado en Clangd es el motor de lenguaje predeterminado en CLion, y se ha eliminado la opción de desconectarlo. Settings | Languages & Frameworks | C/C++ | Clangd ahora incluye información sobre la revisión de LLVM Clang utilizada, para que sepa qué esperar en cuanto a compatibilidad de C++ y comprobaciones integradas Clang-Tidy.

Novedades en CLion 2020.1

Desarrollo integrado

Cadena de herramientas IAR

Cadena de herramientas IAR

Si utiliza el compilador/cadena de herramientas IAR en sus proyectos integrados, ahora puede hacerlo en CLion. El proceso de recopilar la información del compilador ya no falla, lo que significa que los proyectos que utilizan la cadena de herramientas IAR se cargan correctamente y funcionan en CLion.

Cabe destacar algunas cuestiones:

  • MinGW es necesario.
  • Algunos consejos sobre la utilización de CMake con IAR Embedded Workbench.
PlatformIO

PlatformIO

PlatformIO es un ecosistema de nueva generación que está adquiriendo popularidad rápidamente. Para beneficiarse de él en sus proyectos integrados, aproveche un nuevo complemento PlatformIO for CLion, que:

  • Añade el tipo de proyecto PlatformIO al asistente de nuevo proyecto.
  • Genera el proyecto basado en CMake PlatformIO correspondiente.
  • Crea automáticamente configuraciones para la depuración y la carga al servidor.
  • Permite la depuración con el depurador PIO Unified desde CLion directamente en microcircuito.

Y mucho más! Consulte la documentación oficial para obtener más información.

Compatibilidad con CUDA

Análisis de código y asistencia a la codificación

El código en CUDA C y C++, incluidas todas las extensiones CUDA específicas, ahora se analizan y resaltan correctamente. Esto significa que la navegación en el código, la documentación de código y otras acciones de asistencia a la codificación funcionan en el código CUDA. Además, CLion puede completar los corchetes angulares para las llamadas de kernel.

Clonemos el proyecto ClaraGenomicsAnalysis de GitHub para descubrir las capacidades de compatibilidad de CUDA en CLion.

Asistente de nuevo proyecto

Asistente de nuevo proyecto

El asistente de nuevo proyecto en CLion se ha actualizado e incluye una nueva opción para crear proyectos CUDA: bibliotecas o ejecutables. Al seleccionarse, genera archivos CMakeLists.txt y main.cu de prueba para usted.

Extensiones de archivo y destinos de CMake

Extensiones de archivo y destinos de CMake

Hay nuevas extensiones de archivo CUDA compatibles (.cu y .cuh) disponibles en el cuadro de diálogo de creación de nuevo archivo C/C++. Y la lista de posibles destinos para actualizar este cuadro de diálogo incluye tanto destinos CMake generales y CUDA específicos (creados con los comandos cuda_add_executable y cuda_add_library).

Más información

Desarrollo en Windows

Clang-cl

Clang-cl

Hemos hecho posible la utilización de clang-cl en CLion en Windows, con compatibilidad para las versiones 8.0 y superiores.

Puede instalarlo desde el sitio web de LLVM o con las herramientas de Visual Studio. Cuando haya terminado, seleccione la cadena de herramientas de Visual Studio en CLion y dirija a clang-cl.exe en la configuración de la cadena de herramientas.

Depurador para la cadena de herramientas de Visual Studio C++

Depurador para la cadena de herramientas de Visual Studio C++

El depurador basado en LLDB para la cadena de herramientas de Visual Studio C++ desarrollada por JetBrains ahora es el depurador por defecto de esta cadena de herramientas. ¡Así que puede empezar a utilizarlo de inmediato!

Tenga en cuenta debe habilitar explícitamente la compatibilidad incluida para los visualizadores nativos en Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB.

Configuraciones de ejecutar/depurar

Destinos personalizados para GDB remoto e integrado

Destinos personalizados para GDB remoto e integrado

Las configuraciones Remote GDB Server y Embedded GDB Server ahora funcionan con destinos personalizados. Estas configuraciones, que previamente solo funcionaban con destinos CMake, le permiten depurar su aplicación en un host remoto o en el microcontrolador desde la instancia de CLion que se ejecuta en su máquina local.

Si ya ha creado estas configuraciones, CLion 2020.1 guardará los ajustes previos de la configuración de ejecutar/depurar en el directorio projectFilesBackup de la carpeta del proyecto y se lo notificará.

Compatibilidad con macros y variables de ruta en las configuraciones de ejecutar/depurar

Compatibilidad con macros y variables de ruta en las configuraciones de ejecutar/depurar

Ahora puede utilizar variables de ruta y macros en los campos Program Arguments y Working Directory en las configuraciones de CMake, Custom Build y Gradle Native Applications. Las macros le ayudan a obtener valores para:

  • El directorio de build para la configuración de ejecución actual de CMake.
  • El directorio de generación para la configuración de ejecución actual de CMake.
  • El directorio de archivos del proyecto.
  • Y muchos más.

Las macros FilePrompt/Prompt pueden utilizarse para mostrar un cuadro de diálogo seleccionador de archivos o de entrada de cadena al ejecutar/depurar la configuración.

Path Variable puede definir una ruta a la biblioteca que se utiliza ampliamente en sus proyectos, pero que está ubicada fuera del directorio del proyecto.

Redirección de entrada

Redirección de entrada

Si necesita redirigir la entrada de un archivo al stdin de su aplicación, ahora puede hacerlo. Utilice un nuevo campo en la configuración denominado Redirect input from. Introducir:

  • Una ruta relativa (CLion se antepondrá con la ruta del directorio de trabajo).
  • Una ruta absoluta (se reasignará para configuraciones remotas).
  • O macros (como FilePrompt).

Herramientas Clang

DFA en Clangd

DFA en Clangd

Data Flow Analysis (DFA) de CLion realiza lo que un compilador no suele hacer por usted: analiza el flujo de datos en su código y detecta posibles incidencias a partir de los resultados. Captura condiciones que son siempre verdaderas o falsas, bucles infinitos, instrucciones de retorno que faltan, recursividad infinita y mucho más. Y con 2020.1, DFA pasa al motor de lenguaje basado en Clangd para ser más preciso y menos pesado en cuanto al rendimiento. ¡Aún estamos trabajando en ello, pero ya dispone de unos buenos resultados!

Finalización solo de Clangd

Finalización solo de Clangd

Un nuevo modo, en el que la finalización la proporciona enteramente el motor de lenguaje basado en Clangd, está habilitado de forma predeterminada. Este modo resuelve la priorización y la organización de las incidencias que ocurren cuando los resultados de la finalización de código de varios motores se mezclan. Este comportamiento está controlado por la configuración Code Completion en Settings | Languages & Frameworks | C/C++ | Clangd.

Decenas de correcciones y mejoras refuerzan la precisión y potencia de este nuevo modo.

Más información

ClangFormat

ClangFormat

Ahora, cuando abre por primera vez un proyecto con un archivo de configuración .clang-format en la raíz del proyecto, CLion lo detectará y cambiará a ClangFormat automáticamente por usted.

Si habilita ClangFormat en un proyecto que no tenga un archivo de configuración .clang-format, CLion le propondrá crear uno por usted.

Clang-Tidy

Clang-Tidy

Cuando se detecta un archivo de configuración .clang-tidy en el proyecto, ahora CLion desactiva automáticamente la utilización de la configuración del IDE para Clang-Tidy. El comportamiento está controlado por Prefer .clang-tidy files over IDE settings en Settings | Editor | Inspections | C/C++ | General | Clang-Tidy.

Formateador y plegado de código

Nueva configuración de nomenclatura

Nueva configuración de nomenclatura

Los campos de miembro de estructura y los campos de miembros de clase ahora tienen configuraciones de nomenclatura diferentes. Puede echarles un vistazo en Settings | Editor | Code Style | C/C++ | Naming Convention.

Plegado de código

Plegado de código

#pragma region y #pragma endregion se pueden usar en CLion para plegado de código.

Actualización de refactorizaciones

Actualización de refactorizaciones

Al llamar a la refactorización Change Signature (Ctrl+F6), CLion actualiza todas las utilizaciones de la función. Un nuevo campo Default value en el cuadro de diálogo Change Signature ofrece la posibilidad de especificar el valor del parámetro que utilizar para todas las utilizaciones. Déjelo en blanco para usar el tipo de valor por defecto al igual que antes.

La misma lógica y un nuevo campo Default value se aplica al arreglo rápido Create Parameter From Usage y a la intención Add Parameter to Constructor.

Editor

Documentación rápida

Documentación rápida

La documentación rápida, una herramienta universal para previsualizar la documentación y obtener información sobre la firma de función, los tipos inferidos y la sustitución de macros, ahora está disponible al pasar el ratón por encima.

Puede controlarlo en la configuración Show quick documentation on mouse move in Settings | Editor | Code Editing.

JetBrains Mono e IntelliJ Light

JetBrains Mono e IntelliJ Light

La fuente por defecto en el editor ha pasado a ser JetBrains Mono, una nueva fuente de código abierto creada por JetBrains. Ha sido diseñada específicamente para facilitar la lectura de código.

Un nuevo tema claro por defecto, IntelliJ Light, también se muestra ahora como tema estándar en todos los distintos sistemas operativos. Si lo prefiere, utilice View | Quick Switch Scheme | Theme para seleccionar un tema no predeterminado.

Sesiones de terminal divididas

Sesiones de terminal divididas

Con CLion 2020.1, puede dividir las sesiones de terminal vertical u horizontalmente para que pueda ejecutarlas en paralelo. Puede invocar el menú contextual desde el terminal para crear, navegar y cerrar una sesión de terminal dividida.

Control de versiones

Ventana de herramientas de confirmación y cuadro de diálogo de confirmación

Nueva ventana de herramientas Commit

Una ventana de herramientas actualizada ofrece más espacio para la lista de archivos modificados y el diff. También le permite añadir cambios a una confirmación cuando están listos, crear un mensaje de confirmación de iteración, y elegir qué cambios provisionales se envían a qué confirmación.

La nueva interfaz de usuario está habilitada de forma predeterminada para los nuevos usuarios; los usuarios existentes pueden habilitarla en Settings | Version Control | Commit.

Interactively Rebase from Here

Un cuadro de diálogo actualizado y realmente interactivo le permite:

  • Seleccionar la acción que quiere realizar en cada confirmación en su rama.
  • Consultar un gráfico que muestra qué acciones se han aplicado.
  • Ver los detalles de las confirmaciones.
  • Consultar un diff y revisar o restablecer los cambios de ser necesario.

Instalar Git desde el IDE

La ventana de herramientas Version Control ahora se denomina la ventana de herramientas Git, o Subversion/Mercurial/Perforce si utiliza cualquiera de estas herramientas en lugar de Git.

¡Ya no necesita preinstalar Git manualmente! Cuando abra un proyecto utilizando Git o lo importe desde VCS, si no tiene Git en su máquina, CLion se ofrecerá a descargarlo e instalarlo por usted.

Actualización del complemento Rust

Actualización del complemento Rust

Gracias a las mejoras en la compatibilidad con LLDB, IntelliJ Rust ahora procesa correctamente las enumeraciones y los tipos primitivos, y también muestra claramente los nombres de función en la pila de llamadas.

Otra actualización principal realizada en el complemento es la integración con REPL. Invoque la consola desde Tools | Rust REPL y úsela para realizar el prototipo y revisar su código línea a línea. La integración ofrece el resaltado de sintaxis y la finalización de código, además de algunas prácticas acciones de la consola: historial de comandos, salto de línea suave, desplazamiento rápido hasta el final, etc.

En cuanto a la compatibilidad con lenguajes, IntelliJ Rust ahora gestiona los bloques impl para los alias de tipo. Teniendo en cuenta el rendimiento, solo hemos habilitado esta funcionalidad para los tipos con un número limitado de alias.

Entre otras mejoras, se incluye el resaltado de las variables locales no utilizadas, correcciones de la compatibilidad de los atributos cfg y la nueva inspección Lift return.

Otras mejoras

  • Ahora todas las configuraciones remotas se benefician de la utilización de la interfaz de usuario de las configuraciones SSH comunes y unificadas. Independientemente del origen de una nueva configuración SSH (ya sea una configuración de cadenas de herramientas remotas o configuraciones de servidores GDB remotos), tendrá una entrada en Settings | Tools | SSH Configurations.
  • Si quiere centrarse exclusivamente en su código fuente, puede seleccionar el nuevo modo Zen, que combina el modo sin distracciones con el modo en pantalla completa. Para habilitarlo, vaya a View | Appearance | Enter Zen Mode.