diff options
-rw-r--r-- | cider-debug.el | 20 | ||||
-rw-r--r-- | cider-interaction.el | 4 | ||||
-rw-r--r-- | cider-macroexpansion.el | 2 | ||||
-rw-r--r-- | cider.el | 2 |
4 files changed, 7 insertions, 21 deletions
diff --git a/cider-debug.el b/cider-debug.el index 6e3cb866..649fbb44 100644 --- a/cider-debug.el +++ b/cider-debug.el @@ -133,7 +133,7 @@ is displayed at point." (cider--make-result-overlay value 'debug-result cider-debug-use-overlays 'before-string cider--fringe-arrow-string) ;; Code - (cider--make-overlay (save-excursion (forward-sexp -1) (point)) + (cider--make-overlay (save-excursion (clojure-backward-logical-sexp 1) (point)) (point) 'debug-code 'face 'cider-debug-code-overlay-face ;; Higher priority than `show-paren'. @@ -281,20 +281,6 @@ ID is the id of the message that instrumented CODE." (set-buffer-modified-p nil)))) (switch-to-buffer buffer-name))) -(defun cider--forward-sexp (n) - "Move forward N logical sexps. -This will skip over sexps that don't represent objects, such as ^hints and -#reader.macros." - (while (> n 0) - ;; Non-logical sexps. - (while (progn (forward-sexp 1) - (forward-sexp -1) - (looking-at-p "\\^\\|#[[:alpha:]]")) - (forward-sexp 1)) - ;; The actual sexp - (forward-sexp 1) - (setq n (1- n)))) - (defun cider--debug-goto-keyval (key) "Find KEY in current sexp or return nil." (-when-let (limit (ignore-errors (save-excursion (up-list) (point)))) @@ -318,12 +304,12 @@ sexp." ;; String coordinates are map keys. (if (stringp next) (cider--debug-goto-keyval next) - (cider--forward-sexp next))) + (clojure-forward-logical-sexp (pop coordinates)))) ;; If that extra pop was the last coordinate, this represents the ;; entire #(...), so we should move back out. (backward-up-list))) ;; Place point at the end of instrumented sexp. - (cider--forward-sexp 1)) + (clojure-forward-logical-sexp 1)) ;; Avoid throwing actual errors, since this happens on every breakpoint. (error (message "Can't find instrumented sexp, did you edit the source?")))) diff --git a/cider-interaction.el b/cider-interaction.el index 41a2b5bb..11f44153 100644 --- a/cider-interaction.el +++ b/cider-interaction.el @@ -631,7 +631,7 @@ When invoked with a prefix ARG the command doesn't prompt for confirmation." "Return the sexp preceding the point." (buffer-substring-no-properties (save-excursion - (backward-sexp) + (clojure-backward-logical-sexp 1) (point)) (point))) @@ -1715,7 +1715,7 @@ If invoked with a PREFIX argument, print the result in the current buffer." (interactive "P") (cider-interactive-eval (cider-last-sexp) (when prefix (cider-eval-print-handler)) - (save-excursion (backward-sexp 1) (point)))) + (save-excursion (clojure-backward-logical-sexp 1) (point)))) (defun cider-eval-last-sexp-and-replace () "Evaluate the expression preceding point and replace it with its result." diff --git a/cider-macroexpansion.el b/cider-macroexpansion.el index 3bd748d3..d1de8001 100644 --- a/cider-macroexpansion.el +++ b/cider-macroexpansion.el @@ -101,7 +101,7 @@ This variable specifies both what was expanded and the expander.") "Substitute the form preceding point with its macroexpansion using EXPANDER." (interactive) (let* ((expansion (cider-sync-request:macroexpand expander (cider-last-sexp))) - (bounds (cons (save-excursion (backward-sexp) (point)) (point)))) + (bounds (cons (save-excursion (clojure-backward-logical-sexp 1) (point)) (point)))) (cider-redraw-macroexpansion-buffer expansion (current-buffer) (car bounds) (cdr bounds)))) @@ -11,7 +11,7 @@ ;; Maintainer: Bozhidar Batsov <bozhidar@batsov.com> ;; URL: http://www.github.com/clojure-emacs/cider ;; Version: 0.10.0-cvs -;; Package-Requires: ((clojure-mode "4.0.0") (dash "2.4.1") (pkg-info "0.4") (emacs "24.3") (queue "0.1.1")) +;; Package-Requires: ((clojure-mode "4.2.0") (dash "2.4.1") (pkg-info "0.4") (emacs "24.3") (queue "0.1.1")) ;; Keywords: languages, clojure, cider ;; This program is free software: you can redistribute it and/or modify |