Collaborative Editing in CodeMirror (2020)
52 points
by luu
2 days ago
| 6 comments
| marijnhaverbeke.nl
| HN
jazzypants
6 hours ago
[-]
I'm a huge fan of this guy's work. His code is really easy to read, and I learn a lot every time I dig in. I think that Lezer [0] is underappreciated considering how flexible and performant it is.

Edit: I just realized I didn't even mention his most famous work, Eloquent JavaScript [1]! This book is incredible. I couldn't finish it the first time, so I'm not sure if it's the best book for beginners, but I learned so much when I picked it back up a few years later that I think that every JavaScript programmer should read through it and do the exercises at least once.

[0] https://lezer.codemirror.net/

[1] https://eloquentjavascript.net/

reply
eliasdejong
2 hours ago
[-]
CodeMirror is great, but still requires a lot of clientside JavaScript. I wonder if it would be possible to create a code editor in the same style OverType[0], where the editor is basically just an HTML textarea. You would need 70% less JavaScript code to do exactly the same thing, and it supports syntax highlighting out of the box[1].

[0]: https://github.com/panphora/overtype

[1]: https://github.com/panphora/overtype/pull/35

reply
bikeshaving
1 hour ago
[-]
I’ve tried to create the minimalist version of this with Revise.js. The main surface area is a custom element called a `<content-area>`. The OverType library you linked to uses a time-old technique where you essentially put a duplicate copy of the content over a `<textarea>` to highlight it but this doesn’t really work in mobile and it messes with the selection. I’ve tried to grapple with `contenteditable` directly with my solution, but it does try to use less JavaScript and it does try to be more minimal.

https://github.com/bikeshaving/revise https://revise.js.org https://revise.js.org/blog/introducing-revise/

reply
sheepy
4 hours ago
[-]
Marijn Haverbeke and Fabrice Bellard are my heroes
reply
ejohansson
3 hours ago
[-]
Happy to see the love for Marijn. Goat.
reply
sbruchmann
5 hours ago
[-]
(2020)
reply
aniceperson
2 hours ago
[-]
blessed
reply