neovim codemp plugin -- code multiplexer
Find a file
2024-08-17 16:57:38 +02:00
.cargo fix: build on mac 2023-11-23 15:09:13 +01:00
.github/workflows ci: add deploy key 2023-08-17 02:08:18 +02:00
src feat: also show users in sidebar 2024-08-17 04:59:16 +02:00
.editorconfig feat: initial rust bindings for vscode client 2023-07-02 23:58:25 +02:00
.gitignore build: improved buildscript and bundle, added cmds 2023-07-04 01:02:50 +02:00
.rustfmt.toml build: initial commit with tonic stubs 2022-07-10 19:01:56 +02:00
LICENSE fix: not really FOSS 2023-07-16 19:42:42 +02:00
README.md docs: improved readme 2024-08-17 16:57:38 +02:00

codemp-nvim

codemp logo code multiplexer for neovim

CodeMP is a collaborative text editing plugin to work remotely. It seamlessly integrates in your editor providing remote cursors and instant text synchronization, as well as a remote virtual workspace for you and your team.

CodeMP is build with state-of-the-art CRDT technology, guaranteeing eventual consistency. This means everyone in a workspace will always be working on the exact same file eventually: even under unreliable networks or constrained resources, the underlying CRDT will always reach a convergent state across all users. Even with this baseline, CodeMP's proto is optimized for speed and low network footprint, meaning even slow connections can provide stable real-time editing.

This is the reference codemp neovim plugin maintained by hexedtech

usage

to interact with this plugin use the :MP command

  • :MP toggle toggles the codemp sidebar

  • :MP connect [host] [username] [password] to connect to server, user and pwd will be prompted if not given

  • :MP disconnect disconnects from server

  • :MP id shows current client id

  • :MP join <workspace> will join requested workspace; starts processing cursors, users and filetree

  • :MP leave <workspace> disconnect from a joined workspace

  • :MP attach <buffer> will attach to requested buffer if it exists (opens a new local buffer and uses current window)

  • :MP detach <buffer> detach from a buffer and stop receiving changes

  • :MP share shares current file: creates a new buffer with local file's content, and attach to it

  • :MP sync forces resynchronization of current buffer

  • :MP create <bufname> will create a new empty buffer in workspace

  • :MP delete <bufname> will delete a buffer from workspace

quick start

  • first connect to server with :MP connect
  • then join a workspace with :MP join <workspace>
  • either attach directly to a buffer with :MP attach <buffer> or browse available buffers with :MP toggle

MP command autocompletes available options for current state, so cycle if you forget any name

configuration

it's possible to configure global vim.g.codemp_username and a vim.g.codemp_password which will be used when connecting

installation

currently there is no stable release available

an internal testing build is available here, place the whole codemp folder under your .config/nvim/lua directory

building

this plugin relies on the native codemp lua bindings: just compile the main codemp project with lua feature enabled and place a lua.so or lua.dll together with the plugin lua files while bundling