I made a fun little thing over the weekend that had been on my mind since the local-first conf. I combined @ethersync and the Language Server Protocol to enable some kind of real-time collaboration in Helix.
I use the "textDocument/didChange" event to track editor's changes and convert them to an edit message in Ethersync.
When a peer makes changes, the other peer receives them from the Ethersync daemon and converts them into a "workspace/applyEdit" message.
Also thinking about using inlay hints for showing other peer's cursor
I'm not sure if that will even be able to work properly, but it's worth trying anyway
Ethersync: https://github.com/ethersync/ethersync
 
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
                            
                        
                         
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
             
      
  
                            
                        
                         
      
  
                            
                        
                        