2 ms·
> It’s easy to forget about it, and use such things like Treemacs, Customize, heck, even Org Mode, thinking that you’re interacting with UI elements (file nodes
by BeetleB 3y ago
> It’s easy to forget about it, and use such things like Treemacs, Customize, heck, even Org Mode, thinking that you’re interacting with UI elements (file nodes in Treemacs, text-boxes in Customize, Org Modes sub-trees and drawers). However, it is an illusion, though neatly crafted. It’s still text.
Org mode, in particular, is a real pain to script. It's a tree based workflow, but behind the scenes it is all text parsing. There's no "node" structure. When you compare it with Leo[1], the elisp to manage org mode nodes is horrible.
Nevertheless, I am not in favor of this post's primary thesis. The fact that you can attempt forward-sexp in a Magit buffer is a good thing. One of the joys with Emacs is utilizing commands from one Emacs package in another without either author intending it. I, for one, would be very upset if the Magit buffer disabled forward-sexp without a good reason.
[1] https://leo-editor.github.io/leo-editor/ https://leo-editor.github.io/leo-editor/
- radarsat1 3y ago> behind the scenes it is all text parsing. There's no "node" structure. But I feel like this is one of the strongest things about org mode and something that keeps it really apart from similar tools. Rather than being forced to think in "org" and manipulate its "objects", you just manipulate text, and if you happen to shape that text into something org recognizes, then it knows how to work with it. This is amazingly inviting because you never feel "stuck" like you converted something to the wrong type of thing and now can't get it back, or whatever. Instead if you make a mistake you just.. change it to what it should be. It feels very fluid and you learn it quickly because you're not presented with trying to fit your thoughts into someone else's abstractions. You just write what you want and progressively learn more and more how to naturally shape your work into something that org can help you with.
- BeetleB 3y ago> But I feel like this is one of the strongest things about org mode and something that keeps it really apart from similar tools. Having manipulated nodes in both Leo and Org mode, the former is one to two orders of magnitude easier (no exaggeration!), and I did not find anything lacking in it compared to text parsing org nodes in elisp. I'm not arguing that text parsing should not work, or not be available. But there really should be a solid, robust API to do simple things like: 1. Move a node from one place to another. 2. Get the body of the node (sans any children, drawers, and other metadata). 3. Traverse nodes in whatever order you want (DFS, BFS, random, etc). The underlying implementations of these functions can handle the text parsing. I shouldn't have to do it every time.
- JoeyBananas 3y agoIt's ironic how org mode is the tool of choice for computer geeks, yet the code quality is so poor
- throwawayflambe 3y agoAs someone immersed in the emacs project for the last several years, I can say with some authority the org enthusiasts are by and large non-programmers by trade. I can also say the earlier half of org code is quite good, but the latter half is quite bad, a direct reflection of the deterioration in personnel quality.