2

I used to have a literate configuration file structured as follows:

#+BEGIN_SRC emacs-lisp :tangle "/tmp/out.el" :noweb yes

;; requirements
<<require>>

;; other
<<execute>>

#+END_SRC

* FOO

Here goes all the snippets of code related to module FOO.

#+NAME: require
#+BEGIN_SRC emacs-lisp
(require 'foo)
#+END_SRC

#+NAME: execute
#+BEGIN_SRC emacs-lisp
(foo-setup)
#+END_SRC

* BAR

Here goes all the snippets of code related to module BAR.

#+NAME: require
#+BEGIN_SRC emacs-lisp
(require 'bar)
#+END_SRC

#+NAME: execute
#+BEGIN_SRC emacs-lisp
(bar-setup)
#+END_SRC

With previous versions of Org-Mode, I obtained the following file:

;; requirements
(require 'foo)
(require 'bar)

;; other
(foo-setup)
(bar-setup)

Notice how all blocks named require (resp. execute) are grouped together. With Org-Mode 9.2.3 (Emacs 26.1), I only have the blocks related to foo:

;; requirements
(require 'foo)

;; other
(foo-setup)

Is it a case of "the update broke my workflow"? Is there an easy way to obtain the same result as previously?

coredump
  • 166
  • 1
  • 7

1 Answers1

2

Apparently this can be fixed by using :noweb-ref instead:

* FOO

#+BEGIN_SRC emacs-lisp :noweb-ref require
(require 'foo)
#+END_SRC

#+BEGIN_SRC emacs-lisp :noweb-ref execute
(foo-setup)
#+END_SRC

* BAR

#+BEGIN_SRC emacs-lisp :noweb-ref require
(require 'bar)
#+END_SRC

#+BEGIN_SRC emacs-lisp :noweb-ref execute
(bar-setup)
#+END_SRC
coredump
  • 166
  • 1
  • 7