Hallo Habr!
Neulich haben wir CLion 2018.3 veröffentlicht. Die dritte Hauptversion in diesem Jahr fasst unsere Arbeit in zwei wichtigen Entwicklungsbereichen zusammen -
Verbesserung der Sprachunterstützung und
Fernentwicklung .
Außerdem haben wir endlich:
- Code-Profiling-Tools hinzugefügt;
- Überarbeiten Sie die Befehle im Editor zum Zusammenstellen / Zusammensetzen von Code auf der Ebene einer Datei, mehrerer Ziele oder des gesamten Projekts.
- Zusammen mit anderen auf der IntelliJ-Plattform basierenden IDEs wurden Unterstützung für Git-Submodule und GitHub-Pull-Anforderungen hinzugefügt.
- verbesserte Mittel für den universellen Zugang zu IDE-Möglichkeiten (Barrierefreiheit).
Lesen Sie unten mehr über diese und andere Innovationen. Laden Sie die kostenlose 30-Tage-Version
von unserer Website herunter, um neue Funktionen und Verbesserungen auszuprobieren.
C ++ Sprachunterstützung
Mehr C ++ 17
Der CLion-Parser hat gelernt, zwei neue Funktionen des C ++ 17-Standards zu verstehen -
Falzausdrücke und
Ableitungshandbücher . Einerseits werden Änderungen im Parser noch nicht vollständig unterstützt, aber zumindest die Code-Hervorhebung ist korrekter, und in Fällen von
benutzerdefinierten Abzugsleitfäden zeigt die IDE den Typ sogar korrekt an, und Sie können ihn beispielsweise beim Aufrufen von Informationen über sehen Funktionsparameter.

Clangd ist jetzt in der Navigation
Das letzte Mal haben wir geschrieben, dass CLion jetzt nicht nur eine eigene Sprach-Engine für die Arbeit mit C / C ++ - Code verwendet, sondern auch eine zusätzliche experimentelle, die auf der Basis von Clangd erstellt wurde. Nachdem wir es aktiviert hatten, um Fehler und Warnungen im Editor anzuzeigen, gingen wir weiter und implementierten in CLion 2018.3 einige Aktionen der Code-Navigation und der Codesuche auf seiner Basis.
Die Clangd-basierte Sprach-Engine liefert Ergebnisse, die anschließend ohnehin mit den Ergebnissen der CLion-Engine kombiniert werden. Ein typisches Beispiel ist "Verwendungen suchen" (
Alt+F7
): Clangd sucht nach Dateien, die im Editor geöffnet wurden, und unsere eigene Engine sucht nach dem Rest.
Beispiele für andere Aktionen, die zusätzlich die Clangd-Sprach-Engine verwenden:
- Zur Deklaration gehen (
Ctrl+B
/ ⌘B
) / Zur Definition gehen ( Ctrl+Alt+B
/ ⌥⌘B
) - Markieren Sie alle Einschlüsse des Symbols, auf dem der Cursor steht
- Schnelle Dokumentation (
Ctrl+Q
/ F1
)
Clangd ist standardmäßig aktiviert und unter Einstellungen / Einstellungen | konfiguriert Sprachen & Frameworks | C / C ++ | Clangd:

Das heißt, Sie können die erforderlichen Funktionen zusätzlich zu Clangd unabhängig aktivieren / deaktivieren - beispielsweise nur Fehler anzeigen oder nur die Navigation. Wenn Sie die Verwendung von Clangd vollständig deaktivieren müssen, deaktivieren Sie alle Kontrollkästchen in diesem Dialogfeld.
Übrigens kann Clang-Tidy ohne Clangd ausgeführt werden, aber das Starten über Clangd verbessert die Leistung erheblich, da der in Clangd zwischengespeicherte AST-Baum verwendet wird.
Fernentwicklung
Mit der
Veröffentlichung von CLion 2018.1 wurde unter Windows die Möglichkeit eingeführt, mit dem Windows-Subsystem für Linux (WSL) zu arbeiten. In dieser in Windows integrierten Linux-Umgebung können Sie Linux-Anwendungen unter Windows erstellen, ausführen und debuggen. Wir sagten damals, dass wir speziell die Unterstützung für WSL durch ssh implementiert haben, dh als Remote-Subsystem. Dies war der erste Schritt zur Arbeit mit vollständig entfernten Konfigurationen.
Und so haben wir in CLion 2018.3 die Unterstützung für die erste große Version der Remote-Entwicklung angekündigt:
- Auf dem lokalen Computer, auf dem CLion ausgeführt wird, kann es sich um Linux, Windows oder MacOS handeln.
- Auf einem Remotecomputer, auf dem CLion Ihre Anwendung erstellt, ausführt und debuggt, Tests ausführt, kann es bisher nur Linux geben.
- Es wird davon ausgegangen, dass sich der Code auf dem lokalen Computer befindet. CLion selbst synchronisiert es mit dem Remotecomputer und zieht die Header-Suchpfade zurück zum lokalen, um den Code im Editor schnell aufzulösen. Die Synchronisierung erfolgt über rsync für Linux oder macOS als lokale Computer sowie über sftp und gzip für Windows.
- Es funktioniert bisher nur für Projekte auf CMake.

Das Einrichten einer solchen Remote-Konfiguration ist sehr einfach - Sie müssen lediglich eine Remote-Toolchain unter Einstellungen / Einstellungen | erstellen Erstellen, Ausführen, Bereitstellen | Toolchains und verwenden Sie es in einigen CMake-Profilen. Detaillierte Anweisungen finden Sie in
unserem englischsprachigen Blog und in der
Online-Dokumentation . Der Fortschritt der Synchronisierung mit dem Remote-Host wird im Fenster Dateiübertragung (Ansicht | Tool Windows | Dateiübertragung) angezeigt. Ändern Sie die Verbindungsparameter und Verzeichnispfade auf dem Remotecomputer unter Einstellungen / Einstellungen | Erstellen, Ausführen, Bereitstellen | Bereitstellung
In dieser Richtung wird viel Arbeit erwartet. Wie Sie sehen, werden die Optionen zum Auffinden des Codes direkt auf dem Remotecomputer nicht unterstützt, es gibt keine Unterstützung für das Remoteversionskontrollsystem, es gibt keine Integration mit dem Remoteterminal und es gibt viele kleinere Fehler in der Verbindung selbst. Hauptsache aber -
Remote-Entwicklung mit CLion ist jetzt möglich!Benutzerdefinierte Code-Leistungsanalyse
CLion 2018.3 bietet die Möglichkeit, die Codeleistung zu analysieren. Unter Linux wird die Integration mit
Perf bereitgestellt, unter macOS mit
DTrace . Die neue Aktion ist im Menü Ausführen, im Navigationsbereich und im Kontextmenü der Anwendungsstart-Symbole verfügbar. Die Ergebnisse der Codeprofilerstellung sind im Fenster CPU Profiler (Ansicht | Tool Windows | CPU Profiler) verfügbar.

Lesen Sie mehr darüber, was Sie auf Ihrem Computer installieren müssen, damit die Codeprofilerstellung funktioniert, lesen Sie den
Blog oder die
Online-Dokumentation .
Es ist erwähnenswert, dass UI / UX noch etwas experimentell ist. Es ist geplant, die Versionen 2019.x deutlich zu verbessern. Es gibt jedoch bereits nützliche Dinge, wie die Möglichkeit, alle Threads zusammen oder einzeln anzuzeigen, die Möglichkeit, zum Quellcode zu navigieren usw.
Befehle erstellen und neu erstellen
Die Anzahl der verschiedenen Kombinationen von Build-Befehlen ist so stark gestiegen, dass wir beschlossen haben, sie alle in einem separaten Menüpunkt - Build - zu platzieren. Es gibt die Montage / Wiederzusammenstellung des gesamten Projekts und das
all
Ziel aus allen oder aus dem ausgewählten CMake-Profil und der ausgewählten Konfiguration sowie eine bestimmte Datei:

Dies ist natürlich für CMake. Für eine Kompilierungsdatenbank gibt es nur einen Wiederherstellungsbefehl für eine bestimmte Datei.
Universelle Dialoge: Alles ausführen und überall suchen
CLion-Benutzer sind seit langem mit dem Dialogfeld "Überall suchen" (
Double Shift
) sowie mit dem Dialogfeld "Aktion suchen" (
Ctrl+Shift+A
/
⇧⌘A
)
⇧⌘A
, um nach einem Befehl oder einer Einstellung nach Namen zu suchen, und mit Dialogen zum Navigieren zu einer Datei, einem Symbol oder einer Klasse Name. Und jetzt ist dies tatsächlich der gleiche Dialog!

Separate Dialoge wurden zu separaten Registerkarten. Das Umschalten erfolgt über die
Tab
. Gleichzeitig haben wir eine Reihe von Problemen im Zusammenhang mit diesen Dialogen beseitigt, darunter Fokusverlust und falsche Größen.
Ein weiterer neuer universeller Dialog ist Run Anything (
Double Ctrl
). Von dort aus können Sie die Anwendung im normalen Modus oder unter dem Debugger ausführen und auch jedes Projekt öffnen:

Checkt in compilation_database.json ein
Die Kompilierungsdatenbank ist ein alternatives Entwurfsmodell, das CLion seit einiger Zeit unterstützt. Es ist sehr praktisch, dass
Sie es von praktisch jedem anderen
Designmodell erhalten können, ob beliebt oder sogar kundenspezifisch. CLion kann Projekte aus der Kompilierungsdatenbank öffnen, den Code korrekt analysieren und alle intelligenten Mittel zum Arbeiten mit dem Code bereitstellen. Das einzige Minus ist der Mangel an Informationen über die Zusammenstellung des gesamten Projekts in diesem Format. Bisher werden nur einzelne Dateien von der IDE erfasst.
In dieser Version haben wir CLion ein Schema für die Dateien comp__database.json hinzugefügt und basierend auf diesem Schema bereits Überprüfungen in der Datei selbst implementiert. Zum Beispiel der falsche Typ des Werts der Eigenschaft oder die allgemein fehlende Eigenschaft:

Überprüfungen können sehr nützlich sein, wenn Sie sich dennoch dazu entschließen, eine solche Datei von Hand zu schreiben oder eine vorhandene Datei zu korrigieren.
Editorleistung und Tests
In vielen Dumps unserer Benutzer wurde festgestellt, dass erhebliche Probleme mit der Leistung der IDE damit zusammenhängen, wie die IDE die Liste der im Projekt verfügbaren Tests ermittelt. In Version 2018.3 haben wir diesen Prozess verzögert. Wenn Sie jetzt keine Testdateien im Editor geöffnet haben, werden diese nicht indiziert. Darüber hinaus wurden Leistungsverbesserungen beim Navigieren zu Testergebnissen, beim automatischen Vervollständigen von Testmakros usw. vorgenommen.
Editor-Verbesserungen
Wie Sie wissen, kann CLion im Fenster "Schnelle Dokumentation" (
Ctrl+Q
/
F1
) nicht nur Dokumentation und Codekommentare anzeigen, sondern auch abgeleitete Typen für Variablen und die endgültige Ersetzung in Makros. Diese endgültige Suche ist jetzt formatiert und die Schlüsselwörter werden darin hervorgehoben. Sehr praktisch für komplexe Makros mit mehreren Verschachtelungsebenen, zum Beispiel für Boost:

TODO-Kommentare können jetzt mehrzeilig sein. Die Hauptsache ist, die zweite und die folgenden Zeilen einzurücken. CLion wird automatisch verstehen, dass dies Teil des TODO-Kommentars ist:

Es gibt Benutzer, für die Standardthemen nicht geeignet sind, da sie keinen ausreichenden Kontrast aufweisen. Für sie haben wir ein spezielles kontrastreiches Thema hinzugefügt. Es kann nur im Code-Editor (Strg + `) oder für die gesamte IDE (Einstellungen / Einstellungen | Aussehen & Verhalten | Aussehen | Thema) aktiviert werden.

Zusammen mit IntelliJ Platform haben wir das Plugin-Einstellungsmenü in der IDE (Einstellungen / Einstellungen | Plugins) neu gestaltet. Jetzt ist es viel einfacher, installierte Plugins auf dem neuesten Stand zu halten sowie ein riesiges Repository vorhandener IDE-Plugins zu sortieren und zu filtern.
Versionskontrollsystem
Eine weitere wichtige Plattformänderung ist die lang erwartete Unterstützung für
Git-Submodule . Jetzt werden alle Vorgänge für die Arbeit mit VCS in CLion auch von Submodulen berücksichtigt: Klonen eines Projekts, Aktualisieren, Vergleichen von Versionen (Diff) usw.
Das Fenster
GitHub Pull Requests wurde hinzugefügt, in dem Sie nicht nur alle Pull Requests anzeigen, sondern auch nach Autor oder Status suchen / filtern können. Mit nur einem Klick können Sie aus jeder Pull-Anfrage einen neuen Zweig erstellen.
Demo
Traditionelles Video über die neuen Funktionen von CLion 2018.3 in englischer Sprache:
Was kommt als nächstes?
Nächstes Jahr planen wir, die Arbeit an der zweiten zusätzlichen Sprach-Engine auf Basis von Clangd fortzusetzen. Lassen Sie uns sehen, welche anderen IDE-Funktionen wir darauf implementieren können. Wir werden die Produktivität des Editors verbessern, die vorhandenen Funktionen fertigstellen und verbessern. Die Arbeit zur Unterstützung der Fernentwicklung in CLion sieht besonders vielfältig aus. Aus Integrationen planen wir das Clang-Format und wahrscheinlich diesen oder jenen Debugger für Windows / MSVC.
Das Hauptaugenmerk liegt für uns auf der
Embedded-Entwicklung . Zuletzt hat sich
Elmot , der Autor eines sehr beliebten Support-Plugins in CLion
OpenOCD + STM32CubeMX , unserem Team angeschlossen. Ilya wird diese Funktionalität weiterhin in die IDE integrieren, aber wir planen, die Speicheransicht zu vervollständigen und die Hex-Ansicht in naher Zukunft neu zu erstellen.
Fragen, Wünsche, Fehlerberichte und nur Gedanken kommen in den Kommentaren zum Ausdruck! Wir werden gerne antworten.
Ihr JetBrains CLion-TeamDer Antrieb zur Entwicklung