2012-03-01 9 views
15

मैं स्कैला आरईपीएल में स्ट्रिंग मानों का कटाव अक्षम करना चाहता हूं।सेटिंग्स। मैक्सप्रिंटस्ट्रिंग स्कैला 2.9 REPL

निम्नलिखित धागा settings.maxPrintString = 0 टाइपिंग सुझाव:

How to force interpreter show complete stack trace?

दुर्भाग्य से, इस स्काला 2.9 के साथ काम नहीं लगता है:

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> settings.maxPrintString = 0 
<console>:10: error: not found: value settings 
val $ires0 = settings.maxPrintString 
      ^
<console>:7: error: not found: value settings 
     settings.maxPrintString = 0 
    ^

वहाँ कुछ मैं आयात करने की आवश्यकता है?

मैं :power की कोशिश की है, जो settings उपलब्ध बनाता है, लेकिन यह समर्थन करने के लिए maxPrintString प्रतीत नहीं होता:

scala> :power 
** Power User mode enabled - BEEP BOOP SPIZ ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._ and definitions._ also imported ** 
** Try :help, vals.<tab>, power.<tab> ** 

scala> settings 
res0: scala.tools.nsc.Settings = 
Settings { 
    -d = . 
    -Yrich-exceptions = true 
    -classpath = bin:lib/* 
    -encoding = UTF-8 
} 


scala> settings.maxPrintString = 0 
<console>:31: error: value maxPrintString is not a member of scala.tools.nsc.Settings 
val $ires9 = settings.maxPrintString 
        ^
<console>:28: error: value maxPrintString is not a member of scala.tools.nsc.Settings 
     settings.maxPrintString = 0 

मुझे लगता है कि scala.tools.nsc.InterpreterSettings.maxPrintString मौजूद है, लेकिन मुझे यकीन है कि कैसे InterpreterSettings का एक उपयुक्त उदाहरण पाने के लिए नहीं कर रहा हूँ संशोधित करना।

उत्तर

24
~/code/scala scala29 
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> :power 
** Power User mode enabled - BEEP BOOP SPIZ ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._ and definitions._ also imported ** 
** Try :help, vals.<tab>, power.<tab> ** 

    scala> vals.isettings.maxPrintString 
maxPrintString  maxPrintString_= 

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

या

$ scala -uniqid -Xprint:typer -Yshow-syms -Dscala.repl.maxprintstring=64000 

जहां नमूना उत्पादन उच्च सीमा के बिना काट-छांट दिखाएगा।

+0

धन्यवाद संक्षिप्त नाम! मुझे कोशिश करनी चाहिए कि उसने कोशिश करने के लिए क्या कहा! मुझे लगता है कि सेटिंग 0 अब वास्तव में शून्य का मतलब है। क्या इन दिनों असीमित सेट करने का कोई तरीका है, या क्या आपको ऊपर एक बड़ी संख्या चुननी है, जैसा आपने ऊपर किया है (मैंने कोशिश की -1, लेकिन कोई भाग्य नहीं) – mrg

+1

कोई बात नहीं। Int.MaxValue ठीक रहेगा, और अच्छे Ctrl-R समर्थन के साथ, मुझे वास्तव में इसे अक्सर टाइप नहीं करना पड़ेगा। या मैं केवल -i, yrepl-sync वर्कअराउंड के साथ उपयोग कर सकता हूं, इसलिए यह लटका नहीं है। – mrg

+0

स्कैला 2.10.3 में भी काम करता है :) –

संबंधित मुद्दे