Textadept
orbitalquark.github.io
orbitalquark.github.io
Mitchell is to be commended for maintaining the editor solo for so many years and keeping the LOC count really low (2000 lines of C, 4000 lines of Lua). If you’re willing to read the source it’s really easy to wrap your head around the whole thing, which can’t be said for Emacs or Vim. When I find the time I’ll finish my vi mode…
Ok, well now I have to find out what hapoens if I get enough splits to make the width of each less than a pixel.
The only thing missing is for me is the "save temporary file" behavior, as I have this habit of making a quick note, close to save up space, both in RAM and view, then later on, fire it up again. Will see if there's a Lua api for this later.
The default behavior of Notepad++ is a very real security risk. So many system admins and developers will throw passwords and API keys into there and just forget about it. The scratch files are all sitting there unencrypted and with easy to exploit permissions.
Alas, my first thought after seeing TextAdept was that it could serve as a more secure alternative to Notepad++.
The great thing about Textadept’s extensibility (and use of Lua specifically) is that it’s easy to pull in other Lua modules to add functionality. I don’t think it would be much work to modify the scratch file extension to prompt you for an encryption key on startup and then run the scratch files through libsodium (via luasodium) if you want to have your cake (scratch files) and eat it (some cursory level of security).
Everything else is explicitly saved (without secrets) or just an ephemeral buffer in Neovim.
Searching for alternatives, Textadept seemed to fill the gap between features, speed and simplicity.
The plugin mentioned by the parent is really easy to grasp and tailor to my needs, which would not be the case with Notepad++, well, not for me at least.
It uses Lua LPEG lexers, which are extremely easy way to de develop syntax parsers/LSPs for new or unsupported languages.
Eventually our project moved to Pragtical, which has SDL as a cross-platform backend and uses the more modern meson as the build system, which made developing for it much easier.
The documentation for Scintillua also gets pulled into Textadept's API documentation as a dependency, so the syntax is also explained there. It's basically a bridge between Scintilla's native lexing and LPeg.
I don’t see it mentioned.
TextAdept - https://news.ycombinator.com/item?id=39571814 - March 2024 (31 comments)
You can see a zillion examples here: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
The purpose is to satisfy extra-curious readers (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...) who might want to read previous discussions of the same story.
No criticism is intended! I add this because sometimes people think there's an implied "why did you repost this, it's already been discussed" - but not at all: reposts on HN are fine after about a year or so: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
* than you could possibly want, but oh well
Tell HN: Announcing tomhow as a public moderator - https://news.ycombinator.com/item?id=43558671 - April 2025 (462 comments)
But as a guy that teaches kids about computing and system administration, having another option to demonstrate is excellent. For many things something like nano is fine, but for something a bit more robust? And is available for many platforms? And is small and self-contained? It's a great option. The Lua extensibility is also a bonus.
Teaching teenagers how to use vim or emacs is, not surprisingly, a bit of a chore.
https://github.com/Fwirt/textadept-minimap
Textadept's biggest strength is also its biggest weakness: Scintilla allows for a lot of features that are nigh-impossible in the likes of Vim and Emacs due to their reliance on terminal behavior. However, Scintilla is not terribly well optimized and does not support GPU rendering, meaning that while there is very little bloat, Textadept can still chug in some edge cases. The most notable instance right now is large files with no line breaks (e.g. minified js libraries). Other Scintilla-based editors also suffer from this to varying degrees, although Notepad++ has some performance optimizations that seem to mostly mitigate it. Notepad++ is also Windows only and not as easily extensible.
of course, knowledge of VIM is essential to anyone when doing CLIs.
- (Fairly) low memory footprint
- Nice approach to buffers which seems to borrow from vi
- Apparent very high extensibility using lua
- Configurable key bindings, including language-specific keys, key chains, and key modes.
Does this include being able to make it feel like vi/vim?
/s
/s