I would just like to throw in a quick idea. The easiest way to support noweb tangling is to get org-babel-tangle to create nested tags and change detangle to take these into account. for example, i have the forex_user source block that is tangled. ;; [[file:~/Dropbox/.rep/clj-forex/clj-forex.org::*User][forex_user]] my code... ;; [[file:~/Dropbox/.rep/clj-forex/clj-forex.org::*User][embedded_block]] my embedded code ... ;; embedded_block ends here ;; forex_user ends here corresponding to a forex_user block of #+begin_src my code ... <> #+end_src This would only work for noweb on separate lines and preferably only when one block is noweb embedded into one other source block, but i believe that this is the most common case anyways. This could be enforced in the detangle/tangle code. Then, a separate minor mode could make these file: markers invisible and create a colored overlay pattern per source block code. Saving the file would still save the markers, you just wouldnt see them if the minor mode was on.