views:

106

answers:

2

I've written a little library that uses implicits to add functionality that one only needs when using the REPL in Scala. Ruby has libraries like this - for things like pretty printing, firing up text editors (like the interactive_editor gem which invokes Vim from irb - see this post), debuggers and the like. The library I am trying to write adds some methods to java.lang.Class and java.lang.reflect classes using the 'pimp my library' implicit conversion process to help you go and find documentation (initially, with Google, then later possibly with a JavaDoc/ScalaDoc viewer, and maybe the StackOverflow API eventually!). It's an itch-scratching library: I spend so much time copying and pasting classnames into Google that I figured I may as well automate the process.

It is the sort of functionality that developers will want to add to their system for use only in the REPL - they shouldn't really be adding it to projects (partly because it may not be something that their fellow developers want, but also because if you are doing some exploratory development, it may be with just a Scala REPL that's not being invoked by an IDE or build tool).

In my case, I want to include a few classes and set up some implicits - include a .jar on the CLASSPATH and import it, basically.

In Ruby, this is the sort of thing that you'd add to your .irbrc file. Other REPLs have similar ways of setting options and importing libraries.

Is there a similar file or way of doing this for the Scala REPL?

+1  A: 

Quick answer probably not what you are looking for, but what about typing

:load path/to/some/scala/script/file.scala

in the console?

:load will read in a scala file and execute it as a script.

Another option is to use sbt set up your dependencies and execute the console command.

The final option I can think of is to set the classpath on the command line manually and point it to the jars / class file folders that you want the jvm to know about.

Let me know if any of this interests you and I can provide more details if needed.

King Cub
+2  A: 

On the command line, you can use the -i option to load a file while starting the REPL:

scala -cp mystuff.jar -i mydefs.scala

Ofcourse you could wrap this in a shell script or batch file and run that instead of the normal scala command.

(I'm using Scala 2.8.0 RC3).

Jesper