ewig
lite
ewig | lite | |
---|---|---|
3 | 30 | |
517 | 7,284 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | 7 months ago | |
C++ | Lua | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ewig
-
Text Editor Data Structures
You might be interested in ewig and immer by Juan Pedro Bolivar Puente:
https://github.com/arximboldi/ewig
https://github.com/arximboldi/immer
See the author instantly opening a ~1GB text file with async loading, paging through, copying/pasting, and undoing/redoing in their prototype “ewig” text editor about 27 minutes into their talk here:
https://m.youtube.com/watch?v=sPhpelUfu8Q
It’s backed by a “vector of vectors” data structure called a relaxed radix balanced tree:
https://infoscience.epfl.ch/record/169879/files/RMTrees.pdf
That original paper has seen lots of attention and attempts at performance improvements, such as:
https://hypirion.com/musings/thesis
https://github.com/hyPiRion/c-rrb
-
Ask HN: How to learn about text editor architectures and implementations?
Ewig is an interesting implementation using immutable data structures. https://github.com/arximboldi/ewig Very proof of concept, tries to be a little vi like. Might be worth checking out.
-
Build Your Own Text Editor
For another approach: I built a didactic text editor to teach "value oriented design" and immutable data-structures in C++:
https://github.com/arximboldi/ewig
It's design is covered in these talks:
- Postmodern immutable data structures: https://www.youtube.com/watch?v=sPhpelUfu8Q
- The most valuable values: https://www.youtube.com/watch?v=_oBx_NbLghY
lite
-
TextAdept
Another small, minimalist Lua-based text editor is Lite[1], and it's much less "light" cousin Lite-XL[2]
1: https://github.com/rxi/lite
2: https://github.com/lite-xl/lite-xl
-
A Love Letter to Tinkerable Software
Playing with browser developer tools and always seeing obfuscated JavaScript makes me sad. I'm not a web developer, but I suspect the security gained is low enough to fall within the author's "unnecessary constraints."
On the other hand, there are projects like https://github.com/rxi/lite
-
Leveraging Rust and the GPU to render user interfaces at 120 FPS
Beyond the rendering which as noted is nothing that hasn't been done before (in general) the inherent OT/multi user + tree sitter functionality is something that entices me.
I'm surprised nobody pointed out lite/litexl here either it's rendering of ui is very similar (although fonts are via a texture; like a game would) and doesn't focus overly on the GPU but optimises those paths like games circa directx9/opengl 1.3
https://github.com/rxi/lite/blob/master/src/renderer.h
-
Minimal Cross-Platform Graphics
> is using pure software rendering (on top of SDL) in a rather naïve fashion
https://github.com/rxi/lite/blob/master/src/rencache.c#L4
I think you'll find that they found the naive approach was sufficiently poor, performance wise, that additional optimizations had to be applied on-top.
> But for quick hacking / porting old demos / writing emulators and also text based UI it can be fast enough.
/shrug
If you want to use it, use it. It's 'good enough'...
> if you vastly lower your expectations
- Lite: A lightweight text editor written in Lua
-
Looking for an IDE with the following characteristics
How about lite https://github.com/rxi/lite
-
Now that Atom has been discontinued - where to next?
You have options: - Sublime Text - VsCodium - Lite - https://github.com/rxi/lite
- 4coder editor is now fully open source
-
Lapce
I like the single lapce.exe and loads reasonably fast.
But this is in a pre pre-alpha stage, so many bugs it's far too early for public feedback. It loads reasonably fast except chrome stats in top left then jerks towards the center. The start page says to bring up the command palette which I was unable to navigate via keyboard.
The open file dialog takes an eternity to load the first time, the path is in a text box that's not editable. Focusing a text file gives an Insert cursor which is in text mode, there's a noticable slow delay before writing the first character, text selection is non existent so lacks basic text editing features.
There is a built-in terminal however there's only a single tab.
The only thing that gives it potential is that the folder/file browsing is super quick even with a node_modules folder so it might be built on efficient rendering that can be improved.
Even for such a basic editor it's 38mb download. For a far smaller + more complete editor checkout Lite:
https://github.com/rxi/lite
What are some alternatives?
immer - Postmodern immutable and persistent data structures for C++ — value semantics at scale
lite-xl - A lightweight text editor written in Lua
double-conversion - A fast Haskell library for converting between double precision floating point numbers and text strings. It is implemented as a binding to the V8-derived C++ double-conversion library.
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
Adria-DX11 - Graphics engine written in C++ using DirectX11
Visual Studio Code - Visual Studio Code
bee - (Archived, Incomplete) Text editor written in Bash 3
Apache NetBeans - Apache NetBeans
kilo - A text editor in less than 1000 LOC with syntax highlight and search.
theia - Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
TinyMCE - The world's #1 JavaScript library for rich text editing. Available for React, Vue and Angular
LSP-pyright - Python support for Sublime's LSP plugin provided through microsoft/pyright.