Function: python-nav--lisp-forward-sexp-safe
python-nav--lisp-forward-sexp-safe is a byte-compiled function defined
in python.el.gz.
Signature
(python-nav--lisp-forward-sexp-safe &optional ARG)
Documentation
Safe version of standard forward-sexp.
When at end of sexp (i.e. looking at an opening/closing paren) skips it instead of throwing an error. With positive ARG move forward only one sexp, else move backwards.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
(defun python-nav--lisp-forward-sexp-safe (&optional arg)
"Safe version of standard `forward-sexp'.
When at end of sexp (i.e. looking at an opening/closing paren)
skips it instead of throwing an error. With positive ARG move
forward only one sexp, else move backwards."
(let* ((arg (if (or (not arg) (> arg 0)) 1 -1))
(paren-regexp
(if (> arg 0) (python-rx close-paren) (python-rx open-paren)))
(search-fn
(if (> arg 0) #'re-search-forward #'re-search-backward)))
(condition-case nil
(python-nav--lisp-forward-sexp arg)
(error
(while (and (funcall search-fn paren-regexp nil t)
(python-syntax-context 'paren)))))))