SoC Ideas Eclipse Plugin

From The Battle for Wesnoth Wiki
Revision as of 16:20, 28 March 2010 by Crab (talk | contribs) (Description)

This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas

This is a Summer of Code 2010 Idea


Create an eclipse plugin for wesnoth UMC development

Page for the idea: SoC_Ideas_Eclipse_Plugin

We want to use the eclipse platform as the IDE to assist Wesnoth UMC (user-made-content) Development. To do that, we need to create an eclipse plugin which will allow to rapidly start UMC development and which will act as a frontend for existing wesnoth UMC development tools. To do so, we need to try to integrate existing solutions as much as possible.

There is 1 student proposal for this idea

Timotei21 - Eclipse UMC Plugin timotei
irc: timotei21/timotei
forum: timotei21

I'm Timotei, and I want to participate in GSOC, as a developer at Battle for Wesnoth game. I'm interested in developing the Eclipse UMC plugin. For details of implementation and planning, see the Proposal Summary and the Timeline.

Last Updated: 16th of April 2010
See SummerofCode Timotei21 for more information.

Additional Information

Features wanted:


  • Syntax highlighting.


  • Eclipse will open a map in Wesnoth's map editor if the user presses F3 while over the attribute.

If the file doesn't exist, the map editor will be opened to create a new one with the given name.

  • If a user specifies a non existing map that will be recognized from the builder and marked as error in the eclipse wml editor.

We want to have tab completion for all maps that are included in mainline or in the campaigns map folder.


  • Eclipse will launch wesnoth directly with the active scenario to start.

That could be done by overwriting the _main.cfg's "first_scenario" attribute or by enhancing the c++ code of wesnoth.

  • Next_scenario attributes will be checked if there is a scenario with the given ID and mark it as error if otherwise.
  • You should also be able to tab complete the value of the next_scenario attribute.


  • Eclipse will scan all further scenarios (following the next_scenario tags) and collect the defined variables.

All attributes that take a variable as argument will check if the variable has been defined before, checked and tab completed.

  • This is also true for every occurrence of the "$" token.


The plugin needs to scan the data folder and the campaign files for macros and do tab completion and argument checking for them. Hovering the mouse over the macros name will bring up the coding of the macro in a floating box. Pressing F3 when a macro is highlighted jumps to the file/location where the macro is defined.


The editor must mark every attribute that is not valid in it's context. The values of attributes should be tab completable wherever possible. The editor should check the values if they match the type that the engine expects from the attribute. Hovering the mouse over an attribute brings a floating box with the description of it up.


The editor must mark every tag that is not valid in it's context. Tags must be tab completable, a closing tag is inserted no matter if the tag was tab completed or not. With the insertion of the closing tag all mandatory attributes that can be determined are inserted with the type of the attribute added as the value but commented. Optional attributes can be auto inserted (all or only a subset) and have values corresponding to their default values. Hovering the mouse over a tag brings a floating box with the description of it up.


We want to have wizards for creating:

  • Campaigns
  • Eras
  • Multiplayer Campaigns/Scenarios
  • Factions
  • Scenarios
  • Units


  • Wmllint
  • Wmlvalidator
  • Wmlindent
  • Wmlscope
  • Upload to the UMC addon server.

More Information at EclipsePlugin