Spoofax 2.2.0 Migration Guide

This migration guide describes how to migrate from Spoofax 2.1.0 to 2.2.0.


The deprecated libraries and files from Spoofax 2.1.0 have been removed. If you have not done so yet, follow the Spoofax 2.1.0 migration guide to migrate your project to the new Spoofax library.

Spoofax Core

The language discovery API was refactored into 2 separate types: a low-level interface for requesting creation of language components ILanguageComponentFactory, and a high-level interface ILanguageDiscoveryService that acts as a facade for loading language components and implementations.

The existing methods are still available, but are deprecated and will be removed after the next release. You should change your code to use the new methods. The deprecation documentation on the Java methods show which new methods to use.


Eclipse Neon (4.6) is now required. The Eclipse instances with integrated Spoofax we generate are already using Neon. However, if you manage your own Eclipse instance, you will need to upgrade to Neon.


Move the placeholder and pretty-print options in the metaborg.yaml file to be under language.sdf, as in:
      prefix: "[["
      suffix: "]]"
    pretty-print: LangName