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.
- Clone the Git repository (and import the project into Eclipse or IntelliJ IDEA if you’d like)
- Maven clean (
mvn clean
) - 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.
- Install Python 3.6+
- Install Sphinx
The GitHub site for Shadow tutorials is below.