Subject: bug#13642: 24.3.50; python-nav-backward-sexp mishandles string movement

From: Daniel Colascione <[email-masked]>
Date: Wed, 06 Feb 2013 16:12:43 -0800

On 2/6/2013 3:50 PM, Jorgen Schaefer wrote:
> Hello!
> In python-mode, I get the following behavior (with _|_ being point):
> 
> -----
> def foo():
>     bar = "bar"
>     baz = "baz"_|_
> 
> =>
> 
> _|_def foo():
>     bar = "bar"
>     baz = "baz"
> -----

That's by design. python-mode tries to emulate lisp movement as much as
possible, so it considers point to be at the end of a "defun" and tries to skip
over the entire "defun", back to the beginning.

This functionality appears to be buggy:

def foo():
    bar = "bar"
    baz = "baz"
    x=x()_|_

=>

def foo():
    bar = "bar"
    baz = "baz"
    x=x_|_()

I also find the behavior more counter-intuitive than useful, and I wish
python-mode acted more like cc-mode here.