summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2016-02-29 10:26:52 -0300
committerArtur Malabarba <bruce.connor.am@gmail.com>2016-02-29 10:26:52 -0300
commitaf93884e7f6524cc9fd93d2bde65a8fd6a079ddc (patch)
tree18d37f3598cfec13b224a24f072398be1d32aed4
parent1e1ff3c3c87cec9ac093b50518d85c629c892983 (diff)
[Fix #1593] Don't move point in cider-symbol-at-point
-rw-r--r--cider-util.el9
-rw-r--r--test/cider-util-tests.el12
2 files changed, 17 insertions, 4 deletions
diff --git a/cider-util.el b/cider-util.el
index b326fec6..e59baf79 100644
--- a/cider-util.el
+++ b/cider-util.el
@@ -116,10 +116,11 @@ find a symbol if there isn't one at point."
(unless (text-property-any 0 (length str) 'field 'cider-repl-prompt str)
str))
(when look-back
- (ignore-errors
- (while (not (looking-at "\\sw\\|\\s_\\|\\`"))
- (forward-sexp -1)))
- (cider-symbol-at-point))))
+ (save-excursion
+ (ignore-errors
+ (while (not (looking-at "\\sw\\|\\s_\\|\\`"))
+ (forward-sexp -1)))
+ (cider-symbol-at-point)))))
;;; sexp navigation
diff --git a/test/cider-util-tests.el b/test/cider-util-tests.el
new file mode 100644
index 00000000..0ea18864
--- /dev/null
+++ b/test/cider-util-tests.el
@@ -0,0 +1,12 @@
+(require 'cider)
+(require 'cider-util)
+(require 'ert)
+
+;;; cider-util tests
+(ert-deftest cider-symbol-at-point-dont-move ()
+ (with-temp-buffer
+ (clojure-mode)
+ (insert "something else\n")
+ (should (not (cider-symbol-at-point)))
+ (should (equal "else" (cider-symbol-at-point 'lookback)))
+ (should (= (point) (point-max)))))