Skip to content
Luis Diogo Couto edited this page Jan 28, 2015 · 7 revisions

The IDE components form the Eclipse based Overture IDE. All of the components are prefixed by org.overture.ide.

Builders.Vdmj

The Builders.Vdmj component contains the builders for the three different types of VDM project (SL,PP and RT). a builder is a process that runs after a change occurs in a project resource. In Overture, a builder parses and type-checks a project after a change has been made. A builder is tied with a nature of a project via the extension point "org.overture.ide.core.buildParticipant".

Example of the builder definition for VDM-PP (plugin.xml)
  <extension
         point="org.overture.ide.core.buildParticipant">
      <builder
            class="org.overture.ide.builders.vdmj.BuilderPp"
            nature="org.overture.ide.vdmpp.core.nature">
      </builder>
  </extension>

The builder class must extend the AbstractVdmBuilder class present in the ide.core. For convenience, the builder class can extend the VdmjBuilder class; then it is only required to implement the buildModel and typeCheck methods.

Interesting sources in the builder component include:

  • org.overture.ide.builders.vdmj.BuilderSl - the VDM-SL builder
  • org.overture.ide.builders.vdmj.BuilderPp - the VDM-PP builder
  • org.overture.ide.builders.vdmj.BuilderSl - the VDM-RT builder
  • overture.ide.builders.vdmj.VdmjBuilder- the superclass of all the above builders
  • ide/builders/vdmj/plugin.xml - Connects a builder with a nature

For more about builders in Eclipse, see http://www.eclipse.org/articles/Article-Builders/builders.html

Misc

  • IDE-Core - contains IDE core classes such as VdmProject, VdmBuilder, VdmModel, VdmModelManager and ResourceManager.
  • Debug- contains the IDE parts related with launching a debug session (Launch Configurations) and the Debug Perspective. Also contains the client side of the Debug protocol (http://xdebug.org/docs-dbgp.php) used to communicate with the interpreter.
  • Help - contains the Overture Help Pages
  • Parsers.Vdmj - contains the parsers for specific dialects of VDM;
  • Platform - countains the branding parts (Overture splash screen, icons, about box, etc.) and features to be included in Overture
  • UI - a great deal of the UI parts of Overture are defined here e.g. VDM Perspective, VDM Navigator, VDM Editor, etc.
  • VdmSL.Core - contains VDM-SL project Nature
  • VdmSL.Debug - contains dialect specific classes related with launching and Debug Configurations
  • VdmSL.UI - contains dialect specific editor features like: keywords, templates and content assist. Also includes the dialect specific wizards.
  • VdmPP.Core - contains VDM-PP project Nature and constants
  • VdmPP.Debug - contains dialect specific classes related with launching and Debug Configurations
  • VdmPP.UI - contains dialect specific editor features like: keywords, templates and content assist. Also includes the dialect specific wizards.
  • VdmRT.Core - contains VDM-RT project Nature
  • VdmRT.Debug - contains dialect specific classes related with launching and Debug Configurations
  • VdmRt.UI - contains dialect specific editor features like: keywords, templates and content assist. Also includes the dialect specific wizards.

TODO:

  • talk about the eclipse influences (plug-ins and features)
  • talk about the core module wrapping+exposure technique (OSGi manages deps)
  • Present overall IDE architecture
  • Present each IDE Module (what does it wrap/export? what are its UI contributions?)
  • mention the adapter stuff
  • mention the model utilities
  • mention the UI utilities
Clone this wiki locally