
Überraschenderweise gibt es auf Habré bisher keine gute Auswahl an Plugins für Visual Studio Code für diejenigen, die in C / C ++ schreiben. Microsoft hat in seinem Blog nur
einen Artikel veröffentlicht , eine sehr grundlegende Ebene mit Anweisungen zum Einrichten. Aber die meisten Leser von Habr, insbesondere von Entwicklern, werden auf solche detaillierten Anweisungen verzichten. Es gibt nur wenige Sammlungen für Webentwickler, nicht jedoch für C ++.
Dies liegt wahrscheinlich daran, dass die meisten C ++ - Entwickler schwergewichtige IDEs verwenden, vor allem natürlich Visual Studio.
Aber unter Linux und MacOS mit vollwertigen IDEs ist nicht alles so einfach, und eine schwierige Entwicklungsumgebung wird nicht immer benötigt oder möchte sie einfach nicht verwenden.
Ich möchte Ihre Aufmerksamkeit auf nützliche Plugins lenken, die das Leben und Arbeiten erleichtern, sowie über nützliche Einstellungen und Funktionen von VS Code sprechen, die Sie einfach übersehen könnten.
Die Frage, die VS-Code-IDE oder nur den Code-Editor als sehr ganzheitlich zu betrachten, ist nicht der Zweck dieses Artikels. Ich werde es weiterhin als IDE betrachten, da es mit minimalem Aufwand grundlegende IDE-Skripte wie automatische Vervollständigung und Debugging bietet.
Ein bisschen Geschichte
Die erste IDE, die ich als Entwickler verwendet habe, war Borland C ++ 2.0. Dann wechselte ich zu Visual Studio 6.0 und blieb (und bin) ein Fan dieser IDE. Aber irgendwann wurde es notwendig, unter Linux zu schreiben (es war wahrscheinlich 2006). Unter Linux war ich zunächst schockiert über das Fehlen einer ernsthaften IDE - ich habe Eclipse ausprobiert, gelitten und gespuckt. Ich werde nicht in die Geschichte eingehen, aber am Ende habe ich herausgefunden, dass Make, CMake, wie man schnell die entsprechenden Dateien schreibt, dann gab es Linker-Skripte, gdb, kdb und viele interessante Dinge. Zu dieser Zeit liebte und benutzte ich vim 5 Jahre lang aktiv. Danach wechselte ich allmählich zu Sublime Text, dann zu seiner zweiten Version und jetzt zu der dritten.
Jetzt schreibe ich weniger Code und bin mehr an der Entwicklung von Produkten und Prozessen beteiligt, muss aber immer noch regelmäßig schreiben - dies sind persönliche Projekte und helfen unseren Partnern, unser SDK einzubetten.
Und da das SDK nicht nur für Windows, sondern auch für Linux und MacOS ist, muss der Code darin geschrieben werden. Letztes Jahr habe ich VS Code ausprobiert und es wurde für mich eine gute Alternative für Sublime Text.
Vergleichen Sie sie kurz, dann bietet Sublime Text meiner persönlichen Meinung nach mehr Optionen zum Einrichten und Arbeiten, aber VS Code bietet mehr sofort einsatzbereite. Und wenn Sie keine persönliche Auswahl an Erweiterungen für Sublime Text zur Hand haben oder diesen Editor noch nie verwendet haben, ist Visual Studio Code eine großartige Sache.
Ich werde mit einigen sehr nützlichen Erweiterungen beginnen. Es gibt nicht viele davon für den C \ C ++ - Entwickler in VS Code, und das wichtigste ist natürlich:
C / C ++ für Visual Studio Code
Marktplatz Link
Dies ist die Haupterweiterung zur Unterstützung von C \ C ++ in VS Code, das von Microsoft entwickelt wird. Eine detaillierte Beschreibung von allem, was es gibt, befindet sich auf der Seite auf dem Markt, aber hier werde ich nur das Wichtigste erwähnen (meiner Meinung nach natürlich):
- Code-Formatierung (im Clang-Format)
- Automatische Vervollständigung
- Suchen Sie nach Zeichen anhand des Codes
- Gehen Sie zu Definition / Erklärung (einschließlich Peek)
- Klassen- / Methodennavigation
- Signatur-Hilfe
- Kurzinfo (Hover)
- Fehler kräuselt sich
Debugging-Unterstützung für Windows- (PDB, MinGW / Cygwin), Linux- und MacOS-Anwendungen
Der Hauptartikel von Microsoft über die Erweiterung und ihre Funktionen mit schönen Bildern ist hier -
Link .
Es sollte beachtet werden, dass Microsoft großartige Kollegen sind und diese Erweiterung ständig aktualisieren. Darüber hinaus werden neue Funktionen dieser Erweiterung nur im Entwickler-Blog von Microsoft veröffentlicht und sind nicht sehr auffällig. Deshalb habe ich mich entschlossen, hier über die neuesten zu erzählen.
Globale Einstellungen für IntelliSense
Im Mai 2018 hat VS Code die Möglichkeit hinzugefügt, beliebige Parameter für IntelliSense in user settings.json festzulegen. Diese Einstellungen werden automatisch auf alle Projekte angewendet.
Eine sehr nützliche Sache, wenn die meisten Projekte, mit denen Sie arbeiten, einen gemeinsamen Satz von Include, denselben Compiler usw. verwenden.

Unterstützung für eingebettete Terminals zum Debuggen
Im Dezember 2018 hat Microsoft die Möglichkeit hinzugefügt, C / C ++ - Anwendungen im integrierten Terminal zu debuggen, anstatt ein separates Fenster mit dem Terminal zu öffnen. Diese Funktion wird durch den Parameter externalConsole in launch.json gesteuert.

Bisher wird nur cppdbg unterstützt und nur unter Linux und Windows, aber unter MacOS haben sie auch versprochen, es bald zu liefern. Es sieht so aus:

Kommentare zur Dokumentation
Dieses Ding wurde letzten Monat buchstäblich hinzugefügt. Hier gibt es wirklich nichts zu erzählen. Geben Sie einfach ein Beispiel von Microsoft.
Wir schreiben eine einfache Box-Klasse und fügen Kommentare im Standardformat hinzu:

Ein Kommentar wird Klassenmitgliedern mit Klassen oder Funktionen verknüpft und in QuickInfos angezeigt, wenn Sie den Mauszeiger über das entsprechende Objekt bewegen.
Es sieht so aus:

Mit Behältern arbeiten
Im neuesten Update am 6. Februar hat Microsoft die Arbeit mit C ++ in Docker-Containern hinzugefügt. Jetzt können Sie Code nicht nur in Containern sammeln, sondern auch in Containern debuggen. Details finden Sie
im Microsoft-Blog .
Ich selbst benutze keine Container für die Arbeit - es besteht keine Notwendigkeit. Aber sicher wird es für viele nützlich sein, deshalb habe ich beschlossen, dies in den Artikel aufzunehmen.
Nun zurück zu den anderen Erweiterungen für VS Code, die Ihnen bei der Entwicklung helfen werden.
cquery
Marktplatz LinkEin weiteres ziemlich globales Plugin für C / C ++ / Objective-C-Entwickler in VS Code. Das Hauptmerkmal - die Erweiterung wurde für sehr große Projekte entwickelt und getestet, beispielsweise für Chromium. Daher ist es nützlich, wenn die Standarderweiterung von Microsoft und ihr IntelliSense-Pass übergeben werden (dies geschieht häufig, wenn Sie über mehr als 100 MB C ++ - Quellen verfügen).
Die Liste aller Hauptfunktionen lautet wie folgt:
Am Anfang wollte ich diese Liste übersetzen, aber dann wurde mir klar, dass die meisten Konzepte keine schönen, allgemein akzeptierten Übersetzungen haben. Deshalb habe ich beschlossen, sie so zu belassen, wie sie ist. Folgen Sie den Links, um eine detailliertere Beschreibung und Demonstration spezifischer Funktionen zu erhalten.
Die Erweiterung ist sehr nützlich, aber seit November 2018 gibt es keine Aktivitäten auf Github. Und nach dem Thema zu urteilen -
Ist dieses Projekt tot? Das Projekt
# 867 hat in der Entwicklung wirklich aufgehört. Das Banner wurde von der Gabel
https://github.com/MaskRay/ccls aufgenommen , aber ich habe es noch nicht getestet, daher kann ich es nicht empfehlen. Höchstwahrscheinlich werden ccls im Laufe der Zeit einfach cquery ersetzen.
Einfache C ++ - Projekte
Marktplatz LinkWenn die beiden vorherigen Erweiterungen global mit vielen Funktionen waren, führt dies eine einfache Funktion aus - das Erstellen eines einfachen Projekts für MSVC, GCC oder Clang.
Zusätzlich in der Lage:
- Erstellen Sie ein Beispiel-Makefile für das Projekt
- Erstellen Sie VS-Code-Konfigurationen zum Erstellen und Ausführen
- Erstellen Sie VS-Code-Konfigurationen für das Debuggen (unterstützt von Visual Studio Debugger, GDB und LLDB).
- Generieren Sie neue Klassen aus einer kleinen Liste von Vorlagen
Es ist sowohl für Anfänger als auch für erfahrene Entwickler nützlich. Es ist hilfreich, ein einfaches Helloworld-Projekt zu erstellen, wenn Sie schnell etwas überprüfen müssen.
Es funktioniert so:

CMake Tools
Marktplatz LinkWie der Name schon sagt, bietet die Erweiterung Unterstützung für CMake. Wie in den Kommentaren vorgeschlagen, können Sie natürlich alles von Hand verschreiben, aber mit der Erweiterung ist es bequemer.
Nach der Installation müssen Sie eine Mindestkonfiguration vornehmen. Toolchain auswählen:

Wählen Sie dann die Konfiguration für die Baugruppe aus:

Und alle. Du kannst arbeiten.
Die Erweiterung weiß auch, wie einfache CMake-Dateien für Projekte generiert werden.
Todo Baum
Marktplatz LinkEs gibt verschiedene Erweiterungen zum Erstellen von TODO-Listen für VS-Code. Sie können eine beliebige auswählen. Mir hat es am besten gefallen. Der einzige Nachteil ist, dass
https://github.com/BurntSushi/ripgrep erforderlich ist, was nicht immer sofort einsatzbereit und nicht sehr bequem zu platzieren ist. Es befindet sich noch nicht in Standard-Debian-Repositorys.
Das Ergebnis der Arbeit sieht folgendermaßen aus:

Gitlens
Marktplatz LinkWie der Name der Erweiterung schon sagt, verbessert es die Arbeit mit Git. Es sollte beachtet werden, dass VS Code standardmäßig bereits eine gewisse Unterstützung für Git bietet, diese jedoch sehr begrenzt ist.
Die Hauptfunktion von GitLens besteht darin, direkt in der bearbeiteten Zeile anzuzeigen, wer und in welchem Commit es das letzte Mal geändert hat. Die Erweiterung bietet außerdem eine erweiterte Suche zum Dateiverlauf, eine Suche nach Commits, eine praktische Ansicht zum Vergleichen mehrerer Versionen einer Datei und vieles mehr. Um die Arbeit zu demonstrieren, füge ich einfach ein GIF von der Marktseite ein, das die Erweiterungsoptionen deutlich zeigt.

Git Geschichte
Marktplatz LinkEine weitere Erweiterung, die die Arbeit mit Git verbessert, nämlich die Anzeige der Geschichte. Warum konnte ich in GitLens nie eine passende Anzeige der Projekthistorie für alle Branchen finden? Wenn jemand weiß, wie man mit GitLens eine ähnliche Ansicht erstellt (siehe unten), schreiben Sie diese unbedingt in die Kommentare. Ich bin Ihnen sehr dankbar.

vscode-icons
Marktplatz LinkEine der vielen Erweiterungen, mit denen dem Explorer-Bedienfeld Symbole für Dateien und Verzeichnisse hinzugefügt werden. Es gibt viele Erweiterungen auf dem Markt, und dies ist die beliebteste. Fühlen Sie sich frei, andere zu wählen, ich mochte diese Symbole.

Einstellungen synchronisieren
Marktplatz LinkEine weitere nützliche Erweiterung, deren Zweck sich aus dem Namen ergibt.
Verwenden Sie zum Synchronisieren Ihrer Einstellungen das GitHub-Kontotoken und Gist. Für mich persönlich ist es eine der nützlichsten Erweiterungen, da ich sowohl Windows, Linux als auch Mac verwende.
Code Rechtschreibprüfung
Marktplatz LinkWenn Ihr Englisch noch lange nicht ideal ist oder Sie Tippfehler vermeiden möchten, ist diese Erweiterung definitiv nicht redundant. Bei Bedarf können Sie Unterstützung für die
russische Sprache hinzufügen.
Von den netten Funktionen - betont nicht nur fehlerhafte Wörter, sondern bietet auch die richtigen Optionen.

Wakatime
Marktplatz Link
WakaTime ist ein Dienst, der schöne Statistiken \ Grafiken \ Metriken für Ihre Programmierung anzeigt. Das Ding ist außergewöhnlich ästhetisch, aber ich mag es wirklich. Die Erweiterung fügt dementsprechend Unterstützung für den Dienst hinzu, wenn Sie in VSCode arbeiten. Über den Service können Sie
hier lesen.
Ein Beispiel für schöne Grafiken:

Die Hauptfunktionen des Dienstes sind kostenlos und erfordern kein Abonnement.
Das ist alles mit Erweiterungen. Ich möchte auch einige nützliche Einstellungen von VS Code selbst teilen, die für die Community nützlich sein können.
Einige nützliche Einstellungen
Standardmäßig sendet VSCode beim Absturz Telemetrie sowie einige Daten und Fehlerinformationen in Microsoft. Wenn dies aus irgendeinem Grund nicht zu Ihnen passt, schalten Sie die Einstellungen sicher aus:
- Telemetrie: Absturzbericht aktivieren
- Telemetrie: Aktivieren Sie die Telemetrie
Ich rate auch jedem, das automatische Speichern von Dateien zu aktivieren. Die Sache ist banal, aber es ist schwierig, ihre Nützlichkeit zu leugnen. Ich wurde mehr als einmal gerettet. Aus irgendeinem Grund ist es standardmäßig deaktiviert.
- Dateien: Automatisch speichern
Die folgende Einstellung umfasst die Anzeige nicht druckbarer Zeichen im Code. Meiner persönlichen Meinung nach ist dies eine äußerst nützliche Sache, mit der Sie sofort feststellen können, dass die Datei im nächsten Projekt mit Tabulatoren und nicht mit Leerzeichen formatiert ist. Im Allgemeinen können Sie zusätzliche Zeichen dort erkennen, wo sie nicht sein sollten.
- Editor: Whitespace rendern
Für alle, die gerne reibungslos scrollen:
Zeigen Sie während des Debuggens Variablen direkt im Code an. Eine andere sehr nützliche Sache, die aus irgendeinem Grund ausgeschaltet ist. Die Leute mit den größten Augen haben wahrscheinlich bereits ein Beispiel dafür gesehen, wie diese Einstellung in einem der vorherigen Screenshots funktioniert, aber für alle Fälle werde ich noch eines anwenden

Die folgende Einstellung habe ich selbst nur beim Schreiben eines Artikels gefunden. Mit ZenMode können Sie alle unnötigen Fenster und Menüs ausblenden und nur die aktuelle Codedatei belassen. Jetzt werde ich es ständig auf dem Tablet verwenden, wenn ich etwas im Code ausprobieren muss. Auf dem Tablet werden die restlichen Fenster häufig nicht benötigt und es ist nicht genügend nutzbarer Platz vorhanden. Ich empfehle es!
PS
Wenn jemand seine interessanten Erweiterungen für VS Code teilen oder auf nützliche Einstellungen achten möchte - willkommen im Kommentar. Ich freue mich, den Artikel zu ergänzen, um ihn noch nützlicher zu machen.