Skip to content

Rework sexp behaviour #168

@fredefox

Description

@fredefox

enh-ruby-mode rebinds C-M-f to enh-ruby-forward-sexp. That key is bound to forward-sexp by default. Similarly C-M-n is rebound to enh-ruby-end-of-block in stead of forward-list etc..

This means that the behaviour is inconsistent with the built-in functions. That works fine for those particular commands that have had their keys re-bound. However enh-ruby-mode does not rebind e.g. C-M-SPC which is bound to mark-sexp. This means that the sexp that you can mark is not the same as the one you can navigate.

To fix this problem we could do one of two things

  • Also bind additional keys used for navigating sexps. See the Emacs documentation for expressions and implement analogous functions. C-M-SPC, C-M-t...
  • Figure a way to locally override the definition of what defines a sexp is in Ruby land.

The first solution might be the quick fix. It may have the downside of duplicating some functionality that Emacs already ships with. The second solution might require some more work. It could be that it's simply a matter of locally redefining forward-sexp as I can see that e.g. mark-sexp calls this internally. More investigation is required. The second solution might also fix other problems I haven't identified yet.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions