I think every year at SIGCSE there's someone showing off another in-browser IDE for coding. My own contribution to this space is BlockPy (scratch editor: https://blockpy.cis.udel.edu/blockpy/, 2017 paper: https://ieeexplore.ieee.org/abstract/document/7924251), which has several pedagogical features:
- Dual block-text code editor ("BlockMirror", https://github.com/blockpy-edu/BlockMirror), where anything you do in the blocks converts to text, and vice versa
- Tracing and stepping support with VCR style controls ("View Trace" after you run code)
- Playback of "remembered inputs", although most people don't realize that feature exists (it's the button in the top-right corner)
- Integration with the CORGIS datasets project to let you have interesting datasets right there: https://corgis-edu.github.io/corgis/blockpy/
- Uses skulpt to execute python code locally in the browser, without needing a backend (we're probably going to finally switch to Pyodide this summer though, much like Tiger Python)
- Rich console supports a few different libraries to a limited extent, like Turtles, Matplotlib, PIL, Pygame, and our own web library Drafter (https://drafter-edu.github.io/)
- Support for uploading Jupyter Notebooks (since those are actually just json files with python code)
- Deep integration with Pedal, our autograding framework for Python, which enables immediate feedback beyond just unit testing and also various things like testing output, syntactic structure, semantic logic, etc.: https://pedal-edu.github.io/
- Other parts of the backend allow you to have quiz-style questions (e.g., multiple choice, matching, fill-in-the-blank), readings (markdown with images and executable code examples), and so on. We actually have another part of the system that supports TypeScript too. (https://github.com/blockpy-edu/blockpy-server). And all of this is done with LTI so you can embed it directly in your LMS and get grade passback, and dump logs to ProgSnap2 format (https://cssplice.org/progsnap2/) for research purposes.
I always thought that more features of these would make their way into other online environments, since none of them are particularly hard to implement. I've kept a BlockPy installation here at University of Delaware, since it fills most of our needs. It's an open source project (https://github.com/blockpy-edu/blockpy) so others run their own version. Like all of these open-source coding environments, it's kind of a laissez-faire situation, since I'm always time limited and driven by my own local needs. I never turned on the refactoring, code folding, or autocomplete features of CodeMirror but it would actually probably be pretty trivial to do so...