@@ -35,6 +35,9 @@ private[repl] class Rendering(parentClassLoader: Option[ClassLoader] = None):
3535 /** (value, maxElements) => String */
3636 private var myReplStringOf : (Object , Int ) => String = _
3737
38+ /** info to add if output got truncated */
39+ private val infoOutputGotTruncated = " ... large output truncated, print value to show all"
40+
3841 /** Class loader used to load compiled code */
3942 private [repl] def classLoader ()(using Context ) =
4043 if (myClassLoader != null && myClassLoader.root == ctx.settings.outputDir.value) myClassLoader
@@ -52,7 +55,6 @@ private[repl] class Rendering(parentClassLoader: Option[ClassLoader] = None):
5255 }
5356
5457 myClassLoader = new AbstractFileClassLoader (ctx.settings.outputDir.value, parent)
55- val maxPrintElements = ctx.settings.VreplMaxPrintElements .valueIn(ctx.settingsState)
5658 myReplStringOf = {
5759 // We need to use the ScalaRunTime class coming from the scala-library
5860 // on the user classpath, and not the one available in the current
@@ -61,17 +63,19 @@ private[repl] class Rendering(parentClassLoader: Option[ClassLoader] = None):
6163 // For old API, try to clean up extraneous newlines by stripping suffix and maybe prefix newline.
6264 val scalaRuntime = Class .forName(" scala.runtime.ScalaRunTime" , true , myClassLoader)
6365 val renderer = " stringOf" // was: replStringOf
64- try {
65- val meth = scalaRuntime.getMethod(renderer, classOf [ Object ], classOf [ Int ], classOf [ Boolean ])
66- val truly = java.lang. Boolean . TRUE
67-
68- ( value : Object , maxElements : Int ) => meth.invoke(null , value, maxElements, truly).asInstanceOf [String ]
69- } catch {
70- case _ : NoSuchMethodException =>
71- val meth = scalaRuntime.getMethod(renderer, classOf [Object ], classOf [Int ])
72-
73- ( value : Object , maxElements : Int ) => meth.invoke( null , value, maxElements). asInstanceOf [ String ]
66+ def stringOfMaybeTruncated ( value : Object , maxElements : Int ) : String = {
67+ try {
68+ val meth = scalaRuntime.getMethod(renderer, classOf [ Object ], classOf [ Int ], classOf [ Boolean ])
69+ val truly = java.lang. Boolean . TRUE
70+ meth.invoke(null , value, maxElements, truly).asInstanceOf [String ]
71+ } catch {
72+ case _ : NoSuchMethodException =>
73+ val meth = scalaRuntime.getMethod(renderer, classOf [Object ], classOf [Int ])
74+ meth.invoke( null , value, maxElements). asInstanceOf [ String ]
75+ }
7476 }
77+
78+ stringOfMaybeTruncated
7579 }
7680 myClassLoader
7781 }
@@ -83,10 +87,9 @@ private[repl] class Rendering(parentClassLoader: Option[ClassLoader] = None):
8387 * https://github.com/scala/bug/issues/12337
8488 */
8589 private [repl] def truncate (str : String ): String =
86- val showTruncated = " ... large output truncated, print value to show all"
8790 val ncp = str.codePointCount(0 , str.length) // to not cut inside code point
8891 if ncp <= MaxStringElements then str
89- else str.substring(0 , str.offsetByCodePoints(0 , MaxStringElements - 1 )) + showTruncated
92+ else str.substring(0 , str.offsetByCodePoints(0 , MaxStringElements - 1 )) + infoOutputGotTruncated
9093
9194 /** Return a String representation of a value we got from `classLoader()`. */
9295 private [repl] def replStringOf (value : Object )(using Context ): String =
0 commit comments