Novedades de ReSharper C⁠+⁠+ 2026.1

ReSharper C⁠+⁠+ 2026.1 ofrece tiempos de inicialización más rápidos y una reducción del uso de memoria. Esta versión añade compatibilidad con la directiva C⁠+⁠+⁠26 #embed y otras nuevas funcionalidades del lenguaje. Las mejoras en la asistencia a la codificación incluyen la importación automática de módulos C⁠+⁠+⁠20 y nuevos escenarios de finalización Postfix. Los desarrolladores de Unreal Engine se benefician de una mejor integración con Blueprint y de correcciones de compatibilidad para la próxima versión de Unreal Engine 5.8.

Rendimiento

ReSharper C⁠+⁠+ 2026.1 aporta importantes optimizaciones de rendimiento en todas las fases de la experiencia del IDE, específicamente adaptadas a las exigencias de los proyectos a gran escala de Unreal Engine. Nuestras mediciones en el proyecto de muestra Lyra para Unreal Engine en modo Out-of-Process demuestran estas mejoras:

  • La indexación inicial del código C⁠+⁠+ es ahora hasta un 20 % más rápida, lo que reduce la espera al abrir una solución por primera vez.
  • El tiempo de inicialización en caliente se ha mejorado en más de un 20 %, por lo que volver a una solución abierta anteriormente es notablemente más rápido.
  • El uso de memoria de backend tras un inicio en caliente se ha reducido hasta en un 21 %, lo que deja más recursos disponibles para el resto de su flujo de trabajo.

Funcionalidades del lenguaje

ReSharper C⁠+⁠+ ahora es compatible con la directiva del preprocesador #embed introducida en C⁠+⁠+⁠26 y C23. Esta directiva le permite incrustar el contenido de un archivo de recursos binarios directamente en su código fuente, sin necesidad de herramientas externas ni generación de código.

Esta versión también añade compatibilidad con dos funcionalidades del lenguaje adicionales:

  • Operador _Countof: ReSharper C⁠+⁠+ ahora reconoce el operador _Countof de C2Y (el futuro estándar de C), que devuelve el recuento de elementos de un vector.
  • Tipos de coma flotante ampliados: ahora se admiten los tipos de coma flotante bfloat16_t, float16_t y float128_t, estandarizados en C⁠+⁠+⁠23.

ReSharper C⁠+⁠+ 2026.1 mejora la compatibilidad con las extensiones específicas del compilador:

  • Funciones anidadas: ReSharper C⁠+⁠+ ahora admite la extensión de GCC para definir funciones dentro de otras funciones en código C.
  • Calificadores _Nullable/_Nonnull: el analizador ahora reconoce los calificadores de nulidad de punteros de Clang.

Asistencia a la codificación

Reduzca la carga cognitiva con la nueva compatibilidad de ReSharper C⁠+⁠+⁠'⁠ con la importación automática para módulos C⁠+⁠+⁠20. Cuando se utiliza un símbolo exportado pero falta la declaración import correspondiente, el IDE ahora ofrece una sugerencia inteligente para insertarla de forma automática. En la actualidad, la importación automática solo es compatible con símbolos exportados directamente desde unidades de interfaz de módulos primarios y particiones de módulos.

La finalización Postfix se ha ampliado para cubrir los siguientes casos:

  • Tipos primitivos: anteriormente, la finalización Postfix solo funcionaba con tipos de clases y structs. Ahora también gestiona expresiones de tipos primitivos como int, bool y float.
  • Literales: la finalización Postfix ahora funciona tras los literales, por lo que al escribir 42.cos se expande a cos(42).
  • Sufijos literales definidos por el usuario: la finalización de código ya está disponible para los operadores de literales definidos por el usuario. Al escribir un literal seguido de _, ReSharper C⁠+⁠+ sugiere los sufijos de operator"" coincidentes que son visibles en el ámbito actual.

Dos mejoras en la sangría automática contribuyen a una experiencia de edición más fluida:

  • Al pulsar Intro entre las llaves de una instrucción de flujo de control o una definición de clase, ahora el cursor se coloca correctamente con la sangría adecuada, incluso cuando hay atributos presentes (p. ej. class [[deprecated]] MyClass {}).
  • La sangría automática dentro de bloques extern ahora respeta la configuración de formateo Indent linkage specification block members.

Unreal Engine

ReSharper C⁠+⁠+ 2026.1 mejora la compatibilidad con Blueprint:

  • BlueprintPure en Code Vision: Code Vision ahora reconoce las funciones marcadas con el especificador BlueprintPure, además de BlueprintCallable.
  • Implementaciones de eventos en Code Vision: Code Vision ahora detecta implementaciones de funciones BlueprintNativeEvent y BlueprintImplementableEvent en activos Blueprint.
  • Find Usages para propiedades delegadas: Find Usages ahora descubre vinculaciones del lado de Blueprint para propiedades delegadas BlueprintAssignable.
  • Mayor precisión en la búsqueda de Blueprints: la función Find Usages para las referencias de Blueprints ahora busca por ruta del activo en lugar de hacerlo por nombre de Blueprint. Esto significa que, si su proyecto contiene varios Blueprints con el mismo nombre, los resultados de la búsqueda ya no serán ambiguos.

ReSharper C⁠+⁠+ ahora indexa los complementos de Unreal Engine de forma predeterminada. Con el uso cada vez mayor de complementos en los proyectos de Unreal Engine y las recientes mejoras de rendimiento, la indexación predeterminada de los complementos proporciona un mejor análisis de código y navegación sin configuraciones adicionales. Puede restaurar el comportamiento anterior en la página ReSharper | Options | Code Editing | C/C⁠+⁠+ | Unreal Engine en Settings.

ReSharper C⁠+⁠+ también añade compatibilidad con los cambios de UnrealHeaderTool en la próxima versión de Unreal Engine 5.8. En concreto, las macros DECLARE_DYNAMIC_MULTICAST_DELEGATE ya no provocan errores de falsos positivos en el análisis de código.

Si le interesa un IDE independiente y multiplataforma para el desarrollo con Unreal Engine, considere Rider. La compatibilidad con Unreal Engine en Rider y ReSharper C⁠+⁠+ está alineada, y puede esperar las mismas mejoras en la actualización de Rider 2026.1.

Análisis del código

ReSharper C⁠+⁠+ 2026.1 actualiza el binario Clang-Tidy incluido, e incorpora las últimas comprobaciones y mejoras de la versión LLVM 22.

Una nueva inspección detecta los inicializadores designados que aparecen en un orden diferente al que se declaran los miembros correspondientes en el struct. Dado que C⁠+⁠+⁠20 exige que los inicializadores designados sigan el orden de declaración, los inicializadores fuera de orden provocan un error de compilación. ReSharper C⁠+⁠+ ahora señala estos casos y ofrece un arreglo rápido que reordena de forma automática la lista de inicializadores para que coincida con la definición del struct.

Otra nueva inspección le avisa cuando una función tiene distinto nivel de acceso (public, protected o private) que la función virtual que anula en la clase base. Si bien C⁠+⁠+ permite cambiar el nivel de acceso de una anulación, hacerlo suele ser involuntario y puede dar lugar a un comportamiento inesperado. La inspección ayuda a detectar estas sutiles discrepancias.

Esta versión amplía las inspecciones Unused symbol a los miembros de clase definidos en archivos de origen .cpp. Anteriormente, se asumía que estos miembros eran visibles externamente y se excluían del análisis de Unused symbol. Ahora, se analizan de la misma manera que las funciones static y los miembros de espacios de nombres anónimos.

Navegación

Hemos perfeccionado las marcas de medianil en los archivos C⁠+⁠+ para ayudarle a navegar y comprender bases de código complejas con el mínimo esfuerzo.

  • Descripciones emergentes con resaltado semántico: las descripciones emergentes que aparecen al pasar el cursor por encima de las marcas de medianil ahora cuentan con resaltado semántico, lo que facilita su lectura de un vistazo.
  • Navegación a clases base: un nuevo icono del medianil de las definiciones de clase te permite navegar hacia arriba en la jerarquía de herencia hasta las clases base, complementando las marcas existentes para navegar a clases derivadas.

La acción Go to Declaration y otras acciones de navegación ahora funcionan con la llave de apertura en expresiones de inicialización con llaves (por ejemplo, MyStruct { 1 }), además del nombre del tipo.

Integración con Visual Studio

Las descripciones emergentes de ReSharper C⁠+⁠+ ya están disponibles en Visual Studio 2026, lo que restaura la compatibilidad con las descripciones emergentes que faltaba en la versión inicial de compatibilidad con Visual Studio 2026. También se ha mejorado la presentación de las descripciones emergentes: ahora los iconos ayudan a distinguir entre los tipos de símbolos y se ha mejorado la compatibilidad con los temas.

Varios elementos de la interfaz de usuario del editor en ReSharper se han renovado para alinearse mejor con el aspecto moderno de la experiencia de Visual Studio.

Gracias a un rediseño, la interfaz de usuario de la finalización de código ahora ofrece un aspecto más limpio y coherente dentro del editor.

También hemos modernizado varios componentes relacionados de la interfaz de usuario, como ventanas emergentes de información de parámetros, descripciones emergentes y otras ventanas emergentes del editor, que reemplazan elementos visuales obsoletos y mejoran su apariencia en todos los temas y configuraciones de DPI.

La interfaz de usuario actualizada ahora es compatible con la funcionalidad de zoom del editor de Visual Studio, lo que garantiza que las listas de finalización y la información de los parámetros se ajusten correctamente cuando cambian los niveles de zoom.

ReSharper C⁠+⁠+ 2026.1 corrige varias incidencias con el modelo de proyecto:

  • Proyectos de Windows Driver Kit (WDK): ReSharper C⁠+⁠+ ahora reconoce correctamente los conjuntos de herramientas de plataforma específicos de WDK y proporciona las definiciones de preprocesadores predeterminadas adecuadas.
  • Proyectos de WinUI 3: las rutas de inclusión ahora están configuradas correctamente.
  • Directorios para bibliotecas de tipos: ReSharper C⁠+⁠+ ahora resuelve los archivos de bibliotecas de tipos COM (.tlb) a partir de los directorios de bibliotecas configurados en los ajustes del proyecto de Visual Studio.

Eche un vistazo a las Novedades de ReSharper para conocer el resto de los cambios introducidos en esta versión.