Subject: Re: bug#10460: 24.0.92; css-mode sexp movement

From: Stefan Monnier <[email-masked]>
Date: Tue, 30 Dec 2014 18:03:07 -0500

Tom> Also conformity with other modes is a distinct plus
Stefan> It's consistent with Lisp code (because the new behavior only occurs for
Stefan> situations which don't exist in Lisp).
> That's cheating!  Any behavior would be compatible with what Lisp does
> here, according to the same logic.

I wouldn't call it cheating.  The behavior of `forward-sexp' was really
only defined for Lisp.  Extending it to infix languages can be done in
various ways.  Before SMIE, it was done in the way that's simpler to
implement, but it makes you lose the ability to jump over any nodes of
the AST which aren't "atomic" nor wrapped in parentheses (in Lisp,
this is no problem since all nodes of the AST are either "atomic" or
wrapped in parentheses).

In SMIE I decided to extend it in a different way, which takes more work
on the implementation side, but offers more functionality.
Of course "more functionality" inevitably means "different", so some
users are bound to be annoyed.

Stefan> You can still have that if you set forward-sexp-function to nil.
> Yeah.  I'm going to close this bug.

Thanks,

        Stefan