saker.build Documentation TaskDoc JavaDoc
public interface ScriptStructureOutline
Interface describing the structural outline information about the source code.

A structure outline defines a general outline information about the structure of the source code. It is in a tree hierarchy, meaning every outline element can have children of their own, and so on.

Each structure outline contains the root entries which serve as the top level containers for any sub entries. The entries can have hierarchical relations, and therefore nested in each other in a parent-child structure.

The outline tree is usually display in the IDE in a tree view alongside the source code editor. See StructureOutlineEntry for more information.

Methods
public List<extends StructureOutlineEntry>
Gets the top level root entries in this outline.
public default String
Gets the identifier string that is associated with the outline schema.
public default Map<String, String>
Gets the schema meta-data that is associated with the outline.
public abstract List<extends StructureOutlineEntry> getRootEntries()
Gets the top level root entries in this outline.
The entries. (May be null.)
public default String getSchemaIdentifier()
Gets the identifier string that is associated with the outline schema.

The schema identifiers are arbitrary strings that should uniquely identify the structure of the enclosed outline. It can be used by IDE plugins and others to interpret the outline structure and present the user a more readable display.

One use case for this is to create IDE plugins that assign various icons for the script outline to display.

The schema identifier can be provided by the scripting language, can be arbitrary, and should be unique among other scripting languages.

E.g.:

 "org.company.scripting.language.outline"
 
The schema identifier or null if none.
public default Map<String, String> getSchemaMetaData()
Gets the schema meta-data that is associated with the outline.

The meta-data can contain arbitrary key-value pairs that can be used to describe various aspects of the outline. This is used to convey information to the IDE plugins about different aspects of the outline.

The meta-data for the outline. May be null or empty.