Das ist neu in CLion

CLion 2020.3 bringt für wichtige Teile des Entwicklungsprozesses – Codeanalyse, Ausführen und Debuggen von Anwendungen sowie Unit-Tests – wichtige, mit Spannung erwartete Verbesserungen mit. Bei der Embedded-Entwicklung greift Ihnen CLion jetzt mit einer Erstunterstützung für MISRA C und C++ unter die Arme. Qt-Nutzer wiederum profitieren von IDE-Funktionen, die speziell für das Arbeiten mit Qt-Code optimiert wurden.

Debugger

Debuggen als Root

Mit CLion 2020.3 können Sie Ihre Anwendung mit Root-Rechten ausführen und debuggen. Dazu müssen Sie nur die entsprechende Option in der Run/Debug-Konfiguration auswählen. Dies funktioniert für CMake-, Makefile-, Gradle-Native-, Custom-Build- und CTest-Anwendungen.

Debuggen mit Core-Dumps

Debuggen mit Core-Dumps

Mit der neuen Aktion Run | Open Core Dump… können Sie unter Linux und macOS den gespeicherten Core-Dump eines abgestürzten Prozesses in CLion öffnen und debuggen. Sie können die Frames- und Variablenansicht nutzen, die Memory- und Disassembly-Ansicht analysieren, Ausdrücke auswerten und Debugger-Befehle in der Debugger-Konsole ausführen. Erfahren Sie mehr über die Konfiguration dieser Funktion und die bekannten Einschränkungen.

Ausführungspunkt setzen

Ausführungspunkt setzen

Mit der neuen Aktion Set Execution Point to Cursor können Sie beim Debuggen den Ausführungspunkt Ihres Programms hin und her verschieben, einen anderen Zweig in einem if-else- oder switch-case-Konstrukt auswählen oder Schleifen unterbrechen, neu starten oder ganz überspringen. Sie müssen dazu nur einen Pfeil in der Randleiste zur gewünschten Zeile ziehen.

Weitere Informationen

Interaktive Hinweise und Inline-Überwachungen

Interaktive Hinweise und Inline-Überwachungen

Wenn Ihre Anwendung im Debug-Modus ausgeführt wird, zeigt der Editor jetzt anklickbare Inline-Hinweise an, die Sie erweitern können, um alle Felder einer Variablen anzuzeigen. Darüber hinaus können Sie die Variablenwerte in der Dropdown-Liste ändern oder einen beliebigen Ausdruck als Inline-Überwachung an dieser Stelle hinzufügen.

Run-Einstellungen

Umgebung per Skript konfigurieren

Umgebung per Skript konfigurieren

In CLion können Sie jetzt mithilfe eines Skripts die Umgebung definieren, in der eine Run/Debug-Konfiguration gestartet wird. Die Einstellung für diese neue Option finden Sie in allen Konfigurationen für Anwendungen und Unit-Tests.

Konfigurationen während der Indizierung bearbeiten

Konfigurationen während der Indizierung bearbeiten

Keine Wartezeiten mehr! Run/Debug-Konfigurationen können jetzt bearbeitet werden, noch während das Projekt indiziert wird.

Unit-Tests

CTest-Unterstützung

CTest-Unterstützung

CLion unterstützt jetzt den CMake-spezifischen Test-Runner CTest. Die IDE erkennt die Liste der mit CTest ausgeführten Tests und erstellt automatisch Run/Debug-Konfigurationen für sie. Beim Ausführen von Tests werden die Ergebnisse im integrierten Test-Runner angezeigt. Dort können Sie die Tests debuggen, fehlgeschlagene Tests wiederholen und weitere Aktionen ausführen.

Weitere Informationen

Test-Runner für Google Test

Test-Runner für Google Test

CLion 2020.3 optimiert die Unterstützung für Google Test, das weltweit beliebteste Unit-Test-Framework für C++ (laut Entwickler-Ökosystem-Umfrage 2020 verwenden 31% der C++-Entwickler Google Test).


    Einige der Neuerungen:
  • Der vollständige Testbaum wird sofort im integrierten Test-Runner angezeigt, noch bevor die Tests ausgeführt werden.
  • Bei parametrisierten Tests zeigt CLion jetzt die Testparameter direkt im Testbaum an.
  • Deaktivierte Tests (solche mit DISABLED-Präfix im Namen) werden jetzt auch im Testbaum durch ein entsprechendes Symbol gekennzeichnet.

Codeanalyse und Refactoring

MISRA

MISRA C und C++

CLion 2020.3 bietet eine teilweise Unterstützung für MISRA C 2012 und MISRA C++ 2008 – zwei Richtlinien, die in der Embedded-Entwicklung und insbesondere in der Automobilindustrie weit verbreitet sind. Dies beschleunigt die Entwicklung solcher Projekte, indem Inkompatibilitäten in früheren Entwicklungsphasen entdeckt werden. Die Liste der derzeit unterstützten Prüfungen ist auf der Confluence-Seite von CLion verfügbar.

Nicht verwendete Werte

Nicht verwendete Werte

CLion 2020.3 verbessert die Inspektion Unused Value, die Situationen erkennt, in denen eine Variable nach der Zuweisung nicht mehr verwendet wird. Die Inspektion kann jetzt so angepasst werden, dass sie Stilvorgaben zur Verwendung von Standard-Variableninitialisierern berücksichtigt. In den Einstellungen finden Sie eine neue Option, mit der die Inspektion in solchen Fällen deaktiviert werden kann.

Lambda-Parameter extrahieren

Lambda-Parameter extrahieren

CLion wurde um ein neues Refactoring namens Extract Lambda Parameter ergänzt. Dieses extrahiert einen Ausdruck oder eine Anweisung in einen neuen Parameter, dem ein Lambda-Ausdruck als Argument übergeben wird. Die Anweisung könnte beispielsweise eine Vergleichsfunktion sein, der an eine Sortierfunktion übergeben wird.

Sehen Sie das Extract-Refactoring in Aktion

Codevervollständigung

Clang-Completion-Snippets

Clang-Completion-Snippets

Clang-Completion-Snippets unterstützen Sie durch das Einfügen gängiger Konstrukte bei der Eingabe von C++-Schlüsselwörtern. In bestimmten Fällen – beispielsweise beim Eingeben von typedef – kann die Code-Completion nicht nur das Schlüsselwort selbst vorschlagen, sondern auch ein Grundgerüst für Typ und Namen.

Completion für Vorlagen

Completion für Vorlagen

Die optimierte Code-Completion in CLion 2020.3 ist bei Vorlagentypen jetzt viel präziser. Beispielsweise werden in der Funktionsvorlage Completion-Vorschläge für Containerelemente und Iteratoren angezeigt.

Qt-Projekte

Neues Qt-Projekt erstellen

Neues Qt-Projekt erstellen

Im Dialogfeld „New Project“ stehen jetzt die Projekttypen „Qt Console Executable“ und „Qt Widgets Executable“ zur Verfügung. Sie können außerdem den CMake-Präfixpfad für Qt, den C++-Sprachstandard für das Projekt sowie die Qt-Version auswählen. Das neue Projekt wird mithilfe der entsprechenden Vorlagen generiert.

Neue Qt-UI-Klasse erstellen

Neue Qt-UI-Klasse erstellen

Ein neues Element „QT UI Class“ im New-Menü (Alt+Einfg) hilft Ihnen, eine Qt-Klasse zusammen mit einer .ui-Datei zu erstellen. Geben Sie den Klassennamen ein und wählen Sie die Oberklasse aus (QWidget, QMainWindow oder QDialog). Die IDE erstellt .h/.cpp/.ui-Dateien mit dem entsprechenden Dateinamen. Beim Generieren der Dateien werden die Vorlagen unter Settings/Preferences | Editor | File und Code TemplatesQt Class, Qt Class Header und Qt Designer Form – verwendet.

Completion für Signale und Slots

Completion für Signale und Slots

Signale und Slots sind zentrale Qt-Merkmale, die für die Kommunikation zwischen den Objekten verwendet werden. CLion weiß jetzt, wann Signale oder Slots zu vervollständigen sind und zeigt nur die entsprechenden Elemente in der Vorschlagsliste an.

Auto-Importe im Qt-Stil

Auto-Importe im Qt-Stil

In CLion 2020.3 folgen die Vorschläge für das automatische Importieren in Qt-Projekten dem am häufigsten verwendeten Qt-Stil.

Makefile-Projekte

Unterstützung für Projekte mit libtool, dolt und ccache

Unterstützung für Projekte mit libtool, dolt und ccache

Makefile-Projekte mit verschiedenen Wrappern wie ccache, libtool, dolt, slibtool und jlibtool können jetzt erfolgreich in CLion geladen werden. Erfahren Sie mehr über die verbleibenden Einschränkungen.

„Run/Debug“-Konfigurationen

„Run/Debug“-Konfigurationen

Makefile-Projekte lassen sich in CLion jetzt noch einfacher einrichten: Die Run/Debug-Konfigurationen für die Targets im obersten Makefile werden beim Laden des Projekts automatisch angelegt. Zum Ausführen und Debuggen müssen Sie die Konfiguration nur noch auf die kompilierte Programmdatei verweisen.

Weitere Informationen

Einzelne Datei neu kompilieren

Einzelne Datei neu kompilieren

Die Aktion Recompile (Strg+Umschalt+F9) beschleunigt den Entwicklungsprozess, indem sie nur eine einzelne Datei statt des gesamten Projekts kompiliert. Diese Aktion funktioniert jetzt auch für Makefile-Projekte!

CMake

CMake-Profile aktivieren/deaktivieren

CMake-Profile aktivieren/deaktivieren

Mit CLion 2020.3 können Sie mehrere CMake-Profile in CLion konfigurieren. Derzeit nicht verwendete Profile lassen sich deaktivieren. Dies verbessert die Ladezeiten des Projekts und vermeidet überflüssige Fehler bei vorübergehend nicht verfügbaren Profilen (z. B. bei deaktivierten Remote-Konfigurationen). Die Option ist im CMake-Toolfenster und im Einstellungsdialog für CMake-Profile verfügbar.

Weitere Informationen

VCS

Git-Tab in Search Everywhere

Git-Tab in Search Everywhere

Im Dialog Search Everywhere finden Sie jetzt einen Git-Tab. Dort können Sie nach Commit-Hashes, Commit-Nachrichten, Tags und Branches suchen. Sie können im Suchfeld sogar einfache mathematische Berechnungen durchführen.

UI-Updates

Das VCS-Menü trägt jetzt den Namen des verwendeten Versionierungssystems. Das neue, gestraffte Menü enthält nur noch die nützlichsten Aktionen zur Versionsverwaltung Ihres Projekts.

Außerdem werden jetzt die zwei beliebtesten Schaltflächen – Commit und Commit and Push… – explizit im Commit-Bildschirm angezeigt.

Git-Staging-Unterstützung

Sie können jetzt das Staging Ihrer Änderungen direkt CLion durchführen. Um diese Funktion zu aktivieren, öffnen Sie Preferences / Settings | Version Control | Git und aktivieren Sie das Kontrollkästchen Enable staging area. Klicken Sie auf das Plus-Symbol, um Ihre Dateien zum neuen Staged-Knoten in der Commit-Ansicht hinzuzufügen. Sie können Änderungen auch direkt aus der Randleiste oder in der Diff-Ansicht zum Staging hinzufügen. Weitere Details finden Sie in unserem Blogeintrag.

Entwicklung per Fernzugriff

Automatische Aktualisierung von Ausschlusspfaden

Automatische Aktualisierung von Ausschlusspfaden

Verzeichnisse, die lokal als Excluded markiert sind, werden jetzt bei der Erstkonfiguration von Remote-Toolchains automatisch als Excluded paths konfiguriert. Wenn Änderungen an einem bereits synchronisierten Projekt vorgenommen werden, zeigt CLion eine Updatemeldung an und schlägt vor, die Liste der Excluded paths zu aktualisieren.

Zu den Details

Code With Me

Code With Me

CLion 2020.3 unterstützt Code With Me (EAP), den neue JetBrains-Service für kollaborative Entwicklung und Paarprogrammierung. Mit Code With Me können Sie das Projekt, das gerade in Ihrer IDE geöffnet ist, für andere freigeben, um gemeinsam in Echtzeit daran zu arbeiten. Sie können das Plugin heute noch im Plugin-Marketplace (Preferences / Settings | Plugins | Marketplace) herunterladen. Mehr zu Code With Me erfahren Sie in diesen Beiträgen.

Aktualisierte Benutzeroberfläche

Aktualisierter Begrüßungsbildschirm

Aktualisierter Begrüßungsbildschirm

CLion 2020.3 bringt einen überarbeiteten Begrüßungsbildschirm mit. Dank dem neuen Layout sind die gängigsten Vorgänge mit einem Mausklick erreichbar. Nutzen Sie den Sofortzugriff auf aktuelle Projekte, IDE-Anpassungen und Plugin-Einstellungen.

Tabs ziehen und ablegen

Editor teilen

Sie können jetzt das Editorfenster aufteilen, indem Sie einen Tab auf eine Seite des Haupteditorfensters ziehen. Und mit der neuen Aktion Open in Right Split wird der Editor beim Öffnen einer Datei vertikal geteilt.

Die Aktion ist in der Projektansicht und in anderen Navigations-Popups verfügbar, z. B. Recent Files und Search Everywhere (Umschalt+Enter).

IDE-Design mit Betriebssystemeinstellungen synchronisiert

IDE-Design mit Betriebssystemeinstellungen synchronisiert

CLion kann jetzt mit Ihrem Betriebssystemdesign synchronisiert werden. Um diese Funktion zu aktivieren, gehen Sie zu Settings / Preferences | Appearance & Behavior | Appearance und aktivieren Sie das Kontrollkästchen Sync with OS. Klicken Sie auf das Zahnradsymbol neben Sync with OS, um Ihr bevorzugtes Design auszuwählen.

Update für Rust-Plugin

Update für Rust-Plugin

IntelliJ Rust unterstützt jetzt die Cargo-Funktionen vollständig und ermöglicht ihre Konfiguration mit einer durchdachten neuen UI. Die Funktionen eines Workspaces können mit einem einzigen Klick ein- und ausgeschaltet werden, und die Codeunterstützung des Plugins berücksichtigt diese Einstellungen. Details dazu finden Sie in diesem Blogeintrag.

Außerdem erlaubt das Plugin jetzt die Verwendung von Rustfmt als Standard-Codeformatierer. Aktivieren Sie einfach das entsprechende Kontrollkästchen in Settings / Preferences | Languages & Frameworks | Rust | Rustfmt, um bei einer Neuformatierung der gesamten Datei Rustfmt zu verwenden. Beim Anwenden von Reformat Code auf eine Codeauswahl wird vorerst noch der IDE-Formatierer verwendet.

Der Projektassistent des Plugins bietet neue Vorlagen und die Option zur Verwendung von benutzerdefinierten Vorlagen für die Cargo-Generierung.

Zu den weiteren Neuerungen zählen die WebAssembly-Projektunterstützung sowie eine experimentelle Engine für die Namensauflösung.

Das ist neu in CLion 2020.2

Durch das Hinzufügen von Makefile-Projekten und die Erweiterung der CMake-Unterstützung deckt CLion 2020.2 eine Vielzahl von C++-Projekten ab. Die Konformität mit dem C++20-Standard wurde verbessert. Die Codeanalyse ist jetzt treffsicherer und erkennt mehr kritische Fehler wie zum Beispiel hängende Zeiger. Auch in anderen Bereichen wie Unit-Tests, Code-Coverage und Embedded-Entwicklung gibt es umfassende Verbesserungen.

Projektmodelle

Makefile-Projektunterstützung

Sie arbeiten an einem Makefile-basierten Projekt? Nutzen Sie die intelligenten Funktionen von CLion – inklusive Out-of-the-Box-Unterstützung für Makefile-Projekte. Sie können einen Ordner mit einem Makefile auf der obersten Ordnerebene als Projekt öffnen oder im Open-Dialog direkt ein Makefile auswählen. Die IDE führt make aus (mit der Option --just-print, um die tatsächliche Ausführung eines Builds zu vermeiden), analysiert die Ausgabe des make-Befehls und lädt das Projekt. Mehr Informationen zu den Details, den bekannten Einschränkungen und der langen Liste der Projekte, mit denen wir unseren Ansatz getestet haben, finden Sie in unserem Blog.

Hier geht es zum Rundgang

Verbesserte Benutzerführung für CMake

Verbesserte Benutzerführung für CMake

Die CMake-Profileinstellungen unter Build, Execution, Deployment | CMake haben eine neues, moderneres Design erhalten, inklusive nützlicher Tipps für die einzelnen Einstellungen. Darüber hinaus sind mehrere Aktionen für CMake-Projekte unter Find Action verfügbar, und Sie können allen Aktionen, die Sie regelmäßig verwenden, ein Tastenkürzel zuweisen:

  • CMake-Einstellungen
  • Neuladen des CMake-Projekts abbrechen
  • CMakeCache-Datei öffnen

CMake-Upgrade

CLion enthält jetzt CMake 3.17 und bietet eine Erstunterstützung für zwei neue Funktionen:

  1. Ninja Multi-Config: Mit der Generatoroption -G "Ninja Multi-Config" können Sie jetzt CLion-Builddateien für jede Konfiguration erhalten (beachten Sie, dass CLion vorübergehend nur eine ausgewählte Konfiguration für das CMake-Profil verwendet).
  2. CMake-Header-Vorkompilierung: Verwenden Sie den Befehl target_precompile_headers, um Header-Dateien zu den Eigenschaften PRECOMPILE_HEADERS und/oder INTERFACE_PRECOMPILE_HEADERS eines Ziels hinzuzufügen. CLion behandelt solche vorkompilierten Header korrekt.

Hier geht es zum Rundgang

Build-Prozess

Einzelne Datei neu kompilieren

Die Aktion Recompile single file beschleunigt den Entwicklungsprozess, da lokale Änderungen schnell überprüft werden können. Sie ist jetzt für Ninja und andere Generatoren verfügbar, die in CMake verwendet und in CLion unterstützt werden.

Dank einem wichtigen Bugfix kann CLion jetzt Build-Prozesse für mehrere unabhängige Projekte parallel durchführen, ohne dass sie sich gegenseitig vom Starten abhalten.

Codeanalyse

Die Codeanalyse wurde in CLion 2020.2 umfassend überarbeitet. Die Treffsicherheit vieler Überprüfungen wurde erhöht, und es werden mehr Fälle erfasst. In dieser Version wurde auch die mittels Clangd-Engine neu implementierte Datenflussanalyse weiter optimiert.

Hängende Zeiger

Hängende Zeiger

Zeiger, die auf ungültige Daten verweisen, führen zu Laufzeitproblemen. Typische Fälle sind die mehrfache Freigabe (double-free) und die Verwendung nach Freigabe (use-after-free). CLion erkennt jetzt solche hängenden Zeiger, wenn sie im lokalen Gültigkeitsbereich auftreten, keine Zeigerarithmetik beteiligt ist und die Analyse nicht durch Makros behindert wird.

Vereinfachung

Vereinfachung

Die Code-Inspektion „Simplify“ ist jetzt treffsicherer und deckt mehr Fälle ab. Sie funktioniert für die folgenden Arten von Anweisungen:

  • Bedingung == true
  • Bedingung1? true : Bedingung2
  • if(Bedingung1) return true; return Bedingung2;
  • Anweisungen für identische Zweige

Die Fälle können unter Settings | Editor | Inspections | C/C++ | General | Simplifiable statement separat konfiguriert werden.

Nicht aktualisierte Schleifenbedingung

Nicht aktualisierte Schleifenbedingung

Die CLion-Inspektion „Loop condition is never updated“ erkennt Situationen, in denen eine Schleifenbedingung innerhalb der Schleife nicht aktualisiert wird. Die Inspektion ist ähnlich wie clang-tidy:bugprone-infinite-loop bei Clang-Tidy, aber sie funktioniert auch bei Schleifen mit Austrittspunkten und bei Fällen mit Lambdas oder Referenzen.

Nicht verwendeter Code

Nicht verwendeter Code

Die Inspektion Unused code wurde massiv überarbeitet. Unter anderem funktioniert sie jetzt bei Typ-Aliasnamen; die using-Konstrukte können sowohl global als auch lokal definiert sein.

Inspektions-Widget und Problemansicht

Inspektions-Widget und Problemansicht

Zu guter Letzt haben wir ein neues Inspektions-Widget eingeführt. Es zeigt die Anzahl der Warnungen und Fehler in der aktuellen Datei an und ermöglicht die einfache Navigation zwischen ihnen. Sie können auch die Hervorhebungsstufe konfigurieren (wie zuvor mit dem sogenannten Hector-Symbol).

Wenn Sie auf das Inspektions-Widget klicken, wird das Problems-Toolfenster geöffnet (View | Tool Window | Problems). Dieses zeigt die Liste der Warnungen und Fehler in der aktuellen Datei an und hilft Ihnen beim Navigieren zu den Problemstellen. Durch Aufruf von Alt+Enter direkt im Toolfenster können Sie die Probleme beheben.

C++20

Dieses Jahr kommen C++-Entwickler in den Genuss eines offiziellen neuen Sprachstandards, und CLion bietet bereits heute Unterstützung für viele der neuen Sprachmerkmale. Auch bei C++20-Code zeigt sich die Sprachengine von CLion 2020.2 generell stabiler.

C++20-Schlüsselwörter

C++20-Schlüsselwörter

Bei der Hervorhebung und Vervollständigung unterstützt CLion 2020.2 die neuen Schlüsselwörter:

  • char8_t
  • consteval und constinit
  • co_await, co_return und co_yield
Designierte Initialisierer

Designierte Initialisierer

Die Code-Completion in designierten Initialisierern funktioniert jetzt für Felder aus einer Basisklasse.

explicit(bool)

explicit(bool)

Das C++20-Konstrukt explicit(bool) wird jetzt korrekt hervorgehoben. Die Unterstützung umfasst auch Namenshinweise für Bedingungsargumente sowie Navigations- und Refactoring-Funktionen.

Bereichsbasierte for-Schleifen mit Initialisierer

Bereichsbasierte for-Schleifen mit Initialisierer

Bereichsbasierte for-Schleifen mit init-Anweisung werden jetzt unterstützt. Dies gilt auch für Refactorings wie das Umbenennen von Variablen innerhalb der Schleife.

Funktionsergebnis beschränken

Funktionsergebnis beschränken

„Constrain a function's result“ ist eine neue Inspektion für Code, in dem Concepts verwendet werden. Sie schlägt vor, lokale Auto-Variablen zu beschränken, wenn ihnen das Ergebnis eines beschränkten Funktionsaufrufs zugewiesen wird.

Unit-Tests

Doctest-Unterstützung

Doctest-Unterstützung

CLion 2020.2 unterstützt mit Doctest ein weiteres Single-Header-Framework für C++. Doctest hat in der Community an Popularität gewonnen, und die Unterstützung in CLion umfasst die automatische Testerkennung, die Erstellung von Run/Debug-Konfigurationen sowie einen praktischen Test-Runner zur Anzeige von Testergebnissen. In einem separaten Blogbeitrag zeigen wir Ihnen, wie Sie eine Testbatterie konfigurieren und ausführen können.
Catch2-Vorlagentests

Catch2-Vorlagentests

Diese Testtypen werden jetzt in Catch2 genauso wie die anderen Testtypen erkannt und gehandhabt.

Tests in Google Test überspringen

Tests in Google Test überspringen

In Google Test können mit dem Makro GTEST_SKIP() Tests zur Laufzeit übersprungen werden. Dies wird jetzt von CLion unterstützt.

Code-Coverage

Code-Coverage

CLion 2020.2 macht Ihnen das Leben leichter, indem es automatisch Coverage-Flags hinzufügt, wenn Sie auf Run with Coverage klicken. Wenn Ihr aktuell ausgewähltes CMake-Profil keine Coverage-Compileroptionen enthält, sucht CLion jetzt nach einem CMake-Profil, in dem die Coverage-Flags mittels CMAKE_CXX_FLAGS und CMAKE_C_FLAGS übergeben werden. Wird kein solches Profil gefunden, erstellt die IDE eines.

Embedded-Entwicklung: PlatformIO-Plugin

Um Sie bei der Embedded-Entwicklung zu unterstützen, haben wir das Plugin für PlatformIO erheblich verbessert:

Hervorhebung in platformio.ini-Dateien

Hervorhebung in platformio.ini-Dateien

PlatformIO-Projektkonfigurationsdateien werden jetzt ordnungsgemäß eingefärbt, sodass sie leichter zu lesen und zu bearbeiten sind.

Neue Run/Debug-Konfigurationen

Neue Run/Debug-Konfigurationen

Wenn Sie mit dem CLion-Projektassistenten ein neues Projekt erstellen, werden zahlreiche nützliche Run/Debug-Konfigurationen automatisch angelegt: _PROGRAM, _MONITOR, _CLEAN, _TEST und viele andere.

CMake-Profile für PlatformIO-Konfigurationen

CMake-Profile für PlatformIO-Konfigurationen

CLion erstellt jetzt automatisch CMake-Profile für die CMAKE_CONFIGURATION_TYPES-Einträge im PlatformIO-CMake-Projekt.

VCS

Git-Installation in WSL2

Git-Installation in WSL2

Verwenden Sie bei Ihrer Arbeit die WSL2-Toolchains und insbesondere Git unter WSL2? Dann wird es Sie freuen, dass CLion jetzt je nach Projektspeicherort zwischen verschiedenen Git-Installationen wechseln kann. Wenn Sie ein Projekt in WSL2 öffnen (über den Pfad \\wsl$), erkennt die IDE das Vorhandensein einer Git-Programmdatei in WSL2 und stellt alle Git-bezogenen Funktionen auf die Verwendung dieser Datei um.

GitHub-Pull-Requests

GitHub-Pull-Requests

CLion 2020.2 bietet eine neue und geräumigere Darstellung von GitHub-Pull-Requests. Angezeigt werden alle Details eines bestimmten Pull-Requests (Nachricht, Branchname, Autor, Bearbeiter, geänderte Dateien, Commits und Zeitverlauf) sowie die Ergebnisse der Pre-Commit-Prüfungen. Außerdem können Sie zahlreiche Aktionen direkt in der IDE durchführen, zum Beispiel ein Review starten, einen Kommentar anfügen oder den Pull-Request mergen.

Weitere Informationen

Zu Deklaration oder Verwendung springen

Zu Deklaration oder Verwendung springen

Die Aktion Go to Declaration or Usages (Strg+Klick/Strg+B) verhält sich je nach Fall und IDE-Einstellungen unterschiedlich:

  • Wird sie für eine Symbolverwendung aufgerufen, navigiert die IDE zur dazugehörigen Deklaration.
  • Beim Aufruf für eine Deklaration wiederum wird die Liste der dazugehörigen Verwendungen angezeigt.
  • Beim Aufruf für eine Definition werden die Deklaration oder die Verwendungen angezeigt. Dies hängt von den Einstellungen in Settings | Editor | General | Go to Declaration or Usages ab.

Leistungsverbesserungen

Es wurden einige Probleme behoben, die zu einem Einfrieren oder Verlangsamen der Benutzeroberfläche geführt haben. Um einen Performance-Einbruch im Editor zu vermeiden, fügt CLion jetzt beim Drücken der Enter-Taste innerhalb einer Makrodefinition einen Backslash ein. Die Makrodefinition wird im Normalfall in einer neuen Zeile fortgesetzt, sodass dies der IDE eine redundante Neuanalyse erspart.

Update für Rust-Plugin

Update für Rust-Plugin

In Version 0.3 des Plugins ist die neue Makroerweiterungsengine, die bisher als experimentell gekennzeichnet war, standardmäßig aktiviert. Diese Engine verarbeitet makrogenerierte impl-Blöcke und Moduldeklarationen und bietet Code-Insight für Ihren gesamten Code – auch für Crates wie tokio oder async-std. Erfahren Sie mehr darüber in diesem Blogbeitrag.

Ein weiteres wichtiges Update ist die Debugger-Erstunterstützung der MSVC-Toolchain für Rust. Jetzt können Sie mit dem in CLion enthaltenen LLDB-basierten Debugger für die Visual-Studio-Toolchain Rust-Code debuggen, der unter Windows mit dem Rust-MSVC kompiliert wurde.

Weitere Verbesserungen sind neue Refactorings (Move für Dateien und Top-Level-Elemente sowie Introduce Constant), Erstunterstützung für or_patterns, Fehlerhervorhebung für Formatliterale in Makros wie println!, formatierte Anzeige der Dokumentation im Editor, Inlay-Hints für verkettete Methodenaufrufe und Verbesserungen im Debugger-Workflow von IntelliJ IDEA.

Weitere Informationen

Andere Verbesserungen

  1. Der von JetBrains gepflegte LLDB-basierte Debugger für die Microsoft-Visual-Studio-C++-Toolchain wurde an zahlreichen Stellen optimiert. Die wichtigsten Verbesserungen sind: Debug-Sitzungen frieren beim Anhalten nicht mehr ein, Threads werden jetzt automatisch anhand ihrer Einstiegspunktfunktion benannt, die Debugger-Performance wurde gesteigert und es wurden viele Probleme behoben, die ein Einfrieren oder einen Absturz verursachten.
  2. Aktualisierte GDB-STL-Pretty-Printer sind im Installationsumfang von CLion 2020.2 enthalten.
  3. Ab sofort ist die Clangd-basierte Engine die Standard-Sprachengine von CLion. Die Option zum Deaktivieren wurde entfernt. Settings | Languages & Frameworks | C/C++ | Clangd enthält nun Informationen zur verwendeten LLVM-Clang-Version, um Ihnen in Bezug auf die zu erwartende C++-Unterstützung und die integrierten Clang-Tidy-Prüfungen Klarheit zu geben.

Das ist neu in CLion 2020.1

Embedded-Entwicklung

IAR-Toolchain

IAR-Toolchain

Wenn Sie den IAR-Compiler bzw. die IAR-Toolchain in Ihren Embedded-Projekten verwenden, können Sie jetzt in CLion arbeiten. Die Erfassung der Compilerinformationen führt nicht mehr zu einem Fehler. Dies bedeutet, dass Projekte, welche die IAR-Toolchain verwenden, erfolgreich geladen und in CLion genutzt werden können.

Zu beachten ist Folgendes:

  • MinGW ist erforderlich.
  • Einige Tipps zur Verwendung von CMake mit IAR Embedded Workbench.
PlatformIO

PlatformIO

PlatformIO ist ein Ökosystem der neuen Generation, das schnell an Popularität gewinnt. Um es in Ihren Embedded-Projekten verwenden zu können, steht Ihnen das neue Plugin PlatformIO for CLion mit folgenden Funktionen zur Verfügung:

  • Neuer PlatformIO-Projekttyp im Projektassistenten
  • Generieren des entsprechenden CMake-basierten PlatformIO-Projekts
  • Automatisch erstellte Konfigurationen für das Debuggen und Hochladen
  • Debuggen in CLion mit dem PIO Unified Debugger direkt auf dem Chip

Und vieles mehr! Weitere Details finden Sie in der offiziellen Dokumentation.

CUDA-Unterstützung

Code-Analyse und Programmierunterstützung

Code in CUDA C und C++, einschließlich aller CUDA-spezifischen Erweiterungen, wird jetzt analysiert und korrekt hervorgehoben. Dies bedeutet, dass Navigation, Dokumentation und andere Unterstützungsaktionen im CUDA-Code funktionieren. Darüber hinaus kann CLion spitze Klammern für Kernelaufrufe vervollständigen.

Lassen Sie uns das Projekt ClaraGenomicsAnalysis von GitHub klonen und die Fähigkeit von CLion in Bezug auf die CUDA-Unterstützung herausfinden.

Projektassistent

Projektassistent

Der Projektassistent von CLion bietet jetzt eine neue Option zum Anlegen von CUDA-Projekten – Bibliotheken oder ausführbare Dateien. Bei Auswahl dieser Option generiert die IDE exemplarische CMakeLists.txt- und main.cu-Dateien für Sie.

Dateierweiterungen und CMake-Ziele

Dateierweiterungen und CMake-Ziele

Im neuen C/C++-Dateierstellungsdialog stehen die neu unterstützten CUDA-Dateierweiterungen – .cu und .cuh – zur Verfügung. Die Liste der möglichen Update-Ziele in diesem Dialog enthält sowohl allgemeine CMake- als auch CUDA-spezifische Ziele (erstellt mit den Befehlen cuda_add_executable und cuda_add_library).

Weitere Informationen

Entwicklung unter Windows

Clang-cl

Clang-cl

Sie können jetzt unter Windows clang-cl in CLion verwenden. Unterstützt werden Versionen ab 8.0.

Die Installation kann von der LLVM-Website oder zusammen mit den Visual-Studio-Tools erfolgen. Wählen Sie anschließend die Visual-Studio-Toolchain in CLion aus und geben Sie in den Toolchain-Einstellungen den Pfad zu clang-cl.exe an.

Debugger für die Visual-Studio-C++-Toolchain

Debugger für die Visual-Studio-C++-Toolchain

Der von JetBrains entwickelte LLDB-basierte Debugger für die Visual-Studio-C++-Toolchain ist jetzt der Standard-Debugger für diese Toolchain. Sie können ihn also sofort nach der Installation verwenden.

Beachten Sie, dass die integrierte Unterstützung für native Visualisierer unter Settings | Build, Execution, Deployment | Debugger Data Views | Enable NatVis renderers for LLDB explizit aktiviert werden sollte.

Run- und Debug-Konfigurationen

Benutzerdefinierte Ziele für Remote- und Embedded-GDB

Benutzerdefinierte Ziele für Remote- und Embedded-GDB

Die Konfigurationen Remote GDB Server und Embedded GDB Server funktionieren jetzt mit benutzerdefinierten Zielen. Mit diesen Konfigurationen, die bisher nur mit CMake-Zielen funktionierten, können Sie Ihre Anwendung auf einem Remote-Host oder auf dem Mikrocontroller über die CLion-Instanz debuggen, die auf Ihrem lokalen Gerät ausgeführt wird.

Wenn Sie diese Konfigurationen bereits erstellt haben, speichert CLion 2020.1 die vorherigen Run/Debug-Konfigurationseinstellungen im Verzeichnis projectFilesBackup unterhalb des Projektordners und benachrichtigt Sie darüber.

Unterstützung für Makros und Pfadvariablen in Run/Debug-Konfigurationen

Unterstützung für Makros und Pfadvariablen in Run/Debug-Konfigurationen

In den Konfigurationen CMake, Custom Build und Gradle Native Applications können Sie jetzt Pfadvariablen und Makros in den Feldern Program Arguments und Working Directory verwenden. Makros ermöglichen den Zugriff auf folgende Werte:

  • Buildverzeichnis für die aktuelle CMake-Run-Konfiguration
  • Generierungsverzeichnis für die aktuelle CMake-Run-Konfiguration
  • Das Projektdateiverzeichnis
  • Und vieles mehr!

FilePrompt/Prompt-Makros können verwendet werden, um beim Ausführen/Debuggen der Konfiguration einen Dateiauswahl- oder Texteingabedialog anzuzeigen.

Mit einer Pfadvariablen können Sie zum Beispiel den Pfad zu einer häufig verwendeten Bibliothek definieren, die sich außerhalb des Projektverzeichnisses befindet.

Eingabeumleitung

Eingabeumleitung

Wenn Sie den Input aus einer Datei auf den stdin-Eingabestrom Ihrer Anwendung umleiten möchten, haben Sie jetzt die Möglichkeit dazu. Verwenden Sie dazu das neue Konfigurationsfeld Redirect input from. Geben Sie Folgendes ein:

  • einen relativer Pfad (CLion stellt dem Pfad das Arbeitsverzeichnis voran);
  • einen absoluten Pfad (wird für Remote-Konfigurationen neu zugeordnet);
  • oder Makros (z. B. FilePrompt).

Clang-Tools

DFA auf Clangd

DFA auf Clangd

Die Datenflussanalyse (Data Flow Analysis, DFA) von CLion unterstützt Sie dort, wo ein Compiler Sie normalerweise allein lässt: CLion analysiert den Datenfluss durch Ihren Code, um potenzielle Probleme zu erkennen. Dazu gehören Bedingungen, die immer falsch oder wahr sind, Endlosschleifen, fehlende Returns, unendliche Rekursion und mehr. Und ab 2020.1 nutzt DFA die Clangd-basierte Sprachengine und ist dadurch genauer und weniger rechenintensiv. Die Entwicklung ist noch nicht abgeschlossen, aber die bisherigen Ergebnisse sind bereits gut nutzbar!

Exklusive Clangd-Completion

Exklusive Clangd-Completion

Bei der Code-Completion ist ein neuer Modus standardmäßig aktiviert: Die Completion wird hierbei ausschließlich von der Clangd-basierten Sprachengine bereitgestellt. Dieser Modus löst die Priorisierungs- und Sortierungsprobleme, die mit dem Zusammenführen der Ergebnisse mehrerer Completion-Engines einhergingen. Dieses Verhalten lässt sich mit der Einstellung Code Completion unter Settings | Languages & Frameworks | C/C++ | Clangd steuern.

Dank Dutzender Korrekturen und Verbesserungen ist dieser neue Modus präzise und leistungsstark.

Weitere Informationen

ClangFormat

ClangFormat

Wenn Sie zum ersten Mal ein Projekt öffnen, in dessen Projektstammverzeichnis eine .clang-format-Konfigurationsdatei gespeichert ist, erkennt CLion diese und wechselt automatisch zu ClangFormat.

Wenn Sie ClangFormat bei einem Projekt aktivieren, das keine .clang-format-Konfigurationsdatei hat, bietet CLion an, eine zu erstellen.

Clang-Tidy

Clang-Tidy

Wenn eine .clang-tidy-Konfigurationsdatei im Projekt erkannt wird, deaktiviert CLion jetzt automatisch die Verwendung der in der IDE angegebenen Einstellungen für Clang-Tidy. Dieses Verhalten lässt sich mit der Einstellung Prefer .clang-tidy files over IDE settings unter Settings | Editor | Inspections | C/C++ | General | Clang-Tidy steuern.

Formatierer und Codefaltung

Neue Namenseinstellungen

Neue Namenseinstellungen

Für Struct- und Klassenelementfelder gelten jetzt separate Namenseinstellungen. Sie finden sie unter Settings | Editor | Code Style | C/C++ | Naming Convention.

Codeausblendung

Codeausblendung

#pragma region und #pragma endregion können jetzt in CLion für die Codefaltung verwendet werden.

Refaktorierungs-Update

Refaktorierungs-Update

Beim Aufruf der Refaktorierung Change Signature (Ctrl+F6) aktualisiert CLion alle Vorkommen der Funktion. Ein neues Feld Default value im Dialog Change Signature bietet die Möglichkeit, einen Wert für den Parameter anzugeben, der bei allen Vorkommen verwendet werden soll. Lassen Sie das Feld leer, um wie bisher den Standardwerttyp zu verwenden.

Dieselbe Logik und ein neues Default value-Feld werden auch beim Quick-Fix Create Parameter From Usage und bei der Intention Add Parameter to Constructor verwendet.

Editor

Schnelldokumentation

Schnelldokumentation

Die Kurzdokumentation – ein universeller Helfer zum schnellen Nachschauen in der Dokumentation und zum Abrufen von Informationen zu Funktionssignaturen, abgeleiteten Typen und Makroersetzungen – wird jetzt beim Mouseover angezeigt.

Die Funktion kann mit der Einstellung Show quick documentation on mouse move unter Settings | Editor | Code Editing gesteuert werden.

JetBrains Mono und IntelliJ Light

JetBrains Mono und IntelliJ Light

Die Standardschrift im Editor ist jetzt JetBrains Mono, eine von JetBrains entwickelte neue Open-Source-Schriftart. Bei der Entwicklung wurde besonders darauf geachtet, das Lesen von Code zu erleichtern.

Ein neues helles Design – IntelliJ Light – ist jetzt das Standarddesign auf allen Betriebssystemen. Mit View | Quick Switch Scheme | Theme können Sie zu einem anderen Design wechseln.

Geteilte Terminalsitzungen

Geteilte Terminalsitzungen

Mit CLion 2020.1 können Sie Terminalsitzungen vertikal oder horizontal teilen, um sie gleichzeitig anzuzeigen. Rufen Sie das Kontextmenü des Terminals auf, um eine geteilte Terminalsitzung zu erstellen oder zu schließen bzw. um zwischen den Sitzungen zu navigieren.

Versionsverwaltung

Commit-Toolfenster und Commit-Dialog

Neues Commit-Toolfenster

Ein aktualisiertes Toolfenster bietet mehr Platz für die Liste der geänderten Dateien und die Diff-Anzeige. Außerdem können Sie einem Commit jederzeit Änderungen hinzufügen, Commit-Nachrichten iterativ verfassen und auswählen, welche Änderungen im Staged-Bereich in welchen Commit übernommen werden sollen.

Die neue Bedienoberfläche ist standardmäßig für neue Benutzer aktiviert. Bestehende Benutzer können unter Settings | Version Control | Commit zur neuen Oberfläche wechseln.

Neuer Dialog „Interactively Rebase from Here“

Ein überarbeiteter, wirklich interaktiver Dialog bietet Ihnen folgende Möglichkeiten:

  • Wählen Sie für jeden Commit in Ihrem Branch eine auszuführende Aktion aus.
  • Überprüfen Sie anhand eines Diagramms, welche Aktionen angewendet wurden.
  • Sehen Sie sich die Commit-Details an.
  • Lassen Sie sich einen Diff anzeigen, überprüfen Sie die Änderungen und setzen Sie sie bei Bedarf zurück.

Git installieren, ohne die IDE zu verlassen

Das Toolfenster Version Control heißt jetzt Git (bzw. Subversion/Mercurial/Perforce, wenn Sie diese statt Git verwenden).

Sie müssen Git nicht mehr manuell vorinstallieren! Wenn Sie ein Projekt mit Git öffnen oder aus der Versionsverwaltung importieren und Git nicht auf Ihrem Computer installiert ist, bietet CLion an, Git für Sie herunterzuladen und zu installieren.

Update für Rust-Plugin

Update für Rust-Plugin

Dank einer verbesserten LLDB-Unterstützung zeigt IntelliJ Rust Enums und primitive Typen korrekt an, und in der Aufrufliste werden korrekt entschlüsselte Funktionsnamen angezeigt.

Ein weiteres wichtiges Update, das ins Plugin aufgenommen wurde, ist die REPL-Integration. Öffnen Sie die Konsole mit Tools | Rust REPL und verwenden Sie sie für die Prototypenentwicklung oder die zeilenweise Überprüfung Ihres Codes. Die Integration bietet Syntaxhervorhebung und Code-Completion sowie einige praktische Konsolenaktionen: Befehlsverlauf, Anzeige mit Zeilenumbrüchen, schneller Bildlauf zum Ende und mehr.

Verbessert wurde auch die Sprachunterstützung: IntelliJ Rust kommt jetzt mit impl-Blöcken für Typ-Aliasnamen zurecht. Mit Blick auf die Leistung haben wir diese Funktion nur für Typen mit einer begrenzten Anzahl von Aliasnamen aktiviert.

Zu den weiteren Verbesserungen zählen die Hervorhebung nicht verwendeter lokaler Variablen, Korrekturen bei der Unterstützung von cfg-Attributen und die neue Inspektion Lift return.

Andere Verbesserungen

  • Alle Remote-Konfigurationen profitieren jetzt von der gemeinsamen und einheitlichen Bedienoberfläche für SSH-Konfigurationen. Unabhängig von ihrem Ursprung (etwa Remote-Toolchain-Einstellungen oder Remote-GDB-Serverkonfigurationen) haben jetzt alle SSH-Konfigurationen einen Eintrag unter Settings | Tools | SSH Configurations.
  • Wenn Sie sich ausschließlich auf Ihren Code konzentrieren möchten, aktivieren Sie doch den neuen Zen-Modus, der den Distraction Free Mode mit der Vollbildansicht kombiniert. Hier können Sie ihn aktivieren: View | Appearance | Enter Zen Mode.