blob: a5e1c1e729b26ddc5dbd38aa6db58fd55329aae6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
/* NSC -- new Scala compiler
* Copyright 2005-2010 LAMP/EPFL
* @author Alexander Spoon
*/
// $Id$
package scala.tools.nsc
/** Settings for the interpreter
*
* @version 1.0
* @author Lex Spoon, 2007/3/24
**/
class InterpreterSettings(repl: Interpreter) {
/** A list of paths where :load should look */
var loadPath = List(".")
/** The maximum length of toString to use when printing the result
* of an evaluation. 0 means no maximum. If a printout requires
* more than this number of characters, then the printout is
* truncated.
*/
var maxPrintString = 800
/** The maximum number of completion candidates to print for tab
* completion without requiring confirmation.
*/
var maxAutoprintCompletion = 250
/** String unwrapping can be disabled if it is causing issues.
* Settings this to false means you will see Strings like "$iw.$iw.".
*/
var unwrapStrings = true
def deprecation_=(x: Boolean) = {
val old = repl.settings.deprecation.value
repl.settings.deprecation.value = x
if (!old && x) println("Enabled -deprecation output.")
else if (old && !x) println("Disabled -deprecation output.")
}
def deprecation: Boolean = repl.settings.deprecation.value
def allSettings = Map(
"maxPrintString" -> maxPrintString,
"maxAutoprintCompletion" -> maxAutoprintCompletion,
"unwrapStrings" -> unwrapStrings,
"deprecation" -> deprecation
)
private def allSettingsString =
allSettings.toList sortBy (_._1) map { case (k, v) => " " + k + " = " + v + "\n" } mkString
override def toString = """
| InterpreterSettings {
| %s
| }""".stripMargin.format(allSettingsString)
}
/* Utilities for the InterpreterSettings class
*
* @version 1.0
* @author Lex Spoon, 2007/5/24
*/
object InterpreterSettings {
/** Source code for the InterpreterSettings class. This is
* used so that the interpreter is sure to have the code
* available.
*
* XXX I'm not seeing why this degree of defensiveness is necessary.
* If files are missing the repl's not going to work, it's not as if
* we have string source backups for anything else.
*/
val sourceCodeForClass =
"""
package scala.tools.nsc
/** Settings for the interpreter
*
* @version 1.0
* @author Lex Spoon, 2007/3/24
**/
class InterpreterSettings(repl: Interpreter) {
/** A list of paths where :load should look */
var loadPath = List(".")
/** The maximum length of toString to use when printing the result
* of an evaluation. 0 means no maximum. If a printout requires
* more than this number of characters, then the printout is
* truncated.
*/
var maxPrintString = 2400
def deprecation_=(x: Boolean) = {
val old = repl.settings.deprecation.value
repl.settings.deprecation.value = x
if (!old && x) println("Enabled -deprecation output.")
else if (old && !x) println("Disabled -deprecation output.")
}
def deprecation: Boolean = repl.settings.deprecation.value
override def toString =
"InterpreterSettings {\n" +
// " loadPath = " + loadPath + "\n" +
" maxPrintString = " + maxPrintString + "\n" +
"}"
}
"""
}
|