2015-10-26 2 views
5

Я пытался найти какую-то dotfile поставить настройки Scala Repl и пользовательскую функцию.Есть ли файл конфигурации для Scala REPL/SBT Console?

В частности, я заинтересован в передаче его флагов как -Dscala.color (включает подсветку синтаксиса), а также переопределение параметры, как результат строка усечение:

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

было бы неплохо иметь эти настройки применяются как простые сеансы Scala REPL, а также SBT консольных сессий.

Существует ли такое центральное место конфигурации для Scala?

ответ

2

Как указано here~/.sbt/0.13/global.sbt является глобальным конфигурационным файлом для sbt. Вы можете изменить глобальные настройки здесь, это, вероятно, не будет эффект REPL, но должен сделать работу с SBT консоли

+2

Я сделал '.sbt/0.13/plugins/color.sbt' и поместил это в него:' initialize ~ = (_ => if (ConsoleLogger.formatEnabled) sys.props ("scala.color") = "true ")' –

4

решение бедного человека: Установить себе alias

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

Вы в основном спрашивали о настройках свойств, это идет немного сверх того, чтобы рассмотреть выгрузку определения файла, как хорошо и не очень поможет для Windows, но я т hought я поделюсь в случае, если это полезно:

Я прибег к использованию сценария оболочки, сохраненный как ~/bin/scala, чтобы установить свойство конфигурации и загрузить некоторые вспомогательные функции:

#!/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 

Если вы иногда используете аммонит REPL , как говорит другой ответ, определение полезности может быть разделено load ИНГИ их от ~/.ammonite/predef.scala:

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

Я не уверен, что таким образом, чтобы загрузить файл инициализации для sbt console автоматически, ты Комментарий gh- Seth Tisue о настройке initialize полезен для свойств, но использование команды :load в значении для initialCommands in console не работает.