masfrost
> How does it work?
It's a web application, so a lot of JavaScript.
> I tried the emacs keybindings on replit... what a joke
It needs some more love, the work is done out in the open, feel free to open issues. https://github.com/replit/codemirror-emacs
For what it's worth, we're not trying to recreate your emacs or VIM experience, just trying to port as many keybindings as we can. Will log the things you mentioned, it just seems like there's conflict with other keybindings.
> Maybe there are function keys bound? I wish I could find out.
Ctrl+Enter to run
> Is there any possibility of one of these "IDEs" having auto-indent / reindent? I see from the docs there's supposed to be one, but all I get is not-smart left/right motion.
What do you mean by left/right motion? Are you asking for like an auto-format feature? Or just handle re-indent when the indentation options change?
Here it is around 300kb inflated https://codemirror-basic-setup.replitfaris.repl.co/ using the basic-setup package, and I don't think this build tree-shakes.
Code for this build is here https://codemirror-basic-setup.replitfaris.repl.co/__repl
Also huge fan of yjs, but the implementation is not compatible with codemirror 6, only version 5 (AFAIK)
CodeMirror improved Replit's performance by a lot and by extension our retention. In fact, after releasing it to mobile in July[1] our weekly retention rate on mobile increased by a whopping 70%. That said, solve a lot of mobile usability issues so it's not all due to performance. On desktop however, it's a different story, we made sure to just have parity with Monaco and it still improved retention by %25, almost all due to performance!
If you like working on performance come work at Replit, we want people that care about the performance of our systems!
Adopting CodeMirror pushed us to write more in a more functional style that makes the code more fun and simple (not easy) in the shortrun, and more maintainable in the long run! My teammates write CodeMirror extensions for kicks and giggles, sometimes they end up releasing some "bret victor shit"[3].
If you like CodeMirror and end up using it in production, try to get your company to fund the project[4] and open-source as much as you can!
[1]: https://blog.replit.com/codemirror-mobile [2]: https://blog.replit.com/codemirror [3]: https://blog.replit.com/kaboomdraw [4]: https://marijnhaverbeke.nl/fund/
The LSP integration for Monaco is lackluster, it works, but isn't great. We thought LSP would work perfectly on Monaco only to find out that the Monaco APIs are very different from LSP APIs or even VSCode APIs. The 3rd party package out there is good, but you need a bunch of monkey-patching to make it work in an "IDE" environment.
We have a really high bar for hiring at Repl.it, Dalia and the other youngsters from Palestine performed better than at least half the experienced engineers I've interviewed in the past. We extended an offer to one Dalia's classmates and he started yesterday as an intern with high potential for full-time, as our internships usually are since we invest a lot in them.
It was such a pleasure meeting you Dalia, wish you all the best. Hope to work with you in the future (maybe when we can offer US visas).
P.S. We're still hiring
Here's the source https://random-roads--edwardcunningh2.repl.co/__repl