Re: org-babel prepends <> expansions with the prefix of the <>? Can this be turned off?
Hello, Bastien, Thanks for getting back to me. In ob-core.el, function org-babel-expand-noweb-references, line 2747, there is a 'mapconcat, that is commented as ";; Interpose PREFIX between every line." It prepends the "prefix", that is the content of the block to be expanded from the beginning of the line where a <> reference is encountered to the beginning of the reference itself, that is to the first "<". My point is that this is not the most obvious way to do the expansion. It does work if the "prefix" is a line comment character, similar to C++ "//" However, consider the following example: ``` # -*- mode: org; -*- * test :PROPERTIES: :header-args::noweb yes :END: #+name: block1 #+begin_src shell printf "test1 \n" printf "test2 \n" printf "test3 \n" #+end_src #+begin_src shell :shebang "#!/bin/chibi-scheme" #<> <> #+end_src ``` Expanding this example gives: ``` #printf "test1 \n" #printf "test2 \n" #printf "test3 \n" # printf "test1 \n" #<> printf "test2 \n" #<> printf "test3 \n" #<> ``` Not a very obvious interpretation! At least I would expect the following instead: ``` #printf "test1 \n" printf "test2 \n" printf "test3 \n" printf "test1 \n" printf "test2 \n" printf "test3 \n" ``` Because at least it wouldn't leave anything resembling a "<>" block in the expansion result. Thanks for looking at this issue. Vlad On Mon, 7 Sep 2020 at 12:33, Bastien wrote: > > Hi Vladimir, > > Vladimir Nikishkin writes: > > > That's not entirely what I want. > > What do you want instead? It's not clear to me from your example. > > Thanks, > > -- > Bastien -- Yours sincerely, Vladimir Nikishkin
Re: org-babel prepends <> expansions with the prefix of the <>? Can this be turned off?
Hi Vladimir, Vladimir Nikishkin writes: > That's not entirely what I want. What do you want instead? It's not clear to me from your example. Thanks, -- Bastien
Re: org-babel prepends <> expansions with the prefix of the <>? Can this be turned off?
Having re-read Vladimir's original question, it looks like I may have misunderstood it at first. Now I'm wondering: What's the use case for referencing a code block but commenting out the first line? On Tue, 25 Feb 2020 at 09:00, Johannes Dahl wrote: > > Hi, > > That's a fun coincidence, I ran into this behaviour a couple of days > ago as well. For anyone wondering why one would want to comment out > their noweb tags but still expect them to result in uncommented code > expansion: if one is to edit a source block containing Noweb tags, the > emacs mode for that programming language might interpret those tags in > an unexpected way and give a messy result, e.g. in my case with > LilyPond, mess up the indentation of the rest of the code block. > > Luckily, Noweb tag syntax is configurable using > org-babel-noweb-wrap-start and org-babel-noweb-wrap-end. Thus, the way > I worked around this was to define, for the file containing LilyPond > code blocks, org-babel-noweb-wrap-start as "%<<", % being LilyPond's > comment symbol. But I still wonder if there is a better way. > > Cheers, > Johannes > > On Tue, 25 Feb 2020 at 04:10, Vladimir Nikishkin wrote: > > > > Hello, everyone > > > > I have the following case: > > > > #+name: test1 > > #+begin_src shell > > LINE to comment > > LINE to not comment > > #+end_src > > > > #+begin_src shell > > #<> > > #+end_src > > > > When I expand it, I get: > > #LINE to comment > > #LINE to not comment > > > > That's not entirely what I want. Can this behaviour be switched off somehow? > > > > -- > > Yours sincerely, Vladimir Nikishkin > >
Re: org-babel prepends <> expansions with the prefix of the <>? Can this be turned off?
Hi, That's a fun coincidence, I ran into this behaviour a couple of days ago as well. For anyone wondering why one would want to comment out their noweb tags but still expect them to result in uncommented code expansion: if one is to edit a source block containing Noweb tags, the emacs mode for that programming language might interpret those tags in an unexpected way and give a messy result, e.g. in my case with LilyPond, mess up the indentation of the rest of the code block. Luckily, Noweb tag syntax is configurable using org-babel-noweb-wrap-start and org-babel-noweb-wrap-end. Thus, the way I worked around this was to define, for the file containing LilyPond code blocks, org-babel-noweb-wrap-start as "%<<", % being LilyPond's comment symbol. But I still wonder if there is a better way. Cheers, Johannes On Tue, 25 Feb 2020 at 04:10, Vladimir Nikishkin wrote: > > Hello, everyone > > I have the following case: > > #+name: test1 > #+begin_src shell > LINE to comment > LINE to not comment > #+end_src > > #+begin_src shell > #<> > #+end_src > > When I expand it, I get: > #LINE to comment > #LINE to not comment > > That's not entirely what I want. Can this behaviour be switched off somehow? > > -- > Yours sincerely, Vladimir Nikishkin >
org-babel prepends <> expansions with the prefix of the <>? Can this be turned off?
Hello, everyone I have the following case: #+name: test1 #+begin_src shell LINE to comment LINE to not comment #+end_src #+begin_src shell #<> #+end_src When I expand it, I get: #LINE to comment #LINE to not comment That's not entirely what I want. Can this behaviour be switched off somehow? -- Yours sincerely, Vladimir Nikishkin