https://github.com/cldwalker/share
Collaborative editing for Light Table
https://github.com/cldwalker/share
Last synced: about 1 year ago
JSON representation
Collaborative editing for Light Table
- Host: GitHub
- URL: https://github.com/cldwalker/share
- Owner: cldwalker
- License: mit
- Created: 2014-10-04T15:58:45.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-06T02:58:15.000Z (about 11 years ago)
- Last Synced: 2025-04-06T18:53:03.572Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 508 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
## Description
This LT plugin allows two or more LightTable users to share the same CodeMirror
editor. Each user can their own keybindings - yes emacs users can pair with vim
users (cats and dogs living together!). LightTable users can also pair with
users using a browser-based CodeMirror editor. Shared connections are pesisted
through a _public_ [firebase](https://www.firebase.com/) connection. If you're
concerned about privacy, consider getting a free private ccount.

## Install
Install this plugin with LT's plugin manager or clone this project to your LT
plugins directory.
## Usage
### Two LT users
* First user shares their current tab with command `Share: Share current tab`. ID of created session is copied to clipboard.
* Second user opens a new tab with command `File: New file`, executes command `Share: Attach current tab` and inputs first user's ID.
Two LT editors are in sync!
### LT user and browser user
* First user shares their current tab with command `Share: Share current tab`. ID of created session is copied to clipboard.
* Second user, goes to `http://demo.firepad.io/#ID` where ID is first user's ID.
LT user and browser user are in sync!
## Limitations
* Shared connections are per tab/file.
* Only editing experience is shared e.g. text manipulation and highlighting. All LightTable behaviors
e.g. evaluation, autocompletion and syntax highlighting are _not_ shared. This means only the original editor
can evaluate, etc.
## Tips
* In pairing scenarios where eval and other LT features matter, make sure to open a new tab in the same project as the sharer. Also consider screensharing to see the sharer's eval.
* When pairing on anything that's not a plain text file, sharees should set their file syntax with the command `Editor: Set current editor syntax`.
* Given the ease of sharing, even between browser and editor, this plugin is a good fit for [swarm coding](http://technomancy.us/162) a.k.a. pairing as a group.
## TODO
* Detach/dispose from current firebase session
* Allow firebase url to be configured
* Consider a workflow where multiple files are shared through one connection.
This could be possible by switching files in one tab [with this command](https://github.com/cldwalker/ltfiles/blob/bf5ce36188219622796b794f7dcf7be4d255dd36/src/lt/plugins/ltfiles/document.cljs#L32-L42).
## Credits
* Thanks to @jamii for the proof of concept!
## Bugs/Issues
Please report them [on github](http://github.com/cldwalker/Share/issues).
## Contributions
[See here](http://tagaholic.me/contributing.html) for contributing guidelines.
## Links
* [firepad atom plugin](https://github.com/firebase/atom-firepad/)
* [sharejs-codemirror](https://github.com/share/share-codemirror) - Open source alternative to firebase/firepad which requires running your own server(s) but gives you complete control of shared data.
## License
See LICENSE.txt