I am having some trouble installing ritz nrepl

51 views
Skip to first unread message

Stephen Cagle

unread,
Sep 30, 2013, 8:53:03 PM9/30/13
to nrep...@googlegroups.com
Basically, I get a error when I try to follow the directions at http://ianeslick.com/2013/05/17/clojure-debugging-13-emacs-nrepl-and-ritz/ . In my init.el, I get a error when evaluating: 
(require 'nrepl-ritz) ;;after (require 'nrepl)

the error is:
Debugger entered--Lisp error: (void-variable nrepl-mode-map)
  byte-code("\302 \303\304#\210\302 \305\304#\207" [nrepl-interaction-mode-map nrepl-mode-map define-key [3 134217844] nrepl-ritz-threads [3 134217844]] 4)
  require(nrepl-ritz)
  eval((require (quote nrepl-ritz)) nil)
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)

clearly, it has no idea what nrepl-mode-map is.  Why this is I do not know.

The rest of this message is just all the things I could think of that you might ask, and the contents of my init.el and profiles.clj file. If you know what problem I am having already, there is  no reason to read it. I am just trying to preemptively guess what you will ask.

This is the warning when I start up emacs:

Warning (initialization): An error occurred while loading `/home/stephen/.emacs.d/init.el':

Symbol's value as variable is void: nrepl-mode-map

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

My emacs version is:
M-x emacs-version => GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.6.4) of 2013-08-22 on menkib, modified by Debian

I have the following in my ~/.lein/profile.clj
{:user {:plugins [;; [lein-marginalia "0.7.1"]
                  ;; [lein-try "0.3.1"]
                  ;; [lein-pprint "1.1.1"]
                  ;; [lein-ancient "0.4.4"]
                  ;; [lein-bikeshed "0.1.3"]
                  ;; [lein-cljsbuild "0.3.3"]
                  ;; [lein-ring "0.8.7"]
                  ;; [com.keminglabs/cljx "0.3.0"]
                  [lein-ritz "0.7.0"]]
        :dependencies [[nrepl-inspect "0.3.0"]
                       [ritz/ritz-nrepl-middleware "0.7.0"]]
        :repl-options {:nrepl-middleware
                       [inspector.middleware/wrap-inspect
                        ritz.nrepl.middleware.javadoc/wrap-javadoc
                        ritz.nrepl.middleware.simple-complete/wrap-simple-complete]}}}

and the folowing ~/.emacs.d/init.el file:

;;;-----------------------------------------------------------------

(setq inhibit-startup-message t) ;; No splash screen
;; (setq initial-scratch-message nil) ;; No scratch message
;; (tool-bar-mode nil) ;; No toolbars
;; Create backup files in .emacs-backup instead of everywhere
(defvar user-temporary-file-directory "~/.emacs-backup")
(make-directory user-temporary-file-directory t)
(setq backup-by-copying t)
(setq backup-directory-alist
      `(("." . ,user-temporary-file-directory)
(,tramp-file-name-regexp nil)))
(setq auto-save-list-file-prefix
      (concat user-temporary-file-directory ".auto-saves-"))
(setq auto-save-file-name-transforms
      `((".*" ,user-temporary-file-directory t)))

(set-face-attribute 'default nil :height 110)
(require 'paren)
(set-face-background 'show-paren-match-face (face-background 'default))
(set-face-foreground 'show-paren-match-face "#0f0")
(set-face-attribute 'show-paren-match-face nil :weight 'extra-bold)
(show-paren-mode 1)

;;;-----------------------------------------------------------------

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/")
    '("melpa" . "http://melpa.milkbox.net/packages/"))
(package-initialize)

(defvar my-packages '(;starter-kit
                      ;starter-kit-lisp
                      ;starter-kit-bindings
                      ;starter-kit-eshell
     ac-nrepl
                      clojure-mode
     clojure-test-mode

                      nrepl
     nrepl-ritz
     rainbow-delimiters
     paredit
     ))

(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))

(require 'nrepl)

;; Configure nrepl.el
(setq nrepl-hide-special-buffers t)
(setq nrepl-popup-stacktraces-in-repl t)
(setq nrepl-history-file "~/.emacs.d/nrepl-history")
 
;; Some default eldoc facilities
(add-hook 'nrepl-connected-hook
 (defun pnh-clojure-mode-eldoc-hook ()
   (add-hook 'clojure-mode-hook 'turn-on-eldoc-mode)
   (add-hook 'nrepl-interaction-mode-hook 'nrepl-turn-on-eldoc-mode)
   (nrepl-enable-on-existing-clojure-buffers)))
 
;; Repl mode hook
(add-hook 'nrepl-mode-hook 'subword-mode)
 
;; Auto completion for NREPL
(require 'ac-nrepl)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes 'nrepl-mode))
(add-hook 'nrepl-mode-hook 'ac-nrepl-setup)


; nrepl inspect
(load-file "~/nrepl-inspect/nrepl-inspect.el")
(define-key nrepl-mode-map (kbd "C-c C-i") 'nrepl-inspect)

; nrepl-ritz
(require 'nrepl-ritz) ;; after (require 'nrepl)
 
;; Ritz middleware
(define-key nrepl-interaction-mode-map (kbd "C-c C-j") 'nrepl-javadoc)
(define-key nrepl-mode-map (kbd "C-c C-j") 'nrepl-javadoc)
(define-key nrepl-interaction-mode-map (kbd "C-c C-a") 'nrepl-apropos)
(define-key nrepl-mode-map (kbd "C-c C-a") 'nrepl-apropos)

; paredit
(require 'paredit)
(add-hook 'clojure-mode-hook 
 (lambda () 
   (paredit-mode)
   (rainbow-delimiters-mode)
   (highlight-parentheses-mode t)))

If I run "lein ritz-nrepl" in my project, I get no particular errors, it says:
nREPL server started on port 50129

After doing the above, if I go to emacs and try to nrepl to 127.0.0.1:50129, it just hangs and the ritz-nrepl terminal prints:
[WARNING] No nREPL middleware descriptor in metadata of clojure.core$comp$fn__4154@7e090a0a, see clojure.tools.middleware/set-descriptor![WARNING] No nREPL middleware descriptor in metadata of clojure.core$comp$fn__4154@47b8c9d1, see clojure.tools.middleware/set-descriptor![WARNING] No nREPL middleware descriptor in metadata of clojure.core$comp$fn__4154@34c9dd20, see clojure.tools.middleware/set-descriptor![WARNING] No nREPL middleware descriptor in metadata of clojure.core$comp$fn__4154@30d47af3, see clojure.tools.middleware/set-descriptor![WARNING] No nREPL middleware descriptor in metadata of clojure.core$comp$fn__4154@4dd40090, see clojure.tools.middleware/set-descriptor!ERROR: Unhandled REPL handler exception processing message {:id 2, :op clone}
java.lang.NullPointerException
at clojure.core$deref_future.invoke(core.clj:2108)
at clojure.core$deref.invoke(core.clj:2129)
at cljx.repl_middleware$wrap_cljx$fn__9054.invoke(repl_middleware.clj:11)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at ritz.nrepl.middleware.simple_complete$wrap_simple_complete$fn__1621.invoke(simple_complete.clj:27)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.server$handle_STAR_.invoke(server.clj:18)
at ritz.nrepl.exec$exec.invoke(exec.clj:36)
at clojure.core$eval9089$fn__9090.invoke(NO_SOURCE_FILE:0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at classlojure.core$eval_in_STAR_.doInvoke(core.clj:86)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at classlojure.core$eval_in.doInvoke(core.clj:100)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at ritz.repl_utils.classloader$eval_clojure_in.doInvoke(classloader.clj:115)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at ritz.repl_utils.classloader$eval_clojure.doInvoke(classloader.clj:121)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at ritz.nrepl.exec$exec_using_classloader.invoke(exec.clj:61)
at clojure.core$eval2238.invoke(NO_SOURCE_FILE)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6582)
at clojure.lang.Util.sneakyThrow0(Util.java:242)
at clojure.lang.Util.sneakyThrow(Util.java:236)
at clojure.lang.AFn.run(AFn.java:28)
at java.lang.Thread.run(Thread.java:724)
ERROR: Unhandled REPL handler exception processing message {:id 1, :op clone}
java.lang.NullPointerException
at clojure.core$deref_future.invoke(core.clj:2108)
at clojure.core$deref.invoke(core.clj:2129)
at cljx.repl_middleware$wrap_cljx$fn__9054.invoke(repl_middleware.clj:11)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at ritz.nrepl.middleware.simple_complete$wrap_simple_complete$fn__1621.invoke(simple_complete.clj:27)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.server$handle_STAR_.invoke(server.clj:18)
at ritz.nrepl.exec$exec.invoke(exec.clj:36)
at clojure.core$eval9095$fn__9096.invoke(NO_SOURCE_FILE:0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at classlojure.core$eval_in_STAR_.doInvoke(core.clj:86)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at classlojure.core$eval_in.doInvoke(core.clj:100)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at ritz.repl_utils.classloader$eval_clojure_in.doInvoke(classloader.clj:115)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:621)
at ritz.repl_utils.classloader$eval_clojure.doInvoke(classloader.clj:121)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at ritz.nrepl.exec$exec_using_classloader.invoke(exec.clj:61)
at clojure.core$eval2240.invoke(NO_SOURCE_FILE)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6582)
at clojure.lang.Util.sneakyThrow0(Util.java:242)
at clojure.lang.Util.sneakyThrow(Util.java:236)
at clojure.lang.AFn.run(AFn.java:28)
at java.lang.Thread.run(Thread.java:724)
ERROR: Unhandled REPL handler exception processing message {:op describe, :id 3, :descriptors #<PersistentArrayMap {"jpda" {:requires {"code" "A boolean true or false"}, :returns {"status" "done"}, :doc "Evaluate code in the debugger's own VM."}, "disassemble-frame" {:requires {"frame-number" "The stack frame to disassemble.", "thread-id" "The thread executing the code to disassemble."}, :returns {"status" "done"}, :doc "Disassemble the code associated with the specified frame."}, "frame-locals" {:requires {"frame-number" "The stack frame to return locals for.", "thread-id" "The thread executing the code to disassemble."}, :returns {"status" "done"}, :doc "List the local variables visible in the specified frame.  Each local is presented in a list with name and value components."}, "frame-source" {:requires {"frame-number" "The stack frame to return locals for.", "thread-id" "The thread executing the code to disassemble."}, :returns {"status" "done"}, :doc "Locate the source code for the specified frame. The location is passed back in a name value list specifying file, zip, and line number."}, "frame-eval" {:requires {"frame-number" "The stack frame to return locals for.", "code" "The expression to evaluate", "thread-id" "The thread executing the code to disassemble."}, :returns {"status" "done"}, :optional {"pprint" "Flag to specify pretty-printing of the result"}, :doc "Evaluate code with in the locals environment of the specified frame."}, "invoke-restart" {:requires {"restart-number" "The (ordinal) number of the restart to invoke", "restart-name" "The name of the restart to invoke.", "thread-id" "The thread executing the code to disassemble."}, :returns {"status" "done"}, :doc "Invoke the specified restart number or name for the specified thread."}, "break-on-exception" {:requires {"flag" "A boolean true or false"}, :returns {"status" "done"}, :doc "Flag to control whether exceptions break into the debugger."}, "source-forms" {:doc "Query or reset source forms.", :optional {"source-id" "A message ID identifying the source form to return", "reset" "A flag to reset the source forms"}, :returns {}}}>}
java.lang.NullPointerException
at clojure.core$deref_future.invoke(core.clj:2108)
at clojure.core$deref.invoke(core.clj:2129)
at cljx.repl_middleware$wrap_cljx$fn__9054.invoke(repl_middleware.clj:11)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at ritz.nrepl.middleware.simple_complete$wrap_simple_complete$fn__1621.invoke(simple_complete.clj:27)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__410.invoke(middleware.clj:17)
at clojure.tools.nrepl.server$handle_STAR_.invoke(server.clj:18)
at ritz.nrepl.exec$exec.invoke(exec.clj:36)
at clojure.core$eval9101$fn__9102.invoke(NO_SOURCE_FILE:0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at classlojure.core$eval_in_STAR_.doInvoke(core.clj:86)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core

Reply all
Reply to author
Forward
0 new messages