Skip to content
Branch: master
Find file History
Type Name Latest commit message Commit time
Failed to load latest commit information.
src feat(visualisation): panel added to show Spoon objects' properties (#… Sep 21, 2019
LICENSE feat(spoon-visualisation): Spoon AST visualisation tool (#3072) Aug 22, 2019 feat(visualisation): panel added to show Spoon objects' properties (#… Sep 21, 2019
pom.xml feat(visualisation): Spoon visualiser improvement for accessing JavaD… Sep 15, 2019

Visualization of Spoon ASTs with JavaFX

A JavaFX app for visualising the Spoon abstract syntax tree of Java code (Java 11 supported). It is an alternative to the Swing-based GUI of Spoon ASTs ($ java -cp spoon...-jar-with-dependencies.jar spoon.Launcher -i --gui --noclasspath)


  • @arnobl

How to run

The app requires a JDK 11. We currently do not provide any packaging of the app (jlink cannot package apps having non-modular libraries, such as Spoon).

So, to run the app, run: mvn clean package. Then go into the target/modules folder and launch: java --module-path . --add-modules=javafx.controls,javafx.fxml,interacto.javafx,,spoon.core,org.eclipse.jdt.core,annotations -jar visualisation-1.1.jar

Features Summary

Feature: selection highlighting

Put the code in the text area on the left. The Spoon tree should then appear (if not, maybe the code is not ok).

You can click on a tree element on the right to select the corresponding code elements on the left. This does not work when the clicked tree item refers to a code element that does not have a line position.


You can also click on a code element in the code area to select the corresponding tree item. On the next picture, the user clicked on int:


Feature: implicit elements masking

The checkbox in the toolbar masks or shows the Java implicit elements (printed with '(implicit)' in the tree view).

Feature: export as text

The button Save exports the tree view of the current Java code in a text file.

Feature: analysis level

Users can set the analysis level: class element, statement, expression, auto.

The class element level corresponds to fields, methods, etc., of a class:


The statement level corresponds to Java code statements:


The expression level corresponds to any Java expression:


The auto level tries to detect the level automatically by starting parsing the code as a Java class (then class element, etc.):


Feature: Show Properties

When clicking on a tree node, the properties of the corresponding Spoon element are displayed in tables in a dedicated panel. The path expression (CPath) that permits the selection of the selected Spoon element is displayed at the top of the panel.


Feature: Open Javadoc

A user can click on class names in the Spoon AST view to open the corresponding Spoon Javadoc.


Feature: one argument to load a Java file

The app can take one argument: the path of a Java file to load.

You can’t perform that action at this time.