[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [BUG] Noweb reference eval syntax does not work
From: |
Nicolas Goaziou |
Subject: |
Re: [O] [BUG] Noweb reference eval syntax does not work |
Date: |
Sun, 08 May 2016 11:26:31 +0200 |
Hello,
fm4d <address@hidden> 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