Removing Shadow DOM boundaries from text editor elements
blog.atom.io
blog.atom.io
The issues with themes and shared styles are largely solved by CSS Custom Variables, which inherit through shadow boundaries (much like /deep/), and Shadow DOM v1 (the new spec implemented by Safari and Chrome) which allows <link rel=stylesheet> tags inside shadow roots.
I'm not a web developer but I'm sure there are valid use cases for it, as well as use cases such as this one where it's not ideal
Let's assume you want to escape from the terminal (which seems like a reasonable idea for lots of reasons -- pictures, icons, variable-sized fonts among others).
So, let's assume you don't want to have to implement text / picture rendering yourself from scratch in a multi-OS manner. Where can you get code that has spent years working on the highest performance, dynamic text and picture rendering? Web browsers!
You'd need to use Qt to build an extension framework that exposes document contents in a way that all extensions can customize their display simultaneously -- and at this point you're just creating an ad-hoc, less well-understood DOM.
QtQuick with QML and their scripting engine?
It has a full DOM, scriptability, and extensibility.
I don't know what you'd really hope to gain from this, in other words. "Atom is more-or-less just as slow but has a less well known DOM" doesn't strike me as a compelling engineering decision.
Having used VSCode for a while I'm always incredibly impressed with how snappy it is.
I know Atom lags with huge files sometimes, or when I place a lot of multiple cursors and then edit something, but I haven't tried either with VSCode.
For those people, opening such a file makes for a good test to compare the performance of Atom and VSCode...and Vim, and Emacs, and lots of others.
For writing code, I find Atom a bit slower to start up than Code, but generally nice and usable afterward. That's on an 8 core, 32GB of RAM system, though, so Atom could very well be more sluggish for others.
Starting with a well-understood document model that a lot of people have experience with making look however they like has a ton of benefits. You can build things like ink[1] without needing the core editor devs to forsee your need for nestable menu primitives, for instance.
Is there a similar plugin for vim / nvim?