Function: cider-eldoc-beginning-of-sexp
cider-eldoc-beginning-of-sexp is a byte-compiled function defined in
cider-eldoc.el.
Signature
(cider-eldoc-beginning-of-sexp)
Documentation
Move to the beginning of current sexp.
Return the number of nested sexp the point was over or after. Return nil if the maximum number of sexps to skip is exceeded.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-eldoc.el
(defun cider-eldoc-beginning-of-sexp ()
"Move to the beginning of current sexp.
Return the number of nested sexp the point was over or after. Return nil
if the maximum number of sexps to skip is exceeded."
(let ((parse-sexp-ignore-comments t)
(num-skipped-sexps 0))
(condition-case _
(progn
;; First account for the case the point is directly over a
;; beginning of a nested sexp.
(condition-case _
(let ((p (point)))
(forward-sexp -1)
(forward-sexp 1)
(when (< (point) p)
(setq num-skipped-sexps 1)))
(error))
(while
(let ((p (point)))
(clojure-backward-logical-sexp 1)
(when (< (point) p)
(setq num-skipped-sexps
(unless (and cider-eldoc-max-num-sexps-to-skip
(>= num-skipped-sexps
cider-eldoc-max-num-sexps-to-skip))
;; Without the above guard,
;; `cider-eldoc-beginning-of-sexp' could traverse the
;; whole buffer when the point is not within a
;; list. This behavior is problematic especially with
;; a buffer containing a large number of
;; non-expressions like a REPL buffer.
(1+ num-skipped-sexps)))))))
(error))
num-skipped-sexps))