Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Xtext Project Plan/Features/WizardFramework

Working with programming or domain-specific languages should be guided by tooling where appropriate. Especially when starting with a new environment (read framework, language, API) wizards help people to get started. We want to provide an easy way to create such wizards, so that language and framnework designers can easily add new wizards and change them later on. This is either something we really need and an exemplary use of Xtext.

Core concepts of a wizard

Basically a wizard is very similar to a code generator. The main difference is, that the "modeling tool" you use is made up of wizard pages.

In order to describe a wizard we need to come up with a DSL to describe those wizard pages. In addition we need to be able to write templates using the information provided through those wizard pages.

A possible textual description of wizard pages

Depending on how much flexibility we want to provide a DSL could be more or less simple. I'm trying to come up with a reasonable compromise between flexibility and simplicity here. Consider the following description of a wizard:

 project wizard NewMyDSLProject {
   page PlugInProject {
     "Project Settings" {
       createJavaProject=Flag {
           sourceFolder=Text
           outputFolder=Text
       }
     }
     "Target Platform" {
       
     }
   }
 }
 TO BE CONTINUED

Back to the top