So you want to be a Shadow developer?

Great! We could sure use the help. Right now, we have a few active projects listed below, from the Shadow reference compiler to plug-ins and syntax highlighters to tutorials for the language.

Reference compiler

The Shadow reference compiler is written in Java, using ANTLR 4 to parse source files and generate abstract syntax trees. We use Maven as our build manager. Most of us use Eclipse or IntelliJ IDEA for development. You need a Java 8 JDK or higher, Maven, and LLVM installed. See the Downloads page for more information about installing LLVM on your platform.

The GitHub site for the Shadow compiler is below.

  1. Clone the Git repository (and import the project into Eclipse or IntelliJ IDEA if you’d like)
  2. Maven clean (mvn clean)
  3. Maven generate sources (mvn generate-sources)

Then, you should have a runnable compiler. Try running all the JUnit tests in src/test/java. If you want to generate the executable JAR for the compiler, use Maven package (mvn package or mvn -DskipTests=true package to skip running tests).

Please use the compiler issues page to report any issues you find.

Plug-ins and syntax highlighters

Eclipse plug-in

The Shadow Eclipse plugin is also written in Java. To work on it, you’ll need the Eclipse Plug-in Development Environment (PDE), which is included in the Eclipse SDK or can be installed through Eclipse.

The GitHub site for the Shadow Eclipse plug-in is below.

We’re also hoping to make an IntelliJ plug-in for Shadow at some point.

Syntax highlighters

If you’d like to add a syntax highlighter for your favorite development environment, please fork the Shadow syntax highlighter repository given below, add your syntax highlighter, and issue a pull request.

Tutorial development

Tutorials for Shadow are written in Sphinx. If you’d like to contribute to our tutorials on the Shadow language, you must first do the following.

  1. Install Python 3.6+
  2. Install Sphinx

The GitHub site for Shadow tutorials is below.