Closed codahale closed 8 years ago
Maybe you can delete the .elc file so that we can get a backtrace that is readable?
Done. I updated the backtrace in the main description.
Toggling debug mode on got me this:
(fn MODES OPEN CLOSE &key TRIGGER (ACTIONS \\='(:add)) (WHEN \\='(:add)) (UNLESS \\='(:add)) (PRE-HANDLERS \\='(:add)) (POST-HANDLERS \\='(:add)) WRAP BIND INSERT PREFIX SUFFIX SKIP-MATCH)" (let* ((trigger (car (cdr (plist-member --cl-rest-- (quote :trigger))))) (actions (car (cdr (or (plist-member --cl-rest-- (quote :actions)) (quote (nil (:add))))))) (when (car (cdr (or (plist-member --cl-rest-- (quote :when)) (quote (nil (:add))))))) (unless (car (cdr (or (plist-member --cl-rest-- (quote :unless)) (quote (nil (:add))))))) (pre-handlers (car (cdr (or (plist-member --cl-rest-- (quote :pre-handlers)) (quote (nil (:add))))))) (post-handlers (car (cdr (or (plist-member --cl-rest-- (quote :post-handlers)) (quote (nil (:add))))))) (wrap (car (cdr (plist-member --cl-rest-- (quote :wrap))))) (bind (car (cdr (plist-member --cl-rest-- (quote :bind))))) (insert (car (cdr (plist-member --cl-rest-- (quote :insert))))) (prefix (car (cdr (plist-member --cl-rest-- (quote :prefix))))) (suffix (car (cdr (plist-member --cl-rest-- (quote :suffix))))) (skip-match (car (cdr (plist-member --cl-rest-- (quote :skip-match)))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) (quote (:trigger :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert :prefix :suffix :skip-match :allow-other-keys))) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq (quote :allow-other-keys) --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:trigger :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert :prefix :suffix :skip-match)" (car --cl-keys--)))))) (progn (if (eq actions :rem) (let ((remove "")) (let ((--dolist-tail-- (-flatten (list modes))) m) (while --dolist-tail-- (setq m (car --dolist-tail--)) (setq remove (concat remove (sp-get-pair-definition open m :open) (sp-get-pair-definition open m :close))) (let ((mode-pairs (assq m sp-pairs))) (setcdr mode-pairs (let (result) (let ((list (cdr mode-pairs)) (it-index 0)) (while list (let ((it (car list))) (if (not (equal (plist-get it :open) open)) (progn (setq result (cons it result))))) (setq it-index (1+ it-index)) (setq list (cdr list)))) (nreverse result)))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (let ((--dolist-tail-- (-flatten (list modes))) m) (while --dolist-tail-- (setq m (car --dolist-tail--)) (let* ((pair nil)) (setq pair (plist-put pair :open open)) (if close (progn (plist-put pair :close close))) (if trigger (progn (plist-put pair :trigger trigger))) (if prefix (progn (plist-put pair :prefix prefix))) (if suffix (progn (plist-put pair :suffix suffix))) (if skip-match (progn (plist-put pair :skip-match skip-match))) (if (and (not (sp-get-pair-definition open t)) (equal actions (quote (:add)))) (progn (setq actions (quote (wrap insert autoskip navigate))))) (plist-put pair :actions actions) (plist-put pair :when when) (plist-put pair :unless unless) (plist-put pair :pre-handlers pre-handlers) (plist-put pair :post-handlers post-handlers) (sp--update-pair-list pair m) (let ((symbol (intern (concat (symbol-name m) "-map")))) (if symbol (let ((map (and (boundp symbol) (symbol-value symbol)))) (if map (progn (if (or wrap bind) (progn (define-key map (read-kbd-macro (or wrap bind)) (list (quote lambda) (quote (&optional arg)) (quote (interactive "P")) (list (quote sp-wrap-with-pair) open))))) (if insert (progn (define-key map (kbd insert) (list (quote lambda) nil (quote (interactive)) (list (quote sp-insert-pair) open))))))))))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (sp--update-local-pairs-everywhere (-flatten (list modes))) sp-pairs)))) 2)
sp-local-pair("#{" "}")
clojure-smartparens-setup()
run-hooks(smartparens-mode-hook smartparens-mode-on-hook)
(let ((last-message (current-message))) (setq smartparens-mode (if (eq arg (quote toggle)) (not smartparens-mode) (> (prefix-numeric-value arg) 0))) (if smartparens-mode (progn (sp--init) (run-hooks (quote smartparens-enabled-hook))) (run-hooks (quote smartparens-disabled-hook))) (run-hooks (quote smartparens-mode-hook) (if smartparens-mode (quote smartparens-mode-on-hook) (quote smartparens-mode-off-hook))) (if (called-interactively-p (quote any)) (progn nil (if (and (current-message) (not (equal last-message (current-message)))) nil (let ((local " in current buffer")) (message "Smartparens mode %sabled%s" (if smartparens-mode "en" "dis") local))))))
smartparens-mode()
run-hooks(change-major-mode-after-body-hook prog-mode-hook clojure-mode-hook)
apply(run-hooks (change-major-mode-after-body-hook prog-mode-hook clojure-mode-hook))
run-mode-hooks(clojure-mode-hook)
clojure-mode()
set-auto-mode-0(clojure-mode nil)
set-auto-mode()
normal-mode(t)
[a bunch of other stuff]
Looks like the bug is in clojure-mode
, so I'll report there.
Fixed upstream. Sorry for the trouble!
Description :octocat:
smartparens and clojure-mode are unhappy
Reproduction guide :beetle:
Observed behaviour: :eyes: :broken_heart: Open Clojure file, an exception is thrown. This error means almost all mode key bindings don't register.
Expected behaviour: :heart: :smile: Open Clojure file, start hacking, enjoy Spacemacs.
System Info :computer:
Backtrace :paw_prints: