Skip to content

braid-org/braid-neovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Braid-Neovim

Collaborative editing from Neovim to anything and everything using the Braid-HTTP protocol.

Installation

Add to your Neovim config:

vim.opt.rtp:prepend("~/path/to/braid-neovim")

Or with lazy.nvim:

{ "braid-org/braid-neovim" }

How it works

Syncs Neovim buffers with HTTP resources. Uses the simpleton merge algorithm. Implements HTTP with curl and reads/writes Braid-HTTP in Lua.

Opening a URL

Open any braid-text resource:

:BraidOpen http://localhost:8888/text/notes
:BraidOpen https://dt.braid.org/foo

braid-neovim automatically connects and starts syncing.

Edits you make are pushed to the server immediately, and edits from other clients appear in real time. Close the buffer to disconnect.

Libraries

braid-neovim includes Lua modules that can be used independently:

  • braid/http.lua -- a Braid-HTTP client library. Subscribe to any Braid resource and receive streaming updates (209 Multiresponse parsing, automatic reconnection). Send versioned PUTs with patches.

  • braid/simpleton.lua -- a simpleton sync client. Connects to a braid-text resource and handles the full sync lifecycle: diffing, patching, version tracking, and digest verification.

  • braid/cursors.lua -- collaborative cursor display. Subscribes to cursor updates, renders remote cursors as highlights, and broadcasts local cursor position.

About

Collaborative editing from Neovim using Braid-HTTP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors