Multi-cursor editing in ProseMirror (or TipTap)

Hi all,

Has anyone implemented multi-cursor editing in ProseMirror—similar to what you see in VSCode or Sublime Text (e.g., holding Option and dragging to create cursors across multiple lines)?

I’m using TipTap (mainly for React compatibility), but I’m also working pretty extensively with the underlying ProseMirror abstractions. I’d love to know if:

  • Anyone has implemented this behavior or something similar
  • There’s an existing extension (TipTap or ProseMirror) that supports it
  • Any advice or best practices for approaching this

Thanks in advance!

—Abe

1 Like

I am not aware of an implementation of this already existing. But in principle, it should be possible to create a custom selection subclass, and implement the handling and creation of such selections with extension logic. (The tables package provides a cell selection class, which can also consist of multiple separate ranges.)

1 Like

Thanks for responding so quickly!

@abegong if you endeavor to build this I think you might find a number of people willing to help. This is something I’ve considered building, but time is far more limited than ambition.

That’s good to know, thanks!