CLion 2018.3: Remote-Entwicklung, Code-Profilerstellung, Leistung und mehr

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).

Bild

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.

Bild

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:

Bild

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.

Bild

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.

Bild

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:

Bild

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!

Bild

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:

Bild

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:

Bild

Ü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:

Bild

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:

Bild

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.

Bild

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-Team
Der Antrieb zur Entwicklung

Source: https://habr.com/ru/post/de431384/


All Articles