I would like to learn some Clojure, and I'm trying to run REPL from Emacs, but I cannot get it to work.
I have created a basic project with lein. I open the generated file core.clj in Emacs, and when I try to run the REPL from it (by running the cider-jack-in), I just get the message:
Symbol's function definition is void: nil
I have toggled the debug-on-error, and the backtrace (several last lines) is:
Debugger entered--Lisp error: (void-function nil)
nil(#<buffer core.clj>)
#[257 " !\203\207\300\207" [exclude predicate] 3 "\n\n(fn ELT)"](#<buffer core.clj>)
seq-map(#[257 " !\203\207\300\207" [exclude predicate] 3 "\n\n(fn ELT)"] (#<buffer core.clj> #<buffer *Minibuf-1*> #<buffer *Warnings*> #<buffer *GNU Emacs*> #<buffer *scratch*> #<buffer *Minibuf-0*> #<buffer *Messages*> #<buffer *code-conversion-work*> #<buffer *Echo Area 0*> #<buffer *Echo Area 1*>))
seq-filter(#[257 "r\211q\210\300\301!)\207" [derived-mode-p cider-repl-mode] 3 "\n\n(fn BUFFER)"] (#<buffer core.clj> #<buffer *Minibuf-1*> #<buffer *Warnings*> #<buffer *GNU Emacs*> #<buffer *scratch*> #<buffer *Minibuf-0*> #<buffer *Messages*> #<buffer *code-conversion-work*> #<buffer *Echo Area 0*> #<buffer *Echo Area 1*>))
cider-repl-buffers()
cider-find-reusable-repl-buffer(nil "~/Development/languages/clojure/playground/test1/")
cider-jack-in(nil)
When I run lein run in the terminal, the code runs properly.
Also, when I run lein repl in the terminal, the REPL runs properly with the following info:
nREPL server started on port 62741 on host 127.0.0.1 - nrepl://127.0.0.1:62741
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_45-b14
Lein has Cider version 0.14.0, while Emacs has downloaded version 0.15.0.
Could anyone help me figure out which part of the setup I'm missing, or what I'm doing wrong?
Thanks for the help!
EDIT: Bellow is the contents of Emacs init file, with comments removed:
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives
'("tromey" . "http://tromey.com/elpa/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
(when (not package-archive-contents)
(package-refresh-contents))
(defvar ido-cur-item nil)
(defvar ido-default-item nil)
(defvar ido-cur-list nil)
(defvar predicate nil)
(defvar inherit-input-method nil)
(defvar my-packages
'(paredit
clojure-mode
clojure-mode-extra-font-locking
cider
ido-ubiquitous
smex
projectile
rainbow-delimiters
tagedit
magit))
(if (eq system-type 'darwin)
(add-to-list 'my-packages 'exec-path-from-shell))
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
(add-to-list 'load-path "~/.emacs.d/vendor")
(add-to-list 'load-path "~/.emacs.d/customizations")
(load "shell-integration.el")
(load "navigation.el")
(load "ui.el")
(load "editing.el")
(load "misc.el")
(load "elisp-editing.el")
(load "setup-clojure.el")
(load "setup-js.el")
cider-jack-in
? Which version of Emacs are you on? – Stefan Kamphausencore.clj
) and then calledcider-jack-in
. I'm using Emacs version 24.5. – StanislavC-x C-e
orC-M-x
? If those bindings give return an inline value, then the repl is running – jr0cket