7 ms·
Lite: A lightweight text editor written in Lua
- encryptluks2 4y agoThis appears to be unmaintained.
- LeifCarrotson 4y agoSo? It's a text editor. It's not like it's dependent on continued uptime of cloud services to function...
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- romeoblade 4y agoEven text editors can have security vulnerabilities that allow privilege escalation. Especially if they support plugins which this does. To each their own, but I wouldn't risk it.
- pabs3 4y agoIt is common for build time or runtime dependencies to change in incompatible ways meaning eventually you might not even be able to run it or even built it from source.
- xaduha 4y ago> It's a text editor. It's a code editor. Without Language Server support. EDIT: fork does support it though https://github.com/lite-xl/lite-xl-plugins https://github.com/lite-xl/lite-xl-plugins, proving the point
- dflock 4y agoMaintained & improved fork: https://github.com/lite-xl/lite-xl https://github.com/lite-xl/lite-xl
- stefanos82 4y agoThe community decided to work on a fork of it and extend it further: https://github.com/lite-xl/lite-xl https://github.com/lite-xl/lite-xl
- brettermeier 4y agoThere are many such projects, like Atom.io, whose support ends this year. I can't imagine this project will continue much further, even if I hope so. The only real open source project that is up today is Visual Studio Code, but that will continue to be maintained, I hope. Edit: Oh wait, I forgot Eclipse... That heavy thing :P
- cycomanic 4y ago> There are many such projects, like Atom.io, whose support ends this year. I can't imagine this project will continue much further, even if I hope so. The only real open source project that is up today is Visual Studio Code, but that will continue to be maintained, I hope. What do you mean real open source project? I mean Linux is not going anywhere soon I'd say, or blender. Or are you talking about editors? There is Vim, Neovim and Emacs which all have shown that they will stick around for a while, so I really don't get what you mean.
- brettermeier 4y agoI mean open source IDE's, real full featured developer environments for writing code. I don't talk about Open Source projects in general, but about competition for VS Code or Eclipse. There is something like Sublime Text, but it's not really open source and free. Edit: With Vim and stuff I get your point, but I would say it's not really comparable to an UI-based IDE, it is command line stuff. Even if many people prefer that, it may not be as convenient as a GUI-based IDE for some of us. Or am I missing something here? I really love(d) atom.io, but I need to find something else... (https://github.blog/2022-06-08-sunsetting-atom/ https://github.blog/2022-06-08-sunsetting-atom/)
- 4y ago
- cturtle 4y agoLite (and lite-xl) is an amazing little editor. I especially love how fast the program opens. There’s just a few small things that bother me enough to keep me from using it, but I remain impressed by the code and how lightweight it is.
- aethy 4y agoHey; I'm part of the dev community over at lite-xl; what're your top asks? I can see if we can throw it into the feature queue (though the queue is already pretty long).
- cturtle 4y agoThanks for reaching out! At the moment I can't think of anything specific. It was just some small papercuts that added up enough to prevent me from using it regularly, not a lack of features. But lite-xl did show me that building a text editor isn't as difficult as I first thought, and I now have many ideas for my own personal editor that I might make one day. If I ever give lite-xl another try I'll be sure to share any requests
- aethy 4y agoFair enough; totally understand. If you ever can think of anything please don't hesitate to fire up an issue on the tracker. We're (very slowly) going through them.
- samatman 4y agoPersonally, I'd like to see Lpeg integration, and support for Scintillua lexers: https://github.com/orbitalquark/scintillua https://github.com/orbitalquark/scintillua Which would give fairly complete syntax coverage, and a good foundation for building more sophisticated tools. Lua patterns are fairly primitive, while the opposite is true of Lpeg.
- aethy 4y ago
- blacksqr 4y agoSo it uses SDL2 as a rendering engine. Does it roll its own widget library?
- aethy 4y agoNo; rxi wrote a rendering cache infront of the renderer. It doesn't require a widget library for this reason; it's able to efficiently implement an immediate renderer. Simplifies the codebase a lot.
- x13pixels 4y agoIf you are interested, the write up on the cached software renderer used in Lite is written up here: https://rxi.github.io/cached_software_rendering.html https://rxi.github.io/cached_software_rendering.html
- fortylove 4y agoThis is neat. I remember learning some Lua in order to write some custom Redis functions, and I was blown away by how handy of a language it can be. The indexing definitely tricked me a few times though.
- aethy 4y agoYeah; the indexing is weird when you're not used to it; but honestly I find starting arrays at 1 is actually incredibly useful for business logic. It's terrible for math, but it allows you to use things like truthiness really effectively for compound statements that return indices and stuff. Like, for example, `string.find` returns the index where something's found. You can just do `if str:find("a")` if you want to test to see whether a string contains "a", whereas in most other languages that test for location you're required to check that the result isn't equal to `string::npos`, `null` (if your langauge supports that), `-1`, or some other value that's not 0. Lua, you can assume that it's truthy if it's found, because 1 is the start of the string, not 0. Took me a while to get used to, but I really like the idiom now for things that just high-level string stuff, and glue code.
- jhatemyjob 4y agoI don't mean to screw up the whole vibe of your comment, but... if 0 then print('0 is true') else print('0 is false') end prints "0 is true". The reason why "you can just do `if str:find('a')`" is because it returns nil. string.find never returns 0.
- aethy 4y agoThat's what I mean. It never returns 0, so is thus always truthy if it finds something. If you do `if (str.indexOf("a"))` in javascript; you'll miss out on the case where the string starts with "a", because the index returned 0, which is falsy. EDIT: Oh, sorry, I see what you mean. You're right, my bad. EDIT2: I guess, let me rephrase. 0 is rarely returned for things, so the falsiness of it doesn't usually enter into the equation. So you can do things like that, regardless of the truthiness of 0, because it's not used, whereas in other langauges, you usually have to check, unless they have 0 as truthy as well. (though I guess this isn't much of an argument in favour of 1-indexes)
- account-5 4y agoI've looked at this codebase and that of the XL version. Can a neone explain why there's C code there if it's meant to be lua? Genuine novice question. Thanks.
- ever1337 4y agoNo idea about this project in particular, but Lua is designed with C operability in mind. It's very easy to integrate the two languages together and this is often done so that you can have performance-constrained code written in C with higher level scripting done in Lua.
- nateb2022 4y agoThe C is mainly used to wrap the Lua interpreter, so that the editor can be distributed without the need for the user to have a compatible Lua interpreter installed.
- cturtle 4y agoThe other replies are correct, but there is a bit more to it. Lua is a very small language with a tiny standard library. To extend it you write modules in C (or another language with bindings). This allows connecting the Lua code to various libraries. A notable example in lite is SDL. Without the C code in this repo the Lua code wouldn’t be able to use SDL for drawing or inputs
- kwanele70 4y ago
- bradrn 4y agoLooks interesting. Especially in terms of its customisability, this reminds me a bit of Textadept, another Lua-based editor: https://orbitalquark.github.io/textadept/ https://orbitalquark.github.io/textadept/
- auraham 4y agoI would like to know more details about how the UI is build. So far I have found this [1]. A tutorial-like post will be welcome, though. [1] https://rxi.github.io/lite_an_implementation_overview.html https://rxi.github.io/lite_an_implementation_overview.html
- aethy 4y agoThe UI is done using an immediate rendering model. It is entirely composed of two rendering operations, drawing solid color rects, or rendering text from a true type font. You can read a bit about the underlying technology here: https://rxi.github.io/cached_software_rendering.html https://rxi.github.io/cached_software_rendering.html It's quite brilliant.
- dang 4y agoRelated: Lite XL: A lightweight text editor written in Lua - https://news.ycombinator.com/item?id=28669439 https://news.ycombinator.com/item?id=28669439 - Sept 2021 (60 comments) Show HN: Lite – A small, fast text editor - https://news.ycombinator.com/item?id=23126458 https://news.ycombinator.com/item?id=23126458 - May 2020 (256 comments) Show HN: Lite – A lightweight text editor written in Lua - https://news.ycombinator.com/item?id=22987195 https://news.ycombinator.com/item?id=22987195 - April 2020 (3 comments)
- bwidlar 4y agoI am using this editor for months now. Really happy, his strength is customization, the source code is so simple (c and lua). I have adapted it to my work perfectly, easier than (neo)vim or emacs.