/spoofax-intellij

Primary LanguageJavaApache License 2.0Apache-2.0

Jenkins GitHub license

Spoofax Language Workbench plugin for IntelliJ IDEA

Develop and use languages with the Spoofax Language Workbench in IntelliJ IDEA.

Want to learn more? Read the manual.

Quick Start

To install the plugin, either:

  • clone this repository, then execute ./gradlew runIde (or gradlew.bat runIde on Windows) from the repository's root to start an instance of IntelliJ IDEA with the Spoofax plugin loaded; or

  • ensure you have Git and a JDK installed, then execute this from the command line; or

    curl https://raw.githubusercontent.com/metaborg/spoofax-intellij/master/repository/install.sh -sSLf | bash
    

To create a new Spoofax language specification, go to the FileNewProject menu, and select Spoofax Language. Finish the wizard.

New Spoofax Project

Or to create a Java project in which you can use Spoofax languages, go to the FileNewProject menu, and select Java. Check the Metaborg library and finish the wizard.

New Java Project

Want to learn more? Read the manual.

Features

The Spoofax for IntelliJ IDEA plugin has the following features:

  • Create new Spoofax Language Specification project.
  • Import existing Spoofax Language Specification project (e.g. Eclipse/Maven/Gradle projects).
  • Syntax highlighting.
  • Reference resolution for most languages.
  • Load/unload languages on-the-fly.
  • Use your own language in the same editor.

Limitations

The Spoofax for IntelliJ IDEA plugin has the following limitations:

  • Languages are loaded application-wide.

License

Copyright 2016-2018 Daniel Pelsmaeker

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "as is" basis, without warranties or conditions of any kind, either express or implied. See the License for the specific language governing permissions and limitations under the License.