Java Getriebe

Java und NetBeans

Der Eclipse Code Formatter in NetBeans

Der Code Formatter in NetBeans ist ja ganz nett und stellt auch einen rudimentären Support dar um den Sourcecode nicht komplett “versauen” zu lassen. Aber so richtig viel kann der nicht. Andere Open Source Projekte wie Jalopy, jindent oder Jacobe sind entweder veraltet, nicht vollständig frei oder komplett auf kommerziell umgestellt. Ich vermisse in NetBeans so etwas, wie es in Eclipse schon seit Jahren Standard ist.

Bei der Suche nach einem guten “Stand alone” Formatter bin ich über Umwege auf den Blogeintrag How to use the eclipse code formatter from your code im “ssssssssssscripting !!!”-Blog gestoßen.

Ich habe zunächst ein Wrappermodul für die angegebenen Jar-Dateien erstellt. Zusätzlich brauchte ich noch das Modul “org.eclipse.core.runtime”. Danach habe ich ein zweites Modul erstellt, welches eine Abhängigkeit auf das Wrappermodul bekommen hat.

Eine kleiner Aufruf des Action Wizards, eine Contextaction mit EditorCookie und der folgende Code in actionPerformed ((den ich aus dem Blogpost kopiert und angepasst habe))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  @Override
  public void actionPerformed(ActionEvent ev)
  {
    StyledDocument document = context.getDocument();
    int length = document.getLength();

    int kind = CodeFormatter.K_UNKNOWN;
    int indentationLevel = 0;
    String lineSeparator = System.getProperty("line.separator");

    CodeFormatter formatter = new DefaultCodeFormatter();
    String text;
    try
    {
      text = document.getText(0, length);
      TextEdit textEdit = formatter.format(kind, text, 0, length,
          indentationLevel, lineSeparator);

      IDocument formatted = new Document(text);
      textEdit.apply(formatted);

      String formattedText = formatted.get();

      document.remove(0, length);
      document.insertString(0, formattedText, null);
    }
    catch(Exception ex)
    {
      Exceptions.printStackTrace(ex);
    }
  }

und schon konnte ich meine Beispielquelldatei

1
public class Test{public static void main(String[] args){System.out.println("Hallo Welt");}}

in die folgende Form bringen lassen:

1
2
3
4
5
public class Test {
    public static void main(String[] args) {
        System.out.println("Hallo Welt");
    }
}

Jetzt fehlt eigentlich “nur noch” ein OptionsPanel wie in Eclipse für die ganzen Einstellungsmöglichkeiten.

One Response to Der Eclipse Code Formatter in NetBeans

  1. Mara says:

    Das ist doch mal ein sinnvoller Typ. Bin hier gerade auch auf die große google Suche gegangen weil ich mich bei NetBeans schon grün und blau geärgert habe über einen fehlenden soliden Formatter. Finde es schade, dass Open-Source Lösungen wie NetBeans und Konsorten so was nicht standardmäßig mit bringen. Aber na gut, man muss eben immer wieder um die Sache herum basteln bis es dann wirklich läuft. Aber gut, besser so. War schon kurz am überlegen, ob ich mir nicht Eclipse anschaffen soll. Da bin ich mit der jetzigen Lösung schon zufriedener…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


1 × = vier

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>