Zed
Atomの開発者がRustで開発しているらしいテキストエディタ
公式サイト https://zed.dev/
まだ公開されていない
Wait list に登録して待つくらいしかできない https://zed.dev/waitlist
参考
「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 (窓の杜)
https://zed.dev/tech
Built in Rust
In the past, to write software with this performant you would need to use C++. Rust, for the first time, enables us to write software at that level as a very small team.
GPU-powered UI
最初はElectronを使ってcross-platform GUIを作ろうとしていたが、amazing perfomanceを達成するためにはElectronのようなweb technologyがボトルネックになってしまったためすてたのこと。そして新しく採用したのがGPU-powered UI frameforkで、これはMOzilla's Webrender projectにinspiredされたそうだ。
The key insight was that modern graphics hardware can render complex 3D graphics at high frame rates, so why not use it to render relatively simple 2D user interfaces with an immediate mode architecture?
Conflict-free replicated data types
each collaborator maintains their own personal replica of the buffer to which they can apply local edits immediately without network latency.
After being applied locally, edits are transmitted to collaborators over the network, whose copies may have also changed in the meantime. This means that as participants edit together, their replicas continuously diverge and reconverge. Turns out this is a tricky problem.
To solve it, we're using conflict-free replicated data types, which have emerged in the last decade as a general framework for achieving eventual consistency in a variety of circumstances.
Making Zed's buffers CRDTs allows for collaborative editing, but it also helps us reason about concurrent change so that we can push work into background threads and keep the UI thread responsive.
Tree-sitter
https://tree-sitter.github.io/tree-sitter/syntax-highlighting
Atom のSyntax hightlightしても使用されている技術
EmacsやVimでもパッケージとして輸入できるし、vscodeでも使われいるっぽい?
もちろんthe Language Server Protocol (lsp)もサポート予定だが、エディター自身がデフォルトでいろんな言語でSyntax hightlightできるようにしておくのは需要だと考えているとのこ。