Hi, I would like to know what should I do next to get some progress in merging this code, if at all people are okay with the design? I've signed the FSF copyright form PDF, though I haven't got anything back from it yet.
Thanks, MT On Wed, Nov 12, 2025, at 10:49, MT wrote: > > I would like to stop using `org-edit-special' for non-trivial tasks and > > start detangling instead, as the former makes Emacs much less powerful. > > Can't agree more! In fact, this is the main motivation working on this. > > > But if the link is a unique ID link, which is the recommended linking > > method these days, it could "just work", no? > > It seems to be some miscommunication here. You can consult my > design/literate doc for more details, but I can briefly explain it here: > > You are right to be confused, since the link by itself does seem to contain > the enough information that points back to the source block. However, such > links are the links produced by =:comments link= (which is also included when > you have =:comments noweb=, as it produces a superset of the former). > > Here comes a significant difference when you *don't care about* Noweb > references. The precise semantics of the links that you thought are > sufficient is, "the link to the block that has =:tangle xxx=", instead of > "the link to the source". Consider the following example in my doc (the > result is from the current ob-tangle, not my version): > > #+name: a string > #+begin_src emacs-lisp > "hello" > #+end_src > > #+begin_src emacs-lisp :tangle case-analysis.el :noweb yes :comments noweb > <<a string>> > #+end_src > > tangles to: > > #+begin_src emacs-lisp > ;; [[file:org-babel-detangle.org::*Single references, each on its own > line][Single references, each on its own line:1]] > ;; [[file:org-babel-detangle.org::*Single references, each on its own line][a > string]] > "hello" > ;; a string ends here > ;; Single references, each on its own line:1 ends here > #+end_src > > Note that both comments have the link being > "file:org-babel-detangle.org::*Single references, each on its own line", but > with different source name. This is why I say that it does not suffice to > just have the link, since it is ambiguous under the Noweb case, unless I make > it a special case to see if you don't have Noweb references in your blocks, > which I personally think might not be a good design. > > My version, unfortunately, still conforms to this weird design, since I don't > want to surprise users with new behaviors - they might be used to just move > their cursor to the link and run =org-open-at-point= and believe that they > will be brought to the block with =:tangle=, not the Noweb referred block. > > If the community is fine with more aggressive change, I think a more > intuitive way to do this is definitely to have all links pointing to the > correct location, and just let =org-babel-jump-to-org= be smarter and find > the outermost link wrapping the cursor point. > > > https://leo-editor.github.io/leo-editor/appendices.html#the-mulder-ream-update-algorithm > > Sorry I don't have time to take a closer look, but I don't feel that it is > the most relevant thing to our needs. The necessity of such a noisy Noweb > comments essentially lies in the incredible expressiveness of Noweb tangles > and the corner cases - especially when using :noweb-ref or having some > prefix/suffix on the same line as the Noweb reference. Also the algorithm > seems to be very dubious on ambiguous cases, which is something I personally > *can't compromise on*. > > My bottomline is a *sound and faithful* detangling that is a *proper inverse* > of the tangling, which might come at the cost of issues like even more > noisier comments. > > > P.S. It would be also useful to be able to tangle into the attachment > > directory. As far as I know, the current tangling mechanism cannot do > > that. This is unrelated, but worth mentioning if we are rewriting for the > > future. > > Not sure what you mean by "attachment directory". But you can advice > =org-babel-get-src-block-info= and manipulate the :tangle header argument as > you want. =org-babel-tangle= uses it to know about where it should tangle > to. Hope this helps. > > MT > > On Wed, Nov 12, 2025, at 04:47, Rudolf Adamkovič wrote: >> MT <[email protected]> writes: >> >> > Therefore, the link itself does not suffice the minimal amount of >> > information needed for detangling. >> >> But if the link is a unique ID link, which is the recommended linking >> method these days, it could "just work", no? >> >> Context: >> >> I would like to stop using `org-edit-special' for non-trivial tasks and >> start detangling instead, as the former makes Emacs much less powerful. >> Emacs Lisp cannot navigate to functions, Eglot does not work at all, and >> so on. Tangle comments, as implemented today, are much too noisy for >> me, let alone others. Ihor mentioned some clever algorithm that can >> detangle intelligently: >> >> https://leo-editor.github.io/leo-editor/appendices.html#the-mulder-ream-update-algorithm >> >> Perhaps that is the way forward? >> >> P.S. It would be also useful to be able to tangle into the attachment >> directory. As far as I know, the current tangling mechanism cannot do >> that. This is unrelated, but worth mentioning if we are rewriting for >> the future. >> >> Rudy >> -- >> "It is not the strongest of the species that survives, not the most >> intelligent that survives. It is the one that is the most adaptable to >> change." >> >> --- Charles Darwin >> >> Rudolf Adamkovič <[email protected]> [he/him] >> http://adamkovic.org >> >
