Internal Things that don't fit anywhere else

FeatureExtension PointsClasses
Perspectivesorg.eclipse.ui.perspectives org.eclipse.ui.perspectiveExtensionseu.hatsproject.ABSPerspectiveFactory eu.hatsproject.ABSDebugPerspective
AST handling

Perspectives

  • defined in extension point org.eclipse.ui.perspective
  • factory classes ABSPerspectiveFactory and ABSDebugPerspectiveFactory
  • method createInitialLayout(..) for defining the layout
  • addView(..) and addPlaceholder(..) to define the layout
  • addNewWizardShortcut(..) to add wizards to the new menu of the project explorer
  • addPerspectiveShortcut(..) to add perspectives to the "Open Perspective" menu

AST handling

  • the builder eu.hatsproject.absplugin.builder.AbsBuilder is registered as builder for ABS files. It gets called when an abs file needs building for example when it is changed in some way and the automatic building is active in eclipse.
  • the AST is hold in eu.hatsproject.absplugin.builder.AbsNature. Every ABS project has an instance of this class.
    • methods like parseABSFile(..), getCompilationUnit(..), typeCheckModel(..) and so on are mostly redirected to the IncrementalModelBuilder
    • markers are added for parser errors and typecheck errors after parsing a file (parseABSFile(..)) respectively typechecking (typeCheckModel(..)) the model. * markers are added for parser errors and typecheck errors after parsing a file (parseABSFile(..)) respectively typechecking (typeCheckModel(..)) the model.
  • eu.hatsproject.absplugin.internal.IncrementalModelBuilder should at first be implemented as an incremental builder for abs files. It is in the current state not really an incremental builder but it takes the whole process of parsing and typechecking all abs files in a project.