Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Beiträge

Code-Formatierung mit dem MSys Delphi Formatter

Nachdem der bisherige Code-Formatierer ab RAD Studio 13 „Florence“ nicht mehr enthalten war, blieb das Interesse der Entwicklergemeinschaft unverändert groß. Das Werkzeug aus RAD Studio 12.3 „Athens“ wurde von vielen regelmäßig genutzt – sowohl für die manuelle als auch für die automatisierte Codeformatierung. Aus der Community, in Webinaren und auf Veranstaltungen gab es dazu regelmäßige Nachfragen.

Es gibt zwar von Embarcadero empfohlene Lösungen von Drittherstellern, die aber nicht immer gut angenommen wurden und die bisherigen Einstellungen in Bezug auf den Code-Stil nicht übernehmen konnten. Diese Notwendigkeit eines Code-Formatierers wurde als Idee der Firma Maenken Systems (https://maenken.systems) in ein neues Projekt übertragen und so entstand in relativ kurzer Zeit der MSys Delphi Formatter (https://maenken.systems/de/delphi-formatter). Aktuell befindet sich der MSys Delphi Formatter noch in der Beta-Phase und lässt sich von der Herstellerseite sowie über GetIt herunterladen. Kundenfeedback ist also ausdrücklich erwünscht (ticket.maenken.systems) und hilft bei dem Prozess, das Endprodukt zu formen. Unterstützt werden aktuell die Sprachen deutsch und englisch sowie die Farbprofile hell und dunkel – je nach Einstellung von RAD Studio passt sich der Delphi Formatter automatisch an.

Überblick

Erreichbar ist der Delphi Formatter wie bis inkl. RAD Studio 12.3 über die Tastenkombination Strg+D und existiert gleichzeitig an denselben Positionen wie früher: im Editor, im Bearbeiten-Menü und im Kontextmenü. Kein Entwickler muss sich umgewöhnen und kann seinen bisherigen Workflow beibehalten.

Da sich Delphi natürlich weiterentwickelt hat, wurde versucht, diesen Fortschritt ebenfalls in den Delphi Formatter zu übertragen. Im Vergleich zum 12.3-Formatter lassen sich folgende Technologieerweiterungen definieren:

  • Mehr Einstellmöglichkeiten als zuvor: über 80 Einstellungen auf neun Optionsseiten geben die Formatierung bis ins Detail vor – vom Einzugzeichen bis zum spaltengenauen Ausrichten.
  • Verständnis für modernes Delphi: mehrzeilige Strings, Generics, anonyme Methoden, Inline-Deklarationen, Attribute, ternärer Operator: die Sprachfeatures der neuen Delphi-Generationen werden korrekt erkannt und formatiert.
  • Gebaut für Teams und für Bestandscode: projektweite Regeln per .editorconfig im Repository und bisherige Formatter-Profile aus Delphi 12.3 und älteren Versionen werden direkt eingelesen.
  • Unkompliziert installierbar: eine einzige Designtime-BPL, keine Laufzeit-Abhängigkeiten, Installation ohne Administratorrechte, saubere Deinstallation.

Sicherheit

Quellcode ist das geistige Eigentum jedes Projektes und der damit verbundenen Entwickler und Firmen. Daher muss die Sicherheit an erster Stelle stehen und der Delphi Formatter sowie seine enthaltene Engine definiert dahingehend vier Sicherheitssäulen:

  • Werterhaltend: es ändern sich ausschließlich das Layout und die Schreibweise. Die Semantik des Codes bleibt in jedem Fall unangetastet.
  • Verlustfrei: der Lexer erfasst jedes Zeichen. String-Inhalte, Kommentar-Texte, Direktiven-Argumente und asm-Blöcke werden wortgetreu durchgereicht.
  • Idempotent: Format(Format(x)) = Format(x) – bereits formatierter Code bleibt stabil. Ideal für Commit-Sauberkeit und ruhige Diffs.
  • Abbruch statt Risiko: ist der Quelltext nicht sauber analysierbar (z.B. fehlendes end), passiert tatsächlich gar nichts. Der Editorinhalt bleibt exakt, wie er war.

Nahtlose IDE-Integration

Die IDE-Integration bleibt weitestgehend so erhalten, wie es beim bisherigen Code Formatter der Fall war. Es werden keine neuen Menüs hinzugefügt und auch keine exotischen Tastaturkürzel erstellt – durch die Reaktivierung der originalen Formatier-Aktionen der IDE bleiben dieselben Einstiegspunkte bestehen, die Delphi-Entwickler seit Jahren in ihren Workflow integriert haben:

  • Tastatur: Strg+D im Quelltext-Editor
  • Menü: Bearbeiten -> Quelltext formatieren
  • Kontextmenü: Rechtsklick im Editor -> Quelltext formatieren
  • Einstellungen: Tools -> Optionen -> MSys -> Delphi Formatter
  • Sprache + Farbprofil: die Oberfläche folgt der IDE-Sprache (Deutsch/Englisch) und dem IDE-Farbprofil (hell/dunkel)

Einstellungen

Alle Einstellungen werden mit klarer Priorität zusammengeführt – die nächstgelegene ist maßgeblich:

  • Projekt: .editorconfig im Projektverzeichnis (mit Verzeichnis-Kaskade) – die Formatier-Regeln wandern mit dem Repository, was wiederum ideal für Teams ist.
  • Global: der Optionsdialog in der IDE enthält die persönlichen Einstellungen des Entwicklers.
  • Standard: ein bewusst konservativ eingebautes Profil, das sofort gute Ergebnisse liefert, ohne den Code von Grund auf umzubauen.

Beim Umstieg insbesondere von älteren Delphi-Versionen zieht das gewohnte Formatter-Profil einfach mit um. Über die Kategorie “Profile und Status -> Importieren…” werden die klassischen Together-.config-Dateien eingelesen, wie sie Delphi 12.3 und ältere Versionen verwenden. Dabei wird transparent gemeldet, wie viele Optionen übernommen wurden. So lassen sich auch ältere Projektstände und gewachsene Code-Basen mit ihren etablierten Formatierungsregeln direkt in RAD Studio 13 weiterführen.

Ein importierbares Standard-Profil liegt jeder Installation bei und die eigenen Einstellungen lassen sich jederzeit als .config exportieren sowie im Team teilen. Hierbei orientiert sich dieses Standard-Profil am Delphi Object Pascal Style Guide (https://docwiki.embarcadero.com/RADStudio/en/Delphi%E2%80%99s_Object_Pascal_Style_Guide).

Die Einstellungen sind über den Optionsdialog erreichbar und enthalten im linken Navigationsbaum in der Sektion “MSys -> Delphi Formatter” die kategorisierten Optionen. Hier wird unterschieden zwischen Allgemein, Einzug, Schreibweise, Leerzeichen, Zeilenumbrüche, Reflow, Leerzeilen, Ausrichten sowie Profile und Status.

Fazit:

Jeder, der zuvor mit dem Delphi Formatter bis RAD Studio 12.3 gearbeitet hat und ihn vermisst, oder eigenen Code einheitlich formatieren möchte, sollte dem MSys Delphi Formatter eine realistische Chance geben. Beim Schreiben dieser Zeilen Mitte Juli befindet sich dieses Produkt noch in der Beta-Phase und beim Hersteller Maenken Systems ist jedes Feedback ausdrücklich erwünscht (ticket.maenken.systems).

 Technische Daten

  • Ziel-IDE: RAD Studio 13 (BDS 37.0), Win32-IDE, Windows
  • Dateitypen: .pas, .dpr, .dpk, .inc
  • Architektur: IDE-freie Formatier-Engine + schlanker IDE-Adapter (eine DesignTime-BPL)
  • Abhängigkeiten: keine – nur RTL/VCL/DesignIDE (Bestandteil der IDE)
  • Installation: pro Benutzer, ohne Administratorrechte, saubere Deinstallation über Apps & Features
  • Sprachen: Deutsch, Englisch (folgt der IDE-Sprache)
  • Qualitätssicherung: mehr als 500 automatisierte Tests: Verlustfreiheit, Idempotenz, moderne Sprachfeatures, Fehlerabbruch
  • aktueller Status: Beta-Phase, kostenlose Teilnahme, Feedback ausdrücklich erwünscht
Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES