Skip to content

Expose e/E (cursor_word_end) as customizable, unbound actions#233

Merged
Maxteabag merged 1 commit into
mainfrom
feat/expose-word-end-motion
May 25, 2026
Merged

Expose e/E (cursor_word_end) as customizable, unbound actions#233
Maxteabag merged 1 commit into
mainfrom
feat/expose-word-end-motion

Conversation

@Maxteabag
Copy link
Copy Markdown
Owner

Vim's e and E end-of-word motions weren't available as standalone cursor motions in the query editor — only as operator suffixes (de, ye, ce). Naked e in normal mode hits the focus_explorer binding from the navigation context instead.

This adds the two actions (cursor_word_end, cursor_WORD_end) and allows them in query_normal mode, but leaves them unbound by default so the existing e → focus_explorer behaviour is unchanged. Users who want vim-style motion can opt in via their keymap.json:

{
  "keymap": {
    "action_keys": {
      "query_normal": {
        "cursor_word_end": "e",
        "cursor_WORD_end": "E"
      },
      "navigation": {
        "focus_explorer": "ctrl+e"
      }
    }
  }
}

(They'd also need to rebind focus_explorer off of e, otherwise it would still win in the current binding-resolver order.)

…d actions

Adds vim's `e`/`E` end-of-word motions as customizable actions in
query_normal mode. The actions are declared but left unbound by default
so they don't conflict with the existing `e` → focus_explorer binding in
the navigation context.

Users who want vim-style behavior can bind them in
`~/.config/sqlit/keymap.json`, e.g.:

    {
      "keymap": {
        "action_keys": {
          "query_normal": {
            "cursor_word_end": "e",
            "cursor_WORD_end": "E"
          },
          "navigation": {
            "focus_explorer": "ctrl+e"
          }
        }
      }
    }

The motions themselves already work as operator suffixes (`de`, `ye`,
`ce`) via the existing motion registry; this just lets users use them
as standalone cursor motions too.
@Maxteabag Maxteabag merged commit 9805603 into main May 25, 2026
20 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant