Andreas Leha <andreas.l...@med.uni-goettingen.de> writes: > Hi Eric, > > >> Andreas Leha <andreas.l...@med.uni-goettingen.de> writes: >> >>> Hi Eric, >>> >>>> Andreas Leha <andreas.l...@med.uni-goettingen.de> writes: >>>> >>>>> Hi all, >>>>> >>>>> I am getting different results from the evaluation of a source block and >>>>> the evaluation of a #+call line to that block. >>>>> >>>>> Therefore, my question: Is there an equivalent to >>>>> org-babel-expand-src-block (C-c C-v v) for #+call lines? >>>>> >>>>> Or more general: How do I debug #+call lines? >>>>> >>>>> Regards, >>>>> Andreas >>>>> >>>> >>>> Can you provide a minimal example? >>>> >>>> You could write a code block equivalent to the call line. E.g., >>>> >>>> #+call: foo(bar=1) >>>> >>>> is equivalent to >>>> >>>> #+begin_src emacs-lisp :var results=foo(bar=1) >>>> results >>>> #+end_src >>> >>> Thanks for following this up. I found the problem in my case: The >>> header argument ':colnames yes' was missing from the call line, such that >>> the passed variables were different. (I've fallen into that trap >>> repeatedly, but do not learn, as it seems...) >>> >>> It would have been a lot easier to find this, if I had had the possibility >>> to do C-c C-v v on the call line to get the chance to step through the >>> (R-) code that is evaluated. Without this, it took me some time to >>> figure things out. >>> >>> So the question still stands: Is there the possibility to see what is >>> actually executed with a call line, similar to C-c C-v v on a source >>> block? >>> >> >> There is no body to expand in a call line so C-c C-v v would have >> nothing to show. You can however jump to the related code block and >> call C-c C-v v there. This process could be made faster by wrapping the >> org-babel-goto-named-src-block and org-babel-expand-src-block functions >> into a single function. >> >> >>> >>> For a small example consider: >>> >>> --- >>> #+name: foo >>> | bar | >>> | baz | >>> | bam | >>> >>> #+call: testblock[:var a=foo]() :colnames yes >>> >>> #+name: testblock >>> #+begin_src R :var a=foo :colnames yes >>> a <- a[,1] >>> data.frame(x=a) >>> #+end_src >>> --- >>> >>> Regards, >>> Andreas >>> >>> > > Thanks for the confirmation, that there is no possibility to expand a > #+call line. > > I know, that I can jump to the code block and expand that one (quite > fast with C-c C-v g RET C-c C-v v), but that is exactly *not* what I was > looking for. Because then, the header arguments to the source code > block will apply instead of the header arguments to the #+call line. > > I was hoping for a C-c C-v v on #+call lines, which would spare me from > modifying the source block's header arguments. But it is not a pressing > issue, just my laziness (and bad coding perhaps). >
Patches are always welcome. :) The call line is evaluated by first expanding itself into a full code block, so perhaps you could add functionality to C-c C-v v so that it will expand this ephemeral code block. Additionally it may be easy to update C-c C-v I so that it works on call lines, which may provide the information you're after. Best, > > Regards, > Andreas > > > -- Eric Schulte http://cs.unm.edu/~eschulte