Nach einigen interessanten Meetings mit C++ Teams möchte ich hier einige VS2013 IDE Features ansprechen, die das Leben als C++ Entwickler einfacher machen können und oft nicht bekannt sind.

Starten möchte ich mit Native Multi-Targeting, welches es schon seit VS 2010 gibt und erlaubt, mit der aktuellen IDE auch ältere Platform Toolsets zu verwenden. So kann man z.B. mit VS2013 ein Projekt mit dem VS 2010 Toolset bauen. In diesem Post gibt es mehr Informationen. Ergänzen möchte ich noch, dass man im Platform Toolset Setting des Projektes die gewünschten Toolsets V90, V100, V120 usw. nur findet, wenn VS 2008, VS 2010 und VS 2013 side-by-side installiert sind.

Nun zu einigen hilfreichen IDE Features.

NavigateTo – Shortcut CTRL + ,

Ein absolut einfacher Weg, Files und Symbols zu finden. Hier suche ich nach “Faceb” und bekomme die Klassen und Files, die Bestandteil der Facebook Implementierung sind, aufgelistet. Eine Suche nach “book face” würde das gleiche Ergebnis bringen. Also auch wenn ich das exakte Symbol oder den exakten Filenamen nicht mehr kenne - einfach mal testen.

image

Switch Header to Cpp – Shortcut CTRL +K+O

ist eine schnelle Möglichkeit zwischen Header und Cpp zu wechseln. In diesem Fall war ich im Facebook.cpp, dadurch wird der Header in dem blauen “Temporären Tab” angezeigt. Möchte ich den Header persistieren, kann ich das via “Keep Open” im “Temporären Tab” und er wandert auf die linke Seite. Der “Temporäre Tab” ist auch beim Debuggen außerordentlich hilfreich, da so am Ende der Session nicht gefühlte 100 Tabs offen sind und man selektiv die Tabs persistieren kann.

image

Quick Launch – Shortcut CTRL + Q

Wo konnte ich nochmal die Farben in VS umstellen oder wie kann ich die Scrollbar anpassen?  Quick Launch hilft die Optionen schnell zu finden. Einfach “Theme” eingeben und ich finde die Einstellung, die es mir erlaubt zwischen Blau, Dunkel oder Hell zu wählen.

image

Scrollbar / Map Mode

Dem Einen oder Anderen ist vielleicht die neue Scrollbar in den Screenshots aufgefallen. Einfach mal im Quick Launch “Scrollbar” eingeben und die Optionen anschauen. Es gibt nun für die neue Scrollbar einen  Map mode, der auch ein Source Preview ermöglicht.

image 

Die  Scrollbar zeigt nun das ganze Dokument und den Bereich, in dem ich mich gerade befinde, hell hinterlegt. Die Idee dahinter ist, dass Entwickler typischerweise eine Art Karte des Codes im Kopf haben, also quasi ungefähr wissen, wo sich was befindet. Die Scrollbar im Map mode soll unter anderem eine schnelle Navigation in großen Files noch einfacher machen.

image

Bewege ich mich nun auf der Scrollbar in einem Bereich, der gerade nicht im Editor angezeigt wird, erhalte ich eine Preview des Codes. Die Größe des Preview ist konfigurierbar.

image

Zudem zeigt die Scrollbar Fehler, Breakpoints, Bookmarks und Ergebnisse der Suche an.

image

Durch das Auskommentieren des Facebook Headers habe ich einiges kaputt gemacht Smile. Alle Stellen mit Fehlern werden rot markiert und die Änderungen gelb. Vor allem beim Refactoring ist diese Ansicht sehr hilfreich.

image

GoToDefinition Shortcut - F12 ist bekannt. Peak Definition Shortcut  - ALT + F12 vielleicht aber noch nicht.

Mit Peak Definition kann man die Definition inline im aktuellen Editor öffnen. Dabei handelt es sich um ein voll funktionales Editorfenster, welches auch weitere Peak Definitions, quasi als Stack anzeigen kann.

image

Organize Code – Shortcut - ALT + Arrow Up or Arrow Down

Codezeile oder Block markieren und mit ALT und den Pfeiltasten verschieben. In folgendem Screenshot habe ich die Usings umstrukturiert. Nicht das wichtigste Feature, aber vielleicht doch in der einen oder anderen Situation nützlich.

image

Format Code – Shortcut CTRL + K + F 

In gewachsenen Projekten sieht die Formatierung des Codes meist sehr unterschiedlich aus. In VS stehen jetzt eine Reihe von Formatierungen zur Verfügung, die automatisch beim Schreiben oder mit dem Shortcut auf bestehenden Code angewendet werden. Was genau wie formatiert wird, legt man in den Optionen fest:

image

Hier ein Beispiel von Code – nicht schön:

image

Code markieren und CTRL + K + F   - Besser

image

Tipp: Einstellungen im Team festlegen – Exportieren und Importieren.

Rename Refactoring – Shortcut F2

Wer an C++ und Refactoring denkt, dem fällt wohl Visual Assist ein, eines der besten Refactoring Tools für C++. Dennoch werden Basis Refactorings auch direkt in Visual Studio verfügbar sein. Ein Beispiel ist das Rename Refactoring, welches via C++ Rename Refactoring zur Verfügung steht.

image

C++ Unit Testing

C++ Unit Tests sind direkt in C++ verfügbar und können transparent mit dem TestExplorer oder Build ausgeführt werden. Mehr Informationen zum C++ Unit Testing gibt es unter C++ Unit testing.

image

Zum Abschluss möchte ich noch Funktionen zur Codevisualisierung vorstellen.

Include Dependencies

Include Abhängigkeiten können via Architecture > Generate Dependency Graph >For Include file visualisiert werden. Diese DGML basierenden Graphen können exportiert und im Team zur Diskussion und Analyse genutzt werden.

image

Code Map Debugging – Shortcut CRTL + Shift + ö

Code Maps sind eine graphische Repräsentation der Code Artefakte und haben das Ziel, die Komplexität der Abhängigkeiten zu visualisieren. Code Maps selbst können statisch erzeugt werden. Viel Interessanter ist aber die Möglichkeit, eine Code Map über den Callstack z.B. beim Debuggen zu erstellen. Im Debugging wird dazu Show Call Stack on Code Map aktiviert:

image

Während des Debugging wird eine Code Map aufgebaut. Der Pfeil auf der Map zeigt an, in welchem Code wir uns gerade befinden. Die Code Map gibt zum einen eine gute Übersicht, welche Codebereiche während des Debugging ausgeführt wurden und zum anderen kann die Map mit Kommentaren versehen später mit dem Team besprochen werden.

image

Viel Spass
Chris