All Projects → earldouglas → Sbt Frege

earldouglas / Sbt Frege

Licence: bsd-3-clause
Frege support for sbt

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Sbt Frege

Sbt Ignore Play Generated
Configure linters and coverage tools to ignore Play's generated source files.
Stars: ✭ 10 (-80.39%)
Mutual labels:  sbt, sbt-plugin
sbt-hepek
Sbt plugin for rendering Scala objects to files. And more!
Stars: ✭ 17 (-66.67%)
Mutual labels:  sbt, sbt-plugin
sbt-ammonite-classpath
Export the classpath for Ammonite and Almond
Stars: ✭ 29 (-43.14%)
Mutual labels:  sbt, sbt-plugin
sbt-elm
Scala Build Tool (SBT) plugin for the Elm programming language
Stars: ✭ 44 (-13.73%)
Mutual labels:  sbt, sbt-plugin
Xsbt Web Plugin
Servlet support for sbt
Stars: ✭ 381 (+647.06%)
Mutual labels:  sbt, sbt-plugin
Sbt Play Gulp
Gulp asset pipeline for Play Framework
Stars: ✭ 38 (-25.49%)
Mutual labels:  sbt, sbt-plugin
sbt-jni
SBT Plugin to ease working with JNI
Stars: ✭ 110 (+115.69%)
Mutual labels:  sbt, sbt-plugin
sbt-flaky
Detect flaky tests with sbt
Stars: ✭ 35 (-31.37%)
Mutual labels:  sbt, sbt-plugin
Soteria
Plugin to block compilation when unapproved dependencies are used or code styling does not comply.
Stars: ✭ 36 (-29.41%)
Mutual labels:  sbt, sbt-plugin
sbt-assembly
Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
Stars: ✭ 1,801 (+3431.37%)
Mutual labels:  sbt, sbt-plugin
Sbt Updates
sbt plugin that can check Maven and Ivy repositories for dependency updates
Stars: ✭ 653 (+1180.39%)
Mutual labels:  sbt, sbt-plugin
Sbt Multi Jvm
Multi-JVM testing in sbt
Stars: ✭ 50 (-1.96%)
Mutual labels:  sbt, sbt-plugin
sbt-kubeyml
Sbt plugin to help deploy Scala applications to Kubernetes
Stars: ✭ 37 (-27.45%)
Mutual labels:  sbt, sbt-plugin
Sbt Release
A release plugin for sbt
Stars: ✭ 582 (+1041.18%)
Mutual labels:  sbt, sbt-plugin
sbt-example
Run Scaladoc as unit tests
Stars: ✭ 30 (-41.18%)
Mutual labels:  sbt, sbt-plugin
sbt-ecr
An SBT plugin for managing Docker images within Amazon ECR.
Stars: ✭ 52 (+1.96%)
Mutual labels:  sbt, sbt-plugin
xsbt-webstart
A Webstart plugin for sbt
Stars: ✭ 12 (-76.47%)
Mutual labels:  sbt, sbt-plugin
chuckwagon
a Scala/sbt AWS Lambda Toolkit
Stars: ✭ 29 (-43.14%)
Mutual labels:  sbt, sbt-plugin
sbt-publish-more
📤 Publish artifacts to more than one repository
Stars: ✭ 21 (-58.82%)
Mutual labels:  sbt, sbt-plugin
Sbt Buildinfo
I know this because build.sbt knows this.
Stars: ✭ 486 (+852.94%)
Mutual labels:  sbt, sbt-plugin

Build status Latest version

Features

  • Compile Frege code from your project's src/main/frege/ directory
  • Call Frege code from your project's Java/Scala/etc. code
  • Launch the Frege REPL with your project's classes and libraries

Requirements

  • sbt 1.0.1+
  • Scala 2.4.0+

For sbt 0.13.6+ projects, use sbt-frege version 1.1.3

Getting started

Add the Frege sbt plugin to your project:

project/plugins.sbt:

addSbtPlugin("com.earldouglas" % "sbt-frege" % "3.0.2")

Write some Frege code:

src/main/frege/example/HelloWorld.fr:

package example.HelloWorld where

main :: [String] -> IO ()
main _ = println "Hello, world!"

Build and run it:

$ sbt
> compile
> run
Hello, world!

Try it from the Frege REPL:

$ sbt
> fregeRepl

frege> import example.HelloWorld (main)

frege> main []
Hello, world!
()

Configuration

Frege compiler

  • fregeOptions: Seq[String] - Extra options for fregec
  • fregeSource: File - Frege source directory (default src/main/frege/)
  • fregeTarget: File - Frege target directory (default target/frege/)
  • fregeCompiler: String - Full name of the Frege compiler (default frege.compiler.Main)
  • fregeLibrary: ModuleID - Frege library (fregec.jar) to use (default Frege 3.23.288)

Frege REPL

  • fregeReplVersion: String - The version of frege-repl to use (default 1.3)
  • fregeReplMainClass: String - The Frege REPL main class (default frege.repl.FregeRepl)

Though sbt-frege uses 3.24.100.1 by default, Frege REPL 1.3 depends on Frege 3.23.288, so it takes priority when launching fregeRepl.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].