
051: ABAP Cleaner in VS Code - Installation and Guide
Der ABAP Cleaner ist seit einer Weile auch für VS Code verfügbar. Schauen wir uns daher an wie du diesen installierst und in den ABAP Development Tools verwendest, um Zeit und Aufwand bei der Entwicklung zu sparen.
Inhaltsverzeichnis
Möchtest du in der heutigen Zeit noch Quellcode manuell formatieren und Einrückungen vornehmen oder sollte dies automatisch durch ein Tool passieren? Wie sieht es bei deinen Kollegen aus? Habt ihr komplett unterschiedliche Code-Styles innerhalb eurer Codebase und macht jemand etwas kaputt, sobald er den Code anpasst und seine Formatierungen vornimmt? Dafür gibt es mittlerweile den ABAP Cleaner, ein einfaches Tool, um mit einem Tastendruck den kompletten Quellcode aufzuräumen und einen einheitlichen Standard innerhalb eines Teams zu gewährleisten. Daher schauen wir uns in diesem Artikel einmal die Installation und die Verwendung an.
Installation
Für die Installation wechseln wir wieder in den Extension-Bereich und suchen dort nach ABAP Cleaner. Dort finden wir das Plugin über den SAP Standard Open Source Libraries. Über die Installationsseite erhältst du weitere Informationen zum Plugin, wie zum Beispiel die Codeformatierung durchgeführt wird, welche Shortcuts es gibt und wie die verschiedenen Regeln definiert sind. Über den Install-Button installieren wir das Tool in unserer Umgebung. Dabei solltest du wissen, dass hier eine ausführbare Datei installiert wird, die Java benötigt, um zu laufen. Solltest du Probleme mit der Java-Installation haben, findest du in der Beschreibung weitere Informationen, wie du dieses Problem beheben kannst.
Ist das Plugin dann installiert, sehen wir auch direkt an dem Sicherheitshinweis, dass die abap-cleaner.exe gestartet werden möchte. Diese wird benötigt, damit der ABAP Cleaner läuft und die Formatierungen vornimmt. Daher lassen wir den Start der ausführbaren Datei zu. Hier solltest du schauen, dass innerhalb eures Unternehmensnetzwerks auch diese Datei erlaubt ist und nicht von Firewalls geblockt wird.
Formatter
Starten wir den ABAP Cleaner mit STRG + 4 das erste Mal, werden wir darauf hingewiesen, den Standard-Formatter für ABAP-Dateien zu konfigurieren. Über den Button "Configure" landen wir im Dialog, um zwischen den Standard-Formattern auswählen zu können. Dabei wird uns oben der ABAP Ceaner angeboten und darunter direkt der Standard-Formatter aus den ABAP Development Tools. Hierbei handelt es sich um den Pretty Printer. Da wir den ABAP Cleaner nutzen wollen, definieren wir diesen als Standard-Formatter für die ABAP-Dateien. Die Formatierung wird hier direkt auch ausgeführt und wir erhalten bereits vorformatierten Code. Dabei wurden die Einstellungen des ABAP Cleaners aus unseren Standardeinstellungen aus Eclipse direkt übernommen, da wir bereits dort mit dem Tool arbeiten. Schauen wir uns im nächsten Abschnitt einmal an, wie wir weitere Schritte konfigurieren können und das Tool einstellen, wenn wir zum Beispiel das erste Mal damit arbeiten.
Interactive Mode
Mit STRG + SHIFT + 4 startest du die Konfiguration des Plugins. Dabei geht ein neues Fenster auf, in dem wir erst einmal eine Gegenüberstellung des aktuellen Codes zu dem bereits formatierten Code erhalten. Dabei werden alle Regeln angewandt, die wir bereits eingestellt haben. Hier können wir uns zum Beispiel auch anschauen, welche verschiedenen Regeln angewandt wurden, um zu verstehen, welche Formatierungen vorgenommen wurden. Markieren wir zum Beispiel in der Main-Methode den kompletten Quellcode, sehen wir auf der rechten Seite die unterschiedlichen Regeln, die für dieses Stück Quellcode angewandt wurden. So haben wir immer die komplette Kontrolle darüber, wie der Quellcode formatiert wird, welche Regeln aktiv sind und wie wir diese nutzen können.
Dazu findest du in den Einstellungen oben auch noch Informationen darüber, wie weit die Cleanup-Regel reicht. Grundsätzlich kann es sein, dass du die komplette Klasse bereinigen willst, was wir hier eingestellt haben. Du kannst aber auch definieren, dass zum Beispiel nur markierte Bestandteile bereinigt werden oder die aktuelle Methode, in der wir uns befinden, um die Reichweite der Bereinigung kleiner zu halten und mögliche Änderungen im Quellcode ebenso.
Konfiguration
Über den Button "Configure" landest du in den Einstellungen, um ein oder mehrere Profile anzulegen, zu verwalten und verschiedene Einstellungen vorzunehmen. Grundsätzlich bietet sich die Möglichkeit an, ein Standardprofil zu definieren, welches innerhalb des Teams geteilt und genutzt wird. Dazu findest du im oberen Bereich verschiedene Optionen, um Profile zu verwalten. Auf der linken Seite findest du alle Regeln, die entsprechende Bereinigungen im Quellcode vornehmen. Hier kannst du schauen, welche Regeln du aktivieren möchtest und welche du vielleicht nicht brauchst. Wählst du eine Regel aus, hast du dort weitere Einstellungsmöglichkeiten und Verweise, zum Beispiel auf die offizielle Dokumentation, um zu sehen, wieso diese Regel angewandt wird. Zusätzlich gibt es auch noch ein Beispiel, welches dir verdeutlicht, wie die eigentliche Regel ausgeführt wird und die Aufbereitung funktioniert. Damit verlassen wir erst einmal die Konfiguration und schauen uns nun an unserem aktuellen Quellcode ein Beispiel an.
Beispiel
Schauen wir uns als Beispiel die Main-Methode an. Hier haben wir eine Methode, die wir als Erstes aufrufen, und eine unnütze "ME" Referenz, da grundsätzlich die Methode der aktuellen Klasse aufgerufen wird. Im Loop haben wir als Erstes einen CHECK implementiert. Laut Clean-ABAP-Regel ist der CHECK nach den ersten Statements nicht mehr erlaubt. Diesen könnten wir implementieren, wenn wir ihn als erstes ausführbares Statement innerhalb der Methode haben, aber nicht, wenn es bereits vorherige Statements gibt. Auch funktioniert der CHECK jeweils unterschiedlich, je nachdem, ob er auf der Methodenebene steht oder zum Beispiel in einer Schleife. Daher würden wir diesen umbauen. Dann rufen wir eine Methode auf, dort haben wir zum Beispiel ein EXPORTING. Dieses EXPORTING ist heutzutage nicht mehr nötig wenn wir nur diese Parameter haben, ebenso wie verschiedene Leerzeichen für die Formatierung, die wir hier verwendet haben.
Führen wir nun den ABAP cleaner einmal im Detail aus, dann sehen wir, dass unnötige Leerzeichen entfernt wurden. Die "ME" Referenz wurde entfernt, der CHECK wurde aufgelöst, die Berechnung der Summe wurde vereinfacht, da wir hier mit neueren Sprachkonstrukten arbeiten können, und die Output-Methode wurde sauber formatiert sowie unnötige Keywords entfernt. Insgesamt ist die Methode nun schlanker und übersichtlicher geworden.
Fazit
Der ABAP Cleaner ist mittlerweile zu einem Standardtool innerhalb der ABAP-Entwicklung geworden. Er nimmt dir sehr viel Zeit beim Thema Formatierung ab und gibt dir Hinweise auch während der Entwicklung auf unnütze Statements, ergänzt automatisch verschiedene Dinge, baut alte Statements um und weist noch darauf hin, wenn Variablen nicht verwendet werden. Damit handelt es sich um ein Allround-Werkzeug zur Arbeit mit Quellcode. Arbeitet ihr in einem Team zusammen, solltet ihr auf jeden Fall eine einheitliche Variante für das komplette Team oder den kompletten Bereich definieren, damit die Quellcodeformatierung immer einheitlich aussieht und der nächste Kollege nicht wieder die Einstellungen überschreibt, sobald er den Quellcode angepasst hat. Benutzt du den ABAP Cleaner heute noch nicht, dann wird es Zeit, sich diesen anzuschauen und sehr viel Zeit beim Thema Quellcodeformatierung zu sparen. Das Plugin ist verfügbar für die ABAP Development Tools in Eclipse, aber auch für VS Code, wie wir heute gesehen haben.
Wir bedanken uns fürs Zuschauen und bis zum nächsten Mal!
YouTube
Video