Function: python-nav-forward-sexp
python-nav-forward-sexp is an interactive and byte-compiled function
defined in python.el.gz.
Signature
(python-nav-forward-sexp &optional ARG SAFE SKIP-PARENS-P)
Documentation
Move forward across expressions.
With ARG, do it that many times. Negative arg -N means move backward N times. When optional argument SAFE is non-nil do not throw errors when at end of sexp, skip it instead. With optional argument SKIP-PARENS-P force sexp motion to ignore parenthesized expressions when looking at them in either direction (forced to t in interactive calls).
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
(defun python-nav-forward-sexp (&optional arg safe skip-parens-p)
"Move forward across expressions.
With ARG, do it that many times. Negative arg -N means move
backward N times. When optional argument SAFE is non-nil do not
throw errors when at end of sexp, skip it instead. With optional
argument SKIP-PARENS-P force sexp motion to ignore parenthesized
expressions when looking at them in either direction (forced to t
in interactive calls)."
(interactive "^p")
(or arg (setq arg 1))
;; Do not follow parens on interactive calls. This hack to detect
;; if the function was called interactively copes with the way
;; `forward-sexp' works by calling `forward-sexp-function', losing
;; interactive detection by checking `current-prefix-arg'. The
;; reason to make this distinction is that lisp functions like
;; `blink-matching-open' get confused causing issues like the one in
;; Bug#16191. With this approach the user gets a symmetric behavior
;; when working interactively while called functions expecting
;; paren-based sexp motion work just fine.
(or
skip-parens-p
(setq skip-parens-p
(memq real-this-command
(list
#'forward-sexp #'backward-sexp
#'python-nav-forward-sexp #'python-nav-backward-sexp
#'python-nav-forward-sexp-safe #'python-nav-backward-sexp))))
(while (> arg 0)
(python-nav--forward-sexp 1 safe skip-parens-p)
(setq arg (1- arg)))
(while (< arg 0)
(python-nav--forward-sexp -1 safe skip-parens-p)
(setq arg (1+ arg))))