Skip to content

coding style (Programmierstil)

Die Engine Pi ist in einem eigenen Programmierstil (coding style) geschrieben. Dieser Programmierstil orientiert sich an dem Stil, der in BlueJ verwendet wird. BlueJ erzeugt beim Erstellen einer neuen Klasse Beispiel-Code, der folgendermaßen aussieht:

/**
 * Write a description of class MyClass here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class MyClass
{
    // instance variables - replace the example below with your own
    private int x;

    /**
     * Constructor for objects of class MyClass
     */
    public MyClass()
    {
        // initialise instance variables
        x = 0;
    }

    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y  a sample parameter for a method
     * @return    the sum of x and y
     */
    public int sampleMethod(int y)
    {
        // put your code here
        return x + y;
    }
}

Die wichtigsten Eigenschaften des Engine-Pi-Programmierstil sind:

  • Zur Einrückung werden Leerzeichen (spaces: ) und keine Tabulatorzeichen (tabs: \t) verwendet.
  • Einen Einrückung ist vier Leerzeichen breit.
  • Beginnende geschweifte Klammern ({) stehen in einer neuen Zeile.

Eclipse Formatter

Das Engine-Pi-Projekt verwendet den Eclipse Formatter. Der gewünschte Programmierstil ist in einer XML-Datei definiert. Theoretisch könnte man per Hand eine solche XML-Datei erstellen. Das Dateiformat ist jedoch sehr komplex, sodass es sich empfiehlt die Eclipse IDE zu verwenden, um einen eigenen Programmierstil zu definieren (Window > Preferences > Java > Code Style > Formatter).

Wrapping settings → Function calls → Arguments → “Wrap all elements, except first element if not necessary” Wrapping settings → Function calls → Qualified invocations → “Wrap all elements, every element on a new line”1

Maven Plugin

Das Engine-Pi-Repositories mit dem Formatter Maven Plugin konfiguriert. Folgende Kommandozeilenbefehle formartieren alle Java-Datei als Subprojekte im Repository:

make format oder mvn formatter:format oder mvn package

Verwendung im Editor Visual Studio Code

Um den Engine-Pi-Programmierstil in Visual Studio Code zu verwenden ist folgende Konfiguration in der Datei .vscode/settings.json nötig:

Die XML-Datei wird über eine lokale Datei referenziert:

{
  "java.format.settings.url": "./subprojects/build-tools/src/main/resources/eclipse-formatter.xml",
  "editor.tabSize": 4,
  "editor.insertSpaces": true
}

Die XML-Datei wird über einen HTTP-URL referenziert:

{
  "java.format.settings.url": "https://raw.githubusercontent.com/engine-pi/engine-pi/refs/heads/main/subprojects/build-tools/src/main/resources/eclipse-formatter.xml",
  "editor.tabSize": 4,
  "editor.insertSpaces": true
}

Über den Befehl Format Document (Shift+Alt+F) kann die aktuelle Datei formatiert werden.