emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Issues with org-babel-detangle and :comments noweb
@ 2018-05-28 17:32 Frederick Giasson
  2018-06-15 17:14 ` Grant Rettke
  0 siblings, 1 reply; 2+ messages in thread
From: Frederick Giasson @ 2018-05-28 17:32 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]

Hi Everybody,

I am trying to have noweb references working with org-babel-detangle. Let's
use this example:

```
#+NAME: a
#+BEGIN_SRC clojure

(def a "a")

#+END_SRC

#+NAME: b
#+BEGIN_SRC clojure

(def a "b")

#+END_SRC

#+NAME: c
#+BEGIN_SRC clojure

(def a "c")

#+END_SRC

#+NAME: a
#+BEGIN_SRC clojure

(def a "a")

#+END_SRC


#+NAME: test
#+BEGIN_SRC clojure :tangle test.clj :mkdirp yes :noweb yes :padline yes
:results silent :comments noweb

<<a>>
<<b>>
<<c>>

#+END_SRC

```


Once tangled, the test.clj file looks like:

```
;; [[file:test.org::test][test]]
;; [[file:test.org::a][a]]

(def a "a")

;; a ends here
;; [[file:test.org::a][a]]

(def a "a")

;; a ends here
;; [[file:test.org::b][b]]

(def a "b")

;; b ends here
;; [[file:test.org::c][c]]

(def a "c")

;; c ends here
;; test ends here
```

If I perform org-babel-tangle-jump-to-org  everything works fine, I jump to
the block codes.

However if I perform org-babel-detangle, when I get the message "Not in
tangle code". The problem appears to be that the references are "embedded"
in the tangled block code. If I move the "test ends here" above, then it
works, but then when the tangled block code get detangled, I loose the
noweb references.

Any idea if there is a work around for that? I would like to use
org-babel-tangle-jump-to-org and org-babel-detangle while being about to
change the order of the code within the block codes in the tangled file.

Thanks!

Take care,

Fred

[-- Attachment #2: Type: text/html, Size: 2141 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Issues with org-babel-detangle and :comments noweb
  2018-05-28 17:32 Issues with org-babel-detangle and :comments noweb Frederick Giasson
@ 2018-06-15 17:14 ` Grant Rettke
  0 siblings, 0 replies; 2+ messages in thread
From: Grant Rettke @ 2018-06-15 17:14 UTC (permalink / raw)
  To: Frederick Giasson; +Cc: Org-mode

On Mon, May 28, 2018 at 12:32 PM, Frederick Giasson <fred@curbside.com> wrote:
> Hi Everybody,
>
> I am trying to have noweb references working with org-babel-detangle. Let's
> use this example:
>
> ```
> #+NAME: a
> #+BEGIN_SRC clojure
>
> (def a "a")
>
> #+END_SRC
>
> #+NAME: b
> #+BEGIN_SRC clojure
>
> (def a "b")
>
> #+END_SRC
>
> #+NAME: c
> #+BEGIN_SRC clojure
>
> (def a "c")
>
> #+END_SRC
>
> #+NAME: a
> #+BEGIN_SRC clojure
>
> (def a "a")
>
> #+END_SRC
>
>
> #+NAME: test
> #+BEGIN_SRC clojure :tangle test.clj :mkdirp yes :noweb yes :padline yes
> :results silent :comments noweb
>
> <<a>>
> <<b>>
> <<c>>
>
> #+END_SRC
>
> ```
>
>
> Once tangled, the test.clj file looks like:
>
> ```
> ;; [[file:test.org::test][test]]
> ;; [[file:test.org::a][a]]
>
> (def a "a")
>
> ;; a ends here
> ;; [[file:test.org::a][a]]
>
> (def a "a")
>
> ;; a ends here
> ;; [[file:test.org::b][b]]
>
> (def a "b")
>
> ;; b ends here
> ;; [[file:test.org::c][c]]
>
> (def a "c")
>
> ;; c ends here
> ;; test ends here
> ```
>
> If I perform org-babel-tangle-jump-to-org  everything works fine, I jump to
> the block codes.
>
> However if I perform org-babel-detangle, when I get the message "Not in
> tangle code". The problem appears to be that the references are "embedded"
> in the tangled block code. If I move the "test ends here" above, then it
> works, but then when the tangled block code get detangled, I loose the noweb
> references.
>
> Any idea if there is a work around for that? I would like to use
> org-babel-tangle-jump-to-org and org-babel-detangle while being about to
> change the order of the code within the block codes in the tangled file.

Hi Fred,

I took your example and changed the language but that doesn't affect
the example.

All of the examples include what is the minimum amount necessary.

Here is my version of the org file

=====

#+NAME: a
#+BEGIN_SRC clojure
(def a "a")
#+END_SRC
#+NAME: b
#+BEGIN_SRC clojure
(def b "b")
#+END_SRC
#+NAME: c
#+BEGIN_SRC clojure
(def c "c")
#+END_SRC
#+NAME: test
#+BEGIN_SRC emacs-lisp :tangle test.el
⟪a⟫
⟪b⟫
⟪c⟫
#+END_SRC

=====

Here is the generated code

;; [[file:~/tmp/frederick.org::test][test]]
;; [[file:~/tmp/frederick.org::a][a]]
(def a "a")
;; a ends here
;; [[file:~/tmp/frederick.org::b][b]]
(def b "b")
;; b ends here
;; [[file:~/tmp/frederick.org::c][c]]
(def c "c")
;; c ends here
;; test ends here


=====

If I go the the tangled code

;; [[file:~/tmp/frederick.org::c][c]]
(def c "c") <--- and put the cursor here
;; c ends here
;; test ends here

And call org-babel-tangle-jump-to-org

#+NAME: c
#+BEGIN_SRC clojure
(def c "c") <--- then the cursor jumps here
#+END_SRC

=====

If I go the the tangled code

;; [[file:~/tmp/frederick.org::test][test]] <--- and put the cursor here
;; [[file:~/tmp/frederick.org::a][a]]
(def a "a")
;; a ends here

And call org-babel-tangle-jump-to-org

#+NAME: test
#+BEGIN_SRC emacs-lisp :tangle test.el <--- then the cursor jumps here
<<a>>
<<b>>
<<c>>
#+END_SRC

=====

It seems like Org "knows what to do here".

Here is my question:

If I take the tangled code and change the source block so the order is
reverse and the content of c has changed

;; [[file:~/tmp/frederick.org::test][test]]
;; [[file:~/tmp/frederick.org::c][c]]
(def c "CADILLAC")
;; c ends here
;; [[file:~/tmp/frederick.org::b][b]]
(def b "b")
;; b ends here
;; [[file:~/tmp/frederick.org::a][a]]
(def a "a")
;; a ends here
;; test ends here

And I detangle that file:

Then do you want the code in the source file to look like this?

#+NAME: c
#+BEGIN_SRC clojure
(def c "Cadillac")
#+END_SRC

#+NAME: test
#+BEGIN_SRC emacs-lisp :tangle test.el
⟪c⟫
⟪b⟫
⟪a⟫
#+END_SRC

=====

Does the jumping to org working the same here for you as for me?

Is the detangling behavior example I wrote what you are thinking of?

I am asking because I want to know if I understand correctly or not.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-06-15 17:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-28 17:32 Issues with org-babel-detangle and :comments noweb Frederick Giasson
2018-06-15 17:14 ` Grant Rettke

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).