sciss / dotterweide

GNU Library General Public License v2.1 only GitHub

The Dotterweide embeddable mini-IDE for Scala. Mirror of https://codeberg.org/sciss/Dotterweide

Dotterweide

Build Status Maven Central

statement

The Dotterweide project aims to develop an embeddable mini-IDE with support for the Scala programming language.

This is the main repository, containing the editor and IDE. Its code was originally forked from ToyIDE by Pavel Fatin. Original code was released under Apache License. This project - Dotterweide - is released under the GNU Lesser General Public License v2.1 or higher. Over time, this project will diverge more and more from the original code base.

The demo is subject to GPL v3 due to the inclusion of Submin.

linking

The following modules are published to to Maven Central:

"de.sciss" %% "dotterweide-core"        % v  // core API, few or no UI components
"de.sciss" %% "dotterweide-ui"          % v  // Swing UI components
"de.sciss" %% "dotterweide-scala"       % v  // Scala langAdviserImpluage support
"de.sciss" %% "dotterweide-doc-browser" % v  // Building blocks for scaladoc/javadoc API browser

The current release version v is "0.4.3".

Note that the Scala 2 compiler is fragile between versions, so if you use Dotterweide as compiled against Scala compiler 2.13.7, it may be that it breaks when you use in a project based on scala 2.13.8. This unfortunately due to the fact that no binary compatibility guarantees are given to the Scala compiler API.

building

The project build with sbt with support for Scala 2.13, 2.12, and the main Scala version being 2.13. To run the demo, use sbt dotterweide-demo/run. You can pass arguments to the demo run, for example:

sbt 'dotterweide-demo/run --language scala --colors dark'

For interpreter integration, try --flash switch in the demo (shift-return flashes line or selection).

Note that the doc-browser module currently requires JavaFX, which is a huge PITA between JDK versions, so we currently require compilation on JDK 11.

documentation

Pretty much informal at this stage; see the notes directory and the -org project.