2015-10-26 18 views
5

Ho cercato di trovare una sorta di Dotfile per mettere le impostazioni Scala REPL e la funzione personalizzata.Esiste un file di configurazione per Scala REPL/SBT Console?

In particolare sono interessato a passarlo bandiere come -Dscala.color (abilita l'evidenziazione della sintassi), così come l'override impostazioni come troncamento della stringa risultato:

scala> :power 
scala> vals.isettings.maxPrintString = 10000 

sarebbe bello avere queste impostazioni si applicano sia ai semplici sessioni Scala REPL così come sessioni di console sbt.

Esiste una tale posizione di configurazione centrale per Scala?

risposta

2

Come detto here~/.sbt/0.13/global.sbt è il file di configurazione globale per sbt. È possibile modificare le impostazioni globali qui, questo probabilmente non andare a effettuare REPL, ma deve fare il lavoro con SBT Console

+2

Ho creato '.sbt/0.13/plugins/color.sbt' e ho inserito questo:' initialize ~ = (_ => if (ConsoleLogger.formatEnabled) sys.props ("scala.color") = "true ")' –

4

soluzione Poor dell'uomo: Preparatevi un alias

alias myScala='scala -Dscala.repl.axPrintString = 10000' 
1

hai chiesto principalmente di impostazioni di proprietà, questo va un po 'oltre che di prendere in considerazione il caricamento di un file come le definizioni ben e non è di grande aiuto per Windows, ma io t hought che vorrei condividere nel caso in cui è utile:

ho fatto ricorso all'utilizzo di uno script wrapper salvato ~/bin/scala, per impostare le proprietà di configurazione e caricare alcune funzioni di utilità:

#!/bin/sh 

# The scala REPL doesn't have any config file, so this wrapper serves to set 
# some property values and load an init file of utilities when run without 
# arguments to enter REPL mode. 
# 
# If there are arguments, just assume we're running a .scala file in script 
# mode, a class or jar, etc., and execute normally. 

SCALA=${SCALA:-/usr/local/bin/scala} 

if [ "$#" -eq 0 ] && [ -r ~/.config/scala/replinit.scala ]; then 
    exec "$SCALA" -i ~/.config/scala/replinit.scala -Dscala.color 
else 
    exec "$SCALA" "[email protected]" 
fi 

Se a volte si utilizza Ammonite REPL , come suggerisce un'altra risposta, le definizioni di utilità possono essere condivisi da load loro ing da ~/.ammonite/predef.scala:

try load.exec(ammonite.ops.home/".config"/'scala/"replinit.scala") 
catch { case _: Exception => println("=== replrc not loaded! ===") } 

io non sono sicuro di un modo per caricare il file di inizializzazione per sbt console automaticamente, tu Il commento di gh- Seth Tisue sull'impostazione initialize è utile per le proprietà, ma l'utilizzo di un comando :load in un valore per initialCommands in console non sembra funzionare.

Problemi correlati