Skip to content

Something to Try First (After Connecting)#

You should start with loading the file you are working with. Do this with Load/Evaluate Current File and its Requires/Dependencies, ctrl+alt+c enter.

To get a feeling for evaluating code in the editor and get immediate response from the REPL try this:

  • On a new line, type a comment form and put some code inside it:
(comment
  (+ (* 2 2)
      2)
  (Math/abs -1)
  (hello "Calva REPL")
  (defn hello [s]
    (str "Hello " s))
  (range 10)
  "I ♥️ Clojure")

Then:

  1. Place the cursor behind the form (* 2 2) and issue the command Calva: Evaluate Current Form, ctrl+enter.
    • You should see the result being displayed inline. Press esc to dismiss it.
  2. Now issue the command Evaluate Current Top Level Form (defun), alt+enter.
    • You should see the whole form (+ (* 2 2) 2) getting highlighted and the result of that expression being displayed inline.
  3. Evaluate each form inside the comment form using the Top Level command.
    • You should see each one of them evaluated.
    • Evaluating the (hello "Calva REPL") form before the (defn hello... form should result in an error/exception. A stacktrace is then printed in the output window
    • Try it again after having evaluated the defnform.

Demo:

Comment top level form evaluation!

How does this work?#

Calva has this notion about the current form. Issue the Evaluate Current Form command, with the cursor placed in different locations to get a feeling for how the current form is determined.

There is also a concept about the current top level form. Good for evaluating various defs defn, defthis, defthat. With your cursor placed anywhere inside such a form.

The Top Level command also works inside (comment ...) forms, treating the comment as creating a new top level context. It is good for in-file code experimentation.

See also#