I am new to Clojure and I am using one of Eirc Normad's course to learn.
After following the instructions, I do a git clone of:
git clone https://github.com/lispcast/introduction-to-clojure.git
Until this point, Eric does not emphasize Emacs' use. But, I would like to use Emacs, since I am used to it.
In Emacs, after opening the file project.clj
, I executed cider-jack-in
. A message is echoed by the mini-buffer about the nREPL indicating that the server has been started:
The situation stays like this for a long time without anything changing.
I must say that I have successfully used CIDER and Emacs in other Clojure projects. Especially, if I start some Clojure project from scratch, e.g. after a $ lein new my-new-project
.
In addition, although CIDER does not work after the git clone suggested by Eric's material, things do work as expected after openning eshell
and executing $ lein repl
, see below:
Welcome to the Emacs shell
~/projects/introduction-to-clojure master $ lein repl
Welcome to the bakery!
Available commands are:
grab Pick something up.
squeeze Squeeze whatever you are holding.
release Release whatever you are holding.
scoop If you are holding the cup, fill it with an ingredient.
add-to-bowl Add the ingredient you are holding to the mixing bowl.
mix Mix the ingredients in the bowl.
pour-into-pan Pour the contents of the bowl into the pan.
bake-pan Put the pan in the oven for a certain number of minutes.
cool-pan After baking, put the pan on the cooling racks to cool.
Returns the id of the cooling rack.
status Print out the status of the bakery.
start-over If you get lost, this command will reset the bakery.
go-to Go to the given location.
Possible locations are :prep-area, :fridge, and :pantry.
load-up Load an ingredient from storage to take to the prep area.
unload Unload an ingredient in the prep area.
get-morning-orders Get a new list of baking orders.
delivery Notify the delivery bot that something is ready to deliver.
bakery-help Print out this message.
[Rebel readline] Type :repl/help for online help info
introduction-to-clojure.core=>
I am clueless about why it does not work in this particular case.
The buffer Messages indicates:
[nREPL] Starting server via /run/current-system/sw/bin/lein update-in :dependencies conj \[nrepl/nrepl\ \"0.9.0\"\] -- update-in :plugins conj \[cider/cider-nrepl\ \"0.28.5\"\] -- repl :headless :host localhost
Quit [2 times]
Moreover, things get even weirder when inspecting the `nrepl server. Things seem to have worked! The REPL seems to be working. There is even a starting message from the project being printed:
Welcome to the bakery!
Available commands are:
grab Pick something up.
squeeze Squeeze whatever you are holding.
release Release whatever you are holding.
scoop If you are holding the cup, fill it with an ingredient.
add-to-bowl Add the ingredient you are holding to the mixing bowl.
mix Mix the ingredients in the bowl.
pour-into-pan Pour the contents of the bowl into the pan.
bake-pan Put the pan in the oven for a certain number of minutes.
cool-pan After baking, put the pan on the cooling racks to cool.
Returns the id of the cooling rack.
status Print out the status of the bakery.
start-over If you get lost, this command will reset the bakery.
go-to Go to the given location.
Possible locations are :prep-area, :fridge, and :pantry.
load-up Load an ingredient from storage to take to the prep area.
unload Unload an ingredient in the prep area.
get-morning-orders Get a new list of baking orders.
delivery Notify the delivery bot that something is ready to deliver.
bakery-help Print out this message.
[Rebel readline] Type :repl/help for online help info
introduction-to-clojure.core=>
The REPL is also adjusted to the namespace. However, it does not eval the expressions that I insert:
introduction-to-clojure.core=> (+ 1 2)
;; does not return any output
In case this is relevant, I am using NixOS as OS. This is my NixOS' config file. In addition, this is my Emacs config file.