Obsidian is catching left/right (and j/k) cursor movements, causing CM `rtlMoveVisually` to break


I’m the author of the Obsidian RTL plugin.

In one of the recent updates around 0.10.6, not sure exactly which one, Obsidian introduced a behavior that broke left/right cursor movements for RTL users. It seems like Obsidian is now catching left/right (and Vim j/k) movements, or the corresponding CodeMirror events, and overriding the editor action, thus causing the CM rtlMoveVisually setting to not work.
The result: left/right when in RTL mode produce the wrong cursor movement.

I can patch it in my plugin by catching left/right/j/k DOM events and handling them differently for RTL, but I assume that this happened because Obsidian needed to catch these events for some functionality to work, and my patch will break that.
Help or insights will be greatly appreciated!

Obsidian 0.10.6
OS: Linux Manjaro

We did not change this.

do you have others plugins installed?

It happens with no other plugins enabled (but a few installed & disabled: Calendar and my own Obsidian Vimrc support).
What I just noticed after some experimentation is that the wrong movement is happening only when the cursor is on an RTL language text (in my case Hebrew). This definitely didn’t happen a few versions ago, I wonder what could have changed.
Anyway, if Obsidian is not intentionally doing something with left/right key presses in the editor I’ll just catch them and patch this away.

does it happen in the help vault?

I narrowed it down further and noticed it is only happening with Vim keybindings, in Normal mode. When in Insert mode, or when Vim bindings are off, the cursor moves correctly.

Regarding the help vault. If I:

  1. Force RTL via the developer console: app.workspace.activeLeaf.view.sourceMode.cmEditor.setOption("direction", "rtl")
  2. Turn on Vim key bindings
  3. Type a Hebrew text (as an RTL language)

Then yes, it recreates immediately.

I can see why vim catches j/k. I don’t think this is a bug, certantly not our bug. You can ask in codemirror github repo

I just don’t understand why this suddenly changed (it was definitely not happening a few weeks ago), did Obsidian update a CM version recently?
Anyway, regardless of what originated the change, I now have a way forward.
Thanks for the insights!