2012-07-19 6 views
6

Ich benutze die Scala-Konsole häufig, um Code auszuwerten und zu testen, bevor ich ihn in meinem Projekt schreibe. Wenn ich den Inhalt einer Variablen wissen möchte, kann ich sie einfach eingeben und scala wertet sie aus. Aber gibt es auch eine Möglichkeit, den Methodencode zu zeigen, den ich eingegeben habe?Gibt es eine schnelle Möglichkeit, den Code einer in der Scala-Konsole deklarierten Methode anzuzeigen?

Ich weiß, es gibt die UP-Taste, um einzelne Zeilen anzuzeigen, aber was ich suchte, ist, den gesamten Code auf einmal zu zeigen.

Antwort

7

In Ihrem Home-Verzeichnis befindet sich eine Datei mit dem Namen .scala_history, die den gesamten aktuellen REPL-Verlauf enthält. Ich kopiere regelmäßig Code aus dieser Datei in Projektquelldateien. Es ist nicht genau dasselbe wie den Code für einzelne Methoden in der REPL, aber es könnte Ihnen helfen, die gleichen Ziele zu erreichen.

Siehe die Kommentare von Paul Phillips in this issue für eine Diskussion über einige relevante Funktionalität in der REPL (Aussagen in der Geschichte Gruppierung):

Irgendwann habe ich für diese die Logik implementiert, aber das eigentliche Hindernis ist jline. Es hat genug Mühe herauszufinden, wo der Cursor unter die einfachsten Bedingungen ist. Fangen Sie an, große mehrzeilige Blöcke in die Geschichte zu werfen und es bricht in Tränen aus. Würde mich freuen, dies zu sehen und SI-2547 von der Gemeinschaft angesprochen.

...

Ich erwarte, dass dies bald auch zu beheben, aber es hängt davon ab, wie gut die jüngste jline Arbeit geht. Ich habe es vor langer Zeit implementiert, und Anzeigeprobleme sind die Behinderung.

Beide Kommentare sind über zwei Jahre alt, also würde ich nicht den Atem anhalten.

1

Ich kenne keinen Befehl, um den gesamten Code von der Befehlszeile zu laden. Was Sie tun können, ist :load path/to/my/file.scala laden Sie einige komplexe Code und :load es, wenn Sie den Code in der Datei geändert.