Hello, fm4d <m...@fm4d.net> writes:
> The noweb reference syntax that should insert results of > evaluation of src block itself instead of src block as > described in `org-babel-expand-noweb-reference` does not > seems to work. > > > Code for replication: > > * Assign > > First we assign abc: > > #+begin_src python :noweb-ref assign_abc > abc = "abc" + "def" > #+end_src > > * Use > > Then we use it in a function: > > #+begin_src python :noweb tangle :tangle noweb-test.py > def x(): > <<assign_abc>> > return abc > > print(x()) > #+end_src > > > <<assign_abc>> does work, <assign_abc()> fails with this error: > > (error "Reference ‘assign_abc’ not found in this buffer") > signal(error ("Reference ‘assign_abc’ not found in this buffer")) > error("Reference `%s' not found in this buffer" "assign_abc") > org-babel-ref-resolve("assign_abc()") > ... > > > I am not sure if this is a bug or I am doing something wrong, > the documentation on this feature is not very comprehensive. I just discovered the :noweb-ref parameter. It is redundant with #+NAME: keyword and slightly broken. Also it induces hacks like `org-babel-use-quick-and-dirty-noweb-expansion' to work-around its shortcomings. Besides, it doesn't make much sense to add the same parameters to a bunch of blocks, so I find the syntax dubious. I understand it can be a handy shortcut for inserting multiple blocks, but, all in all, I tend to think it would be simpler to just remove the feature, along with `:noweb-sep' and `org-babel-use-quick-and-dirty-noweb-expansion'. What do you, and others, think? Is NAME enough for noweb syntax, or is there a real need fo :noweb-ref? Regards, -- Nicolas Goaziou