KAWAでデフォルトの出力形式をreadable-schemeにする方法
~/.kawarc.scmに以下を追加。
(if (eq? (static-field <kawa.Shell> 'defaultFormatName) #!null) (invoke-static <kawa.Shell> 'setDefaultFormat "readable-scheme"))
ちなみに、shellが起動した後ではこの技は使えないので次のようにする。
(define (set-display-format format) (let* ((ctx (invoke-static <gnu.mapping.CallContext> 'getInstance)) (out (as <gnu.mapping.OutPort> (field ctx 'consumer)))) (slot-set! out 'objectFormat format))) (let ((format (invoke-static <gnu.kawa.functions.DisplayFormat> 'getSchemeFormat #t))) (set-display-format format))
これはJavaで書くとこうなる。
import gnu.kawa.functions.DisplayFormat; import gnu.mapping.CallContext; import gnu.mapping.OutPort; DisplayFormat format = DisplayFormat.getSchemeFormat(true); CallContext ctx = CallContext.getInstance(); OutPort out = (OutPort) ctx.consumer; out.objectFormat = format;