I just want a fast programmable text editor with a native GUI and good defaults.
But that seems really tough to find, for some reason.
Zed is so close, but I’d much rather see a focus on the “programmable” part and let the AI and collaboration features emerge later out of rich extensibility (i.e. as plugins, perhaps even paid plugins) than have them built-in behind a sign-in and unknown future pricing model.
What would that be for each OS?
Linux: Kate (at least if using KDE; which one would it be for GTK / Gnome?)
macOS: TextMate?
Windows: Notepad++?
macOS: BBEdit now and forever.
BBEdit Doesn’t Suck!
Can also recommend CotEditor for macOS as a Notepad++ replacement. Don't know how "programmable" it is or what even falls under that label.
notepad++ without plugins is there for linux
NotepadNext – a cross-platform reimplementation of Notepad++ | Hacker News https://news.ycombinator.com/item?id=39854182
I use Kate on Windows as well.
I really love the Documents Tree plugin and could never go back to old style tabs.
For GNOME, the project's native text editor is: https://gitlab.gnome.org/GNOME/gnome-text-editor
It is significantly less featureful than Kate or your other apps though.
Sublime Text is likely closer to what you're looking for.
I retry it every now and then and miss the easy extensibility of Neovim. Can we build something that marries both worlds?
By we you mean anybody besides you? Complain-driven development.
Happy to try building one to free you from complaint-driven motivation.
Please do. Editors and IDEs need new ideas.
RIP Onivim 2, it was so close to this niche.
What does “native GUI” mean?
Using the same platform-specific graphics API the OS vendor builds their GUI apps with, ideally, but I'll also settle for "not a TUI, not a web application shipped as a desktop app, even if the OS vendor currently builds their GUI apps as web applications shipped as desktop apps".
A GUI that uses native controls and platform UI conventions with the native behavior expected on the given platform, or a near-indistinguishable equivalent of that.
I understood it as not a wrapped web application, like Electron or Tauri based applications.
Not electron
In the case of Zed it was always inevitable, a text editor doesn't raise >$10M in venture capital unless there's a plan to stuff it full of premium subscription features.
Warp Terminal is a similar story, >$50M in funding for a terminal emulator of all things...
What I'd give to have a look at the roadmaps to see how they hope to 10x/100x VC investments with a text editor and terminal.
Just look at Postman.
The funny thing is Atom was the origin story of Zed, written in some C++ and a lot of Coffeescript exactly so it could be very programmable.
Also, Spacemacs? It's technically a terminal but definitely has a lot of UI features. Very programmable.
There's two ways to make extensions to Zed, providing context for AI. In the post they show off making a Rust -> WASM based extension and also mention a server based model. There's also a third option -- Zed is open source. You don't have to use their auth, it just makes collaboration easy.
This is a great start but it's far from what most would accept as "programmable" or richly extensible.
we call the latter a "Context Server", basically any process that communicates via JSON-RPC over stdio can do it. documentation for that is here: https://zed.dev/docs/assistant/context-servers
I don't know of a single modern desktop application that is deploying front-ends simultaneously in WinUI 3, AppKit, and GTK.
Not Firefox?
Emacs? (I don't have any WinUI 3 machines so can't verify, but does support GTK and AppKit if built with such support).
This means 100x more effort in the long run for a cross platform editor. Maybe if developers lived for 200 years, this could be possible. Will need to solve human ageing problem before the cross platform "native GUI" problem.
For a text editor UI, it really isn't quite so challenging: see Sublime Text, or TextAdept, and others mentioned across this sub-thread.
The monetary incentives are not in your (and my) favor.
If a motivated solo dev thought there might be at least 10,000 people who would pay 100 USD a year for a text editor with better extensibility and performance than VS Code and better defaults/richer GUI APIs than vim/Emacs, I can see why it might be tempting for them to try.
What are the benefits of having a "native GUI" that terminal interface cannot substitute?
Extensibility of neovim or emacs covers all my text editor use cases.
Neovim and Emacs extensibility are great!
Native GUIs offer far better accessibility (TUIs are not screen-reader accessible, and neither is Emacs' GUI currently), hugely improved UI flexibility and consistent developer APIs (Emacs GUI is inconsistent across platforms and tricky to work with, every Neovim plugin reinvents ways to draw modals/text input because there's no consistent API), reduced redraw quirks, better performance, better debugging (as a Neovim plugin dev I don't want to spend time debugging user reports that relate to the user's choice of terminal emulator this week and not to Neovim or my plugin code).
I would also cast my vote for sublime text. The performance is amazing, the defaults are great and the extensions cover a lot of the use cases
If something is "so close," probably just use it.
What's your current text editor and what's wrong with it?
To be fair, you can turn off all the AI stuff with a single config.
"assistant": { "enabled": false, }
It's called TextAdept. Much of it is itself built on its own Lua extensibility story, which runs on a fairly compact C core. Both native GUI and terminal versions, using the same user config (keybinds etc). Linux, Mac OS, Windows builds. LSP support built in. Plenty of community-produced extensions around (but of course not as vast a range as VSCode's VSX eco-system furnishes).
https://orbitalquark.github.io/textadept/