2015-10-26 11 views
5

Tôi đã cố gắng tìm một số loại dấu chấm để đặt cài đặt Scala REPL và chức năng tùy chỉnh.Có tệp cấu hình nào cho Bảng điều khiển Scala REPL/SBT không?

Đặc biệt tôi quan tâm đến việc chuyển cờ đó như -Dscala.color (cho phép đánh dấu cú pháp), cũng như ghi đè các cài đặt như cắt xén chuỗi kết quả:

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

Thật tuyệt khi có các cài đặt này áp dụng cho cả phiên Scala REPL đơn giản cũng như các phiên điều khiển sbt.

Vị trí cấu hình trung tâm này có tồn tại cho Scala không?

Trả lời

2

Như đã đề cập here~/.sbt/0.13/global.sbt là tệp cấu hình chung cho sbt. Bạn có thể thay đổi cài đặt toàn cầu của mình tại đây, điều này có lẽ sẽ không ảnh hưởng đến REPL nhưng nên làm việc với SBT điều khiển

+2

Tôi đã tạo '.sbt/0.13/plugins/color.sbt' và đặt nó vào trong đó:' initialize ~ = (_ => if (ConsoleLogger.formatEnabled) sys.props ("scala.color") = "true ")' –

4

giải pháp nghèo của con người: Đặt cho mình một alias

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

Bạn chủ yếu hỏi về thiết lập bất động sản, điều này đi một chút vượt ra ngoài đó để xem xét tải một định nghĩa đệ như nổi và không phải là giúp ích nhiều cho Windows nhưng tôi t hought tôi muốn chia sẻ trong trường hợp nó rất hữu ích:

Tôi đã viện đến sử dụng một kịch bản wrapper lưu lại dưới dạng ~/bin/scala, để thiết lập các thuộc tính cấu hình và tải một số chức năng tiện ích:

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

Nếu bạn thỉnh thoảng sử dụng Ammonite REPL , như câu trả lời khác cho thấy, các định nghĩa tiện ích có thể được chia sẻ bởi load ing chúng từ ~/.ammonite/predef.scala:

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

tôi không chắc chắn về một cách để tải các tập tin init cho sbt console tự động, ngươi GH— Seth Tisue Nhận xét về cài đặt initialize hữu ích cho các thuộc tính, nhưng sử dụng lệnh :load có giá trị initialCommands in console không hoạt động.

Các vấn đề liên quan