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.
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.
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.
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.
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.
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.
Keine Wartezeiten mehr! Run/Debug-Konfigurationen können jetzt bearbeitet werden, noch während das Projekt indiziert wird.
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.
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).
DISABLED-Präfix im Namen) werden jetzt auch im Testbaum durch ein entsprechendes Symbol gekennzeichnet.
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.
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.
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.
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.
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.
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.
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 Templates – Qt Class, Qt Class Header und Qt Designer Form – verwendet.
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.
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 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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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:
CLion enthält jetzt CMake 3.17 und bietet eine Erstunterstützung für zwei neue Funktionen:
-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). 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.
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.
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.
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.
Die Code-Inspektion „Simplify“ ist jetzt treffsicherer und deckt mehr Fälle ab. Sie funktioniert für die folgenden Arten von Anweisungen:
Bedingung == trueBedingung1? true : Bedingung2if(Bedingung1) return true; return Bedingung2; Die Fälle können unter Settings | Editor | Inspections | C/C++ | General | Simplifiable statement separat konfiguriert werden.
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.
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.
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.
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.
Bei der Hervorhebung und Vervollständigung unterstützt CLion 2020.2 die neuen Schlüsselwörter:
char8_tconsteval und constinitco_await, co_return und co_yield
Die Code-Completion in designierten Initialisierern funktioniert jetzt für Felder aus einer Basisklasse.
Das C++20-Konstrukt explicit(bool) wird jetzt korrekt hervorgehoben. Die Unterstützung umfasst auch Namenshinweise für Bedingungsargumente sowie Navigations- und Refactoring-Funktionen.
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.
„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.
Diese Testtypen werden jetzt in Catch2 genauso wie die anderen Testtypen erkannt und gehandhabt.
In Google Test können mit dem Makro GTEST_SKIP() Tests zur Laufzeit übersprungen werden. Dies wird jetzt von CLion unterstützt.
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.
Um Sie bei der Embedded-Entwicklung zu unterstützen, haben wir das Plugin für PlatformIO erheblich verbessert:
PlatformIO-Projektkonfigurationsdateien werden jetzt ordnungsgemäß eingefärbt, sodass sie leichter zu lesen und zu bearbeiten sind.
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.
CLion erstellt jetzt automatisch CMake-Profile für die CMAKE_CONFIGURATION_TYPES-Einträge im PlatformIO-CMake-Projekt.
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.
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.
Die Aktion Go to Declaration or Usages (Strg+Klick/Strg+B) verhält sich je nach Fall und IDE-Einstellungen unterschiedlich:
Settings | Editor | General | Go to Declaration or Usages ab. 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.
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.
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.
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:
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:
Und vieles mehr! Weitere Details finden Sie in der offiziellen Dokumentation.
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.
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.
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).
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.
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.
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.
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:
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.
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:
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!
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.
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.
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.
Für Struct- und Klassenelementfelder gelten jetzt separate Namenseinstellungen. Sie finden sie unter Settings | Editor | Code Style | C/C++ | Naming Convention.
#pragma region und #pragma endregion können jetzt in CLion für die Codefaltung verwendet werden.
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.
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.
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.
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.
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.
Ein überarbeiteter, wirklich interaktiver Dialog bietet Ihnen folgende Möglichkeiten:
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.
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.
Settings | Tools | SSH Configurations.